ROOT logo

/* Result Sets Interface */
#ifndef SQL_CRSR
#  define SQL_CRSR
  struct sql_cursor
  {
    unsigned int curocn;
    void *ptr1;
    void *ptr2;
    unsigned int magic;
  };
  typedef struct sql_cursor sql_cursor;
  typedef struct sql_cursor SQL_CURSOR;
#endif /* SQL_CRSR */

/* Thread Safety */
typedef void * sql_context;
typedef void * SQL_CONTEXT;

/* Object support */
struct sqltvn
{
  unsigned char *tvnvsn; 
  unsigned short tvnvsnl; 
  unsigned char *tvnnm;
  unsigned short tvnnml; 
  unsigned char *tvnsnm;
  unsigned short tvnsnml;
};
typedef struct sqltvn sqltvn;

struct sqladts
{
  unsigned int adtvsn; 
  unsigned short adtmode; 
  unsigned short adtnum;  
  sqltvn adttvn[1];       
};
typedef struct sqladts sqladts;

static struct sqladts sqladt = {
  1,1,0,
};

/* Binding to PL/SQL Records */
struct sqltdss
{
  unsigned int tdsvsn; 
  unsigned short tdsnum; 
  unsigned char *tdsval[1]; 
};
typedef struct sqltdss sqltdss;
static struct sqltdss sqltds =
{
  1,
  0,
};

/* File name & Package Name */
struct sqlcxp
{
  unsigned short fillen;
           char  filnam[15];
};
static const struct sqlcxp sqlfpn =
{
    14,
    "hdbfileutil.pc"
};


static unsigned int sqlctx = 1151179;


static struct sqlexd {
   unsigned long  sqlvsn;
   unsigned int   arrsiz;
   unsigned int   iters;
   unsigned int   offset;
   unsigned short selerr;
   unsigned short sqlety;
   unsigned int   occurs;
      const short *cud;
   unsigned char  *sqlest;
      const char  *stmt;
   sqladts *sqladtp;
   sqltdss *sqltdsp;
   unsigned char  **sqphsv;
   unsigned long  *sqphsl;
            int   *sqphss;
            short **sqpind;
            int   *sqpins;
   unsigned long  *sqparm;
   unsigned long  **sqparc;
   unsigned short  *sqpadto;
   unsigned short  *sqptdso;
   unsigned int   sqlcmax;
   unsigned int   sqlcmin;
   unsigned int   sqlcincr;
   unsigned int   sqlctimeout;
   unsigned int   sqlcnowait;
            int   sqfoff;
   unsigned int   sqcmod;
   unsigned int   sqfmod;
   unsigned int   sqlpfmem;
   unsigned char  *sqhstv[1];
   unsigned long  sqhstl[1];
            int   sqhsts[1];
            short *sqindv[1];
            int   sqinds[1];
   unsigned long  sqharm[1];
   unsigned long  *sqharc[1];
   unsigned short  sqadto[1];
   unsigned short  sqtdso[1];
} sqlstm = {13,1};

// Prototypes
extern "C" {
  void sqlcxt (void **, unsigned int *,
               struct sqlexd *, const struct sqlcxp *);
  void sqlcx2t(void **, unsigned int *,
               struct sqlexd *, const struct sqlcxp *);
  void sqlbuft(void **, char *);
  void sqlgs2t(void **, char *);
  void sqlorat(void **, unsigned int *, void *);
}

// Forms Interface
static const int IAPSUCC = 0;
static const int IAPFAIL = 1403;
static const int IAPFTL  = 535;
extern "C" { void sqliem(unsigned char *, signed int *); }

typedef struct { unsigned short len; unsigned char arr[1]; } VARCHAR;
typedef struct { unsigned short len; unsigned char arr[1]; } varchar;

/* cud (compilation unit data) array */
static const short sqlcud0[] =
{13,4130,1,0,0,
5,0,0,1,0,0,29,32,0,0,0,0,0,1,0,
20,0,0,2,0,0,31,42,0,0,0,0,0,1,0,
35,0,0,3,0,0,24,76,0,0,1,1,0,1,0,1,97,0,0,
};


//*-- AUTHOR : Ilse Koenig
//*-- Modified : 14/09/2000

//_HADES_CLASS_DESCRIPTION 
/////////////////////////////////////////////////////////////
//
// HDbFileUtil
//
// Class for FileI/O to/from Oracle tables
//
/////////////////////////////////////////////////////////////
using namespace std;
#include "hdbfileutil.h"
#include "hdbconn.h"
#include <iostream>
#include <iomanip>

#define SQLCA_STORAGE_CLASS extern
#define ORACA_STORAGE_CLASS extern
 
// Oracle communication area
#include <oraca.h>
// SQL Communications Area
#include <sqlca.h>
 
ClassImp(HDbFileUtil)

void HDbFileUtil::commit(void) {
  // commits all changes
  if (!dbConn->isOpen()) return;
  /* EXEC SQL WHENEVER SQLERROR DO showSqlError("HDbConn::commit"); */ 

  /* EXEC SQL COMMIT WORK; */ 

{
  struct sqlexd sqlstm;
  sqlorat((void **)0, &sqlctx, &oraca);
  sqlstm.sqlvsn = 13;
  sqlstm.arrsiz = 0;
  sqlstm.sqladtp = &sqladt;
  sqlstm.sqltdsp = &sqltds;
  sqlstm.iters = (unsigned int  )1;
  sqlstm.offset = (unsigned int  )5;
  sqlstm.cud = sqlcud0;
  sqlstm.sqlest = (unsigned char  *)&sqlca;
  sqlstm.sqlety = (unsigned short)4352;
  sqlstm.occurs = (unsigned int  )0;
  sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
  if (sqlca.sqlcode < 0) showSqlError("HDbConn::commit");
}


  cout<<"*************************************************************"<<endl;
  cout<<"******************  Transaction committed  ******************"<<endl;
  cout<<"*************************************************************"<<endl;
}

void HDbFileUtil::rollback(void) {
  // discards all changes since last commit
  if (!dbConn->isOpen()) return;
  /* EXEC SQL WHENEVER SQLERROR DO showSqlError("HDbConn::rollback"); */ 

  /* EXEC SQL ROLLBACK WORK; */ 

{
  struct sqlexd sqlstm;
  sqlorat((void **)0, &sqlctx, &oraca);
  sqlstm.sqlvsn = 13;
  sqlstm.arrsiz = 0;
  sqlstm.sqladtp = &sqladt;
  sqlstm.sqltdsp = &sqltds;
  sqlstm.iters = (unsigned int  )1;
  sqlstm.offset = (unsigned int  )20;
  sqlstm.cud = sqlcud0;
  sqlstm.sqlest = (unsigned char  *)&sqlca;
  sqlstm.sqlety = (unsigned short)4352;
  sqlstm.occurs = (unsigned int  )0;
  sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
  if (sqlca.sqlcode < 0) showSqlError("HDbConn::rollback");
}


  cout<<"*************************************************************"<<endl;
  cout<<"*****************  Transaction rolled back  *****************"<<endl;
  cout<<"*************************************************************"<<endl;
  return;
}

void HDbFileUtil::showSqlError(const Char_t* f) {
  // shows SQL error messages
  cout<<"*************************************************************"<<endl;
  Error(f,"\n%s",sqlca.sqlerrm.sqlerrmc);
  cout<<"*************************************************************"<<endl;
}

void HDbFileUtil::showDynSqlError(const Char_t* f) {
  sqlca.sqlerrm.sqlerrmc[sqlca.sqlerrm.sqlerrml]='\0';
  oraca.orastxt.orastxtc[oraca.orastxt.orastxtl]='\0';
  oraca.orasfnm.orasfnmc[oraca.orasfnm.orasfnml]='\0';
  cout<<"**************************************************************"<<endl;
  Error(f,"\n%s\n  in %s...\n  on line %d of %s \n\n",sqlca.sqlerrm.sqlerrmc,
        oraca.orastxt.orastxtc,oraca.oraslnr,oraca.orasfnm.orasfnmc);
  cout<<"**************************************************************"<<endl;
}

Bool_t HDbFileUtil::executeDirect(TString& stm) {
  if (stm.Length()==0) {
    Error("HDbFileUtil::executeDirect","Empty statement string");
    return kFALSE;
  }
  /* EXEC SQL BEGIN DECLARE SECTION; */ 

    char* dynstmt;
  /* EXEC SQL END DECLARE SECTION; */ 

  /* EXEC SQL WHENEVER SQLERROR GOTO errorFound; */ 

  dynstmt=(Char_t*)stm.Data();
  /* EXEC SQL EXECUTE IMMEDIATE :dynstmt; */ 

{
  struct sqlexd sqlstm;
  sqlorat((void **)0, &sqlctx, &oraca);
  sqlstm.sqlvsn = 13;
  sqlstm.arrsiz = 1;
  sqlstm.sqladtp = &sqladt;
  sqlstm.sqltdsp = &sqltds;
  sqlstm.stmt = "";
  sqlstm.iters = (unsigned int  )1;
  sqlstm.offset = (unsigned int  )35;
  sqlstm.cud = sqlcud0;
  sqlstm.sqlest = (unsigned char  *)&sqlca;
  sqlstm.sqlety = (unsigned short)4352;
  sqlstm.occurs = (unsigned int  )0;
  sqlstm.sqhstv[0] = (unsigned char  *)dynstmt;
  sqlstm.sqhstl[0] = (unsigned long )0;
  sqlstm.sqhsts[0] = (         int  )0;
  sqlstm.sqindv[0] = (         short *)0;
  sqlstm.sqinds[0] = (         int  )0;
  sqlstm.sqharm[0] = (unsigned long )0;
  sqlstm.sqadto[0] = (unsigned short )0;
  sqlstm.sqtdso[0] = (unsigned short )0;
  sqlstm.sqphsv = sqlstm.sqhstv;
  sqlstm.sqphsl = sqlstm.sqhstl;
  sqlstm.sqphss = sqlstm.sqhsts;
  sqlstm.sqpind = sqlstm.sqindv;
  sqlstm.sqpins = sqlstm.sqinds;
  sqlstm.sqparm = sqlstm.sqharm;
  sqlstm.sqparc = sqlstm.sqharc;
  sqlstm.sqpadto = sqlstm.sqadto;
  sqlstm.sqptdso = sqlstm.sqtdso;
  sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
  if (sqlca.sqlcode < 0) goto errorFound;
}


  return kTRUE;
errorFound:
  showSqlError("HDbFileUtil::executeDirect");
  cout<<"SQL statement: "<<endl<<stm<<endl;
  return kFALSE;
}

Int_t HDbFileUtil::getTokString(TString& s1, TString& s2, const Char_t* delim) {
  Int_t n=s1.First(delim);
  if (n>0) {
    s2=s1(0,n);
    s2=s2.Strip(s2.kBoth);
    n+=strlen(delim);
    s1=s1(n,s1.Length()-n);
    s1=s1.Strip(s1.kLeading);
    return s1.Length();
  }
  if (n==0) {
    s2="";
    s1.Remove(0,strlen(delim)); // remove delimiter
    s1=s1.Strip(s1.kLeading);
    return s1.Length();
  }
  s2=s1.Strip(s1.kLeading);
  s1="";
  return 0;
}

Bool_t HDbFileUtil::confirm(const Char_t * action) {
  Char_t buf[80];
  cout<<"Confirm "<<action<<" ('y' or 'n') > "<<endl;
  cin>>buf;
  if (buf[0]=='y' || buf[0]=='Y') return kTRUE;
  else return kFALSE;
}

 hdbfileutil.pc.cc:1
 hdbfileutil.pc.cc:2
 hdbfileutil.pc.cc:3
 hdbfileutil.pc.cc:4
 hdbfileutil.pc.cc:5
 hdbfileutil.pc.cc:6
 hdbfileutil.pc.cc:7
 hdbfileutil.pc.cc:8
 hdbfileutil.pc.cc:9
 hdbfileutil.pc.cc:10
 hdbfileutil.pc.cc:11
 hdbfileutil.pc.cc:12
 hdbfileutil.pc.cc:13
 hdbfileutil.pc.cc:14
 hdbfileutil.pc.cc:15
 hdbfileutil.pc.cc:16
 hdbfileutil.pc.cc:17
 hdbfileutil.pc.cc:18
 hdbfileutil.pc.cc:19
 hdbfileutil.pc.cc:20
 hdbfileutil.pc.cc:21
 hdbfileutil.pc.cc:22
 hdbfileutil.pc.cc:23
 hdbfileutil.pc.cc:24
 hdbfileutil.pc.cc:25
 hdbfileutil.pc.cc:26
 hdbfileutil.pc.cc:27
 hdbfileutil.pc.cc:28
 hdbfileutil.pc.cc:29
 hdbfileutil.pc.cc:30
 hdbfileutil.pc.cc:31
 hdbfileutil.pc.cc:32
 hdbfileutil.pc.cc:33
 hdbfileutil.pc.cc:34
 hdbfileutil.pc.cc:35
 hdbfileutil.pc.cc:36
 hdbfileutil.pc.cc:37
 hdbfileutil.pc.cc:38
 hdbfileutil.pc.cc:39
 hdbfileutil.pc.cc:40
 hdbfileutil.pc.cc:41
 hdbfileutil.pc.cc:42
 hdbfileutil.pc.cc:43
 hdbfileutil.pc.cc:44
 hdbfileutil.pc.cc:45
 hdbfileutil.pc.cc:46
 hdbfileutil.pc.cc:47
 hdbfileutil.pc.cc:48
 hdbfileutil.pc.cc:49
 hdbfileutil.pc.cc:50
 hdbfileutil.pc.cc:51
 hdbfileutil.pc.cc:52
 hdbfileutil.pc.cc:53
 hdbfileutil.pc.cc:54
 hdbfileutil.pc.cc:55
 hdbfileutil.pc.cc:56
 hdbfileutil.pc.cc:57
 hdbfileutil.pc.cc:58
 hdbfileutil.pc.cc:59
 hdbfileutil.pc.cc:60
 hdbfileutil.pc.cc:61
 hdbfileutil.pc.cc:62
 hdbfileutil.pc.cc:63
 hdbfileutil.pc.cc:64
 hdbfileutil.pc.cc:65
 hdbfileutil.pc.cc:66
 hdbfileutil.pc.cc:67
 hdbfileutil.pc.cc:68
 hdbfileutil.pc.cc:69
 hdbfileutil.pc.cc:70
 hdbfileutil.pc.cc:71
 hdbfileutil.pc.cc:72
 hdbfileutil.pc.cc:73
 hdbfileutil.pc.cc:74
 hdbfileutil.pc.cc:75
 hdbfileutil.pc.cc:76
 hdbfileutil.pc.cc:77
 hdbfileutil.pc.cc:78
 hdbfileutil.pc.cc:79
 hdbfileutil.pc.cc:80
 hdbfileutil.pc.cc:81
 hdbfileutil.pc.cc:82
 hdbfileutil.pc.cc:83
 hdbfileutil.pc.cc:84
 hdbfileutil.pc.cc:85
 hdbfileutil.pc.cc:86
 hdbfileutil.pc.cc:87
 hdbfileutil.pc.cc:88
 hdbfileutil.pc.cc:89
 hdbfileutil.pc.cc:90
 hdbfileutil.pc.cc:91
 hdbfileutil.pc.cc:92
 hdbfileutil.pc.cc:93
 hdbfileutil.pc.cc:94
 hdbfileutil.pc.cc:95
 hdbfileutil.pc.cc:96
 hdbfileutil.pc.cc:97
 hdbfileutil.pc.cc:98
 hdbfileutil.pc.cc:99
 hdbfileutil.pc.cc:100
 hdbfileutil.pc.cc:101
 hdbfileutil.pc.cc:102
 hdbfileutil.pc.cc:103
 hdbfileutil.pc.cc:104
 hdbfileutil.pc.cc:105
 hdbfileutil.pc.cc:106
 hdbfileutil.pc.cc:107
 hdbfileutil.pc.cc:108
 hdbfileutil.pc.cc:109
 hdbfileutil.pc.cc:110
 hdbfileutil.pc.cc:111
 hdbfileutil.pc.cc:112
 hdbfileutil.pc.cc:113
 hdbfileutil.pc.cc:114
 hdbfileutil.pc.cc:115
 hdbfileutil.pc.cc:116
 hdbfileutil.pc.cc:117
 hdbfileutil.pc.cc:118
 hdbfileutil.pc.cc:119
 hdbfileutil.pc.cc:120
 hdbfileutil.pc.cc:121
 hdbfileutil.pc.cc:122
 hdbfileutil.pc.cc:123
 hdbfileutil.pc.cc:124
 hdbfileutil.pc.cc:125
 hdbfileutil.pc.cc:126
 hdbfileutil.pc.cc:127
 hdbfileutil.pc.cc:128
 hdbfileutil.pc.cc:129
 hdbfileutil.pc.cc:130
 hdbfileutil.pc.cc:131
 hdbfileutil.pc.cc:132
 hdbfileutil.pc.cc:133
 hdbfileutil.pc.cc:134
 hdbfileutil.pc.cc:135
 hdbfileutil.pc.cc:136
 hdbfileutil.pc.cc:137
 hdbfileutil.pc.cc:138
 hdbfileutil.pc.cc:139
 hdbfileutil.pc.cc:140
 hdbfileutil.pc.cc:141
 hdbfileutil.pc.cc:142
 hdbfileutil.pc.cc:143
 hdbfileutil.pc.cc:144
 hdbfileutil.pc.cc:145
 hdbfileutil.pc.cc:146
 hdbfileutil.pc.cc:147
 hdbfileutil.pc.cc:148
 hdbfileutil.pc.cc:149
 hdbfileutil.pc.cc:150
 hdbfileutil.pc.cc:151
 hdbfileutil.pc.cc:152
 hdbfileutil.pc.cc:153
 hdbfileutil.pc.cc:154
 hdbfileutil.pc.cc:155
 hdbfileutil.pc.cc:156
 hdbfileutil.pc.cc:157
 hdbfileutil.pc.cc:158
 hdbfileutil.pc.cc:159
 hdbfileutil.pc.cc:160
 hdbfileutil.pc.cc:161
 hdbfileutil.pc.cc:162
 hdbfileutil.pc.cc:163
 hdbfileutil.pc.cc:164
 hdbfileutil.pc.cc:165
 hdbfileutil.pc.cc:166
 hdbfileutil.pc.cc:167
 hdbfileutil.pc.cc:168
 hdbfileutil.pc.cc:169
 hdbfileutil.pc.cc:170
 hdbfileutil.pc.cc:171
 hdbfileutil.pc.cc:172
 hdbfileutil.pc.cc:173
 hdbfileutil.pc.cc:174
 hdbfileutil.pc.cc:175
 hdbfileutil.pc.cc:176
 hdbfileutil.pc.cc:177
 hdbfileutil.pc.cc:178
 hdbfileutil.pc.cc:179
 hdbfileutil.pc.cc:180
 hdbfileutil.pc.cc:181
 hdbfileutil.pc.cc:182
 hdbfileutil.pc.cc:183
 hdbfileutil.pc.cc:184
 hdbfileutil.pc.cc:185
 hdbfileutil.pc.cc:186
 hdbfileutil.pc.cc:187
 hdbfileutil.pc.cc:188
 hdbfileutil.pc.cc:189
 hdbfileutil.pc.cc:190
 hdbfileutil.pc.cc:191
 hdbfileutil.pc.cc:192
 hdbfileutil.pc.cc:193
 hdbfileutil.pc.cc:194
 hdbfileutil.pc.cc:195
 hdbfileutil.pc.cc:196
 hdbfileutil.pc.cc:197
 hdbfileutil.pc.cc:198
 hdbfileutil.pc.cc:199
 hdbfileutil.pc.cc:200
 hdbfileutil.pc.cc:201
 hdbfileutil.pc.cc:202
 hdbfileutil.pc.cc:203
 hdbfileutil.pc.cc:204
 hdbfileutil.pc.cc:205
 hdbfileutil.pc.cc:206
 hdbfileutil.pc.cc:207
 hdbfileutil.pc.cc:208
 hdbfileutil.pc.cc:209
 hdbfileutil.pc.cc:210
 hdbfileutil.pc.cc:211
 hdbfileutil.pc.cc:212
 hdbfileutil.pc.cc:213
 hdbfileutil.pc.cc:214
 hdbfileutil.pc.cc:215
 hdbfileutil.pc.cc:216
 hdbfileutil.pc.cc:217
 hdbfileutil.pc.cc:218
 hdbfileutil.pc.cc:219
 hdbfileutil.pc.cc:220
 hdbfileutil.pc.cc:221
 hdbfileutil.pc.cc:222
 hdbfileutil.pc.cc:223
 hdbfileutil.pc.cc:224
 hdbfileutil.pc.cc:225
 hdbfileutil.pc.cc:226
 hdbfileutil.pc.cc:227
 hdbfileutil.pc.cc:228
 hdbfileutil.pc.cc:229
 hdbfileutil.pc.cc:230
 hdbfileutil.pc.cc:231
 hdbfileutil.pc.cc:232
 hdbfileutil.pc.cc:233
 hdbfileutil.pc.cc:234
 hdbfileutil.pc.cc:235
 hdbfileutil.pc.cc:236
 hdbfileutil.pc.cc:237
 hdbfileutil.pc.cc:238
 hdbfileutil.pc.cc:239
 hdbfileutil.pc.cc:240
 hdbfileutil.pc.cc:241
 hdbfileutil.pc.cc:242
 hdbfileutil.pc.cc:243
 hdbfileutil.pc.cc:244
 hdbfileutil.pc.cc:245
 hdbfileutil.pc.cc:246
 hdbfileutil.pc.cc:247
 hdbfileutil.pc.cc:248
 hdbfileutil.pc.cc:249
 hdbfileutil.pc.cc:250
 hdbfileutil.pc.cc:251
 hdbfileutil.pc.cc:252
 hdbfileutil.pc.cc:253
 hdbfileutil.pc.cc:254
 hdbfileutil.pc.cc:255
 hdbfileutil.pc.cc:256
 hdbfileutil.pc.cc:257
 hdbfileutil.pc.cc:258
 hdbfileutil.pc.cc:259
 hdbfileutil.pc.cc:260
 hdbfileutil.pc.cc:261
 hdbfileutil.pc.cc:262
 hdbfileutil.pc.cc:263
 hdbfileutil.pc.cc:264
 hdbfileutil.pc.cc:265
 hdbfileutil.pc.cc:266
 hdbfileutil.pc.cc:267
 hdbfileutil.pc.cc:268
 hdbfileutil.pc.cc:269
 hdbfileutil.pc.cc:270
 hdbfileutil.pc.cc:271
 hdbfileutil.pc.cc:272
 hdbfileutil.pc.cc:273
 hdbfileutil.pc.cc:274
 hdbfileutil.pc.cc:275
 hdbfileutil.pc.cc:276
 hdbfileutil.pc.cc:277
 hdbfileutil.pc.cc:278
 hdbfileutil.pc.cc:279
 hdbfileutil.pc.cc:280
 hdbfileutil.pc.cc:281
 hdbfileutil.pc.cc:282
 hdbfileutil.pc.cc:283
 hdbfileutil.pc.cc:284
 hdbfileutil.pc.cc:285
 hdbfileutil.pc.cc:286
 hdbfileutil.pc.cc:287
 hdbfileutil.pc.cc:288
 hdbfileutil.pc.cc:289
 hdbfileutil.pc.cc:290
 hdbfileutil.pc.cc:291
 hdbfileutil.pc.cc:292
 hdbfileutil.pc.cc:293
 hdbfileutil.pc.cc:294
 hdbfileutil.pc.cc:295
 hdbfileutil.pc.cc:296
 hdbfileutil.pc.cc:297
 hdbfileutil.pc.cc:298
 hdbfileutil.pc.cc:299
 hdbfileutil.pc.cc:300
 hdbfileutil.pc.cc:301
 hdbfileutil.pc.cc:302
 hdbfileutil.pc.cc:303
 hdbfileutil.pc.cc:304
 hdbfileutil.pc.cc:305
 hdbfileutil.pc.cc:306
 hdbfileutil.pc.cc:307
 hdbfileutil.pc.cc:308
 hdbfileutil.pc.cc:309
 hdbfileutil.pc.cc:310
 hdbfileutil.pc.cc:311
 hdbfileutil.pc.cc:312
 hdbfileutil.pc.cc:313
 hdbfileutil.pc.cc:314
 hdbfileutil.pc.cc:315
 hdbfileutil.pc.cc:316
 hdbfileutil.pc.cc:317
 hdbfileutil.pc.cc:318
 hdbfileutil.pc.cc:319
 hdbfileutil.pc.cc:320
 hdbfileutil.pc.cc:321
 hdbfileutil.pc.cc:322
 hdbfileutil.pc.cc:323
 hdbfileutil.pc.cc:324
 hdbfileutil.pc.cc:325
 hdbfileutil.pc.cc:326
 hdbfileutil.pc.cc:327
 hdbfileutil.pc.cc:328
 hdbfileutil.pc.cc:329
 hdbfileutil.pc.cc:330
 hdbfileutil.pc.cc:331
 hdbfileutil.pc.cc:332
 hdbfileutil.pc.cc:333
 hdbfileutil.pc.cc:334
 hdbfileutil.pc.cc:335
 hdbfileutil.pc.cc:336
 hdbfileutil.pc.cc:337