summaryrefslogtreecommitdiff
path: root/docs/doxygen/latex/xbdbf_8h_source.tex
blob: 620bbad3e32358ddd37c2a625510c04d9cad129c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
\hypertarget{xbdbf_8h_source}{}\doxysection{xbdbf.\+h}
\label{xbdbf_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbdbf.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbdbf.h}}
\mbox{\hyperlink{xbdbf_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{1 \textcolor{comment}{/*  xbdbf.h}}
\DoxyCodeLine{2 \textcolor{comment}{}}
\DoxyCodeLine{3 \textcolor{comment}{XBase64 Software Library}}
\DoxyCodeLine{4 \textcolor{comment}{}}
\DoxyCodeLine{5 \textcolor{comment}{Copyright (c) 1997,2003,2014, 2022 Gary A Kunkel}}
\DoxyCodeLine{6 \textcolor{comment}{}}
\DoxyCodeLine{7 \textcolor{comment}{The xb64 software library is covered under the terms of the GPL Version 3, 2007 license.}}
\DoxyCodeLine{8 \textcolor{comment}{}}
\DoxyCodeLine{9 \textcolor{comment}{Email Contact:}}
\DoxyCodeLine{10 \textcolor{comment}{}}
\DoxyCodeLine{11 \textcolor{comment}{    XDB-\/devel@lists.sourceforge.net}}
\DoxyCodeLine{12 \textcolor{comment}{    XDB-\/users@lists.sourceforge.net}}
\DoxyCodeLine{13 \textcolor{comment}{}}
\DoxyCodeLine{14 \textcolor{comment}{*/}}
\DoxyCodeLine{15 }
\DoxyCodeLine{16 }
\DoxyCodeLine{17 \textcolor{preprocessor}{\#ifndef \_\_XB\_XBDBF\_H\_\_}}
\DoxyCodeLine{18 \textcolor{preprocessor}{\#define \_\_XB\_XBDBF\_H\_\_}}
\DoxyCodeLine{19 }
\DoxyCodeLine{20 \textcolor{comment}{//\#ifdef  CMAKE\_COMPILER\_IS\_GNUCC}}
\DoxyCodeLine{21 \textcolor{comment}{//\#pragma interface}}
\DoxyCodeLine{22 \textcolor{comment}{//\#endif}}
\DoxyCodeLine{23 }
\DoxyCodeLine{24 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespacexb}{xb}}\{}
\DoxyCodeLine{25 }
\DoxyCodeLine{26 \textcolor{comment}{/*****************************/}}
\DoxyCodeLine{27 \textcolor{comment}{/* Field Types               */}}
\DoxyCodeLine{28 }
\DoxyCodeLine{29 \textcolor{preprocessor}{\#define XB\_CHAR\_FLD      'C'}}
\DoxyCodeLine{30 \textcolor{preprocessor}{\#define XB\_LOGICAL\_FLD   'L'}}
\DoxyCodeLine{31 \textcolor{preprocessor}{\#define XB\_NUMERIC\_FLD   'N'}}
\DoxyCodeLine{32 \textcolor{preprocessor}{\#define XB\_DATE\_FLD      'D'}}
\DoxyCodeLine{33 \textcolor{preprocessor}{\#define XB\_MEMO\_FLD      'M'}}
\DoxyCodeLine{34 \textcolor{preprocessor}{\#define XB\_FLOAT\_FLD     'F'}}
\DoxyCodeLine{35 }
\DoxyCodeLine{36 \textcolor{comment}{/*****************************/}}
\DoxyCodeLine{37 \textcolor{comment}{/* File Status Codes         */}}
\DoxyCodeLine{38 }
\DoxyCodeLine{39 \textcolor{preprocessor}{\#define XB\_CLOSED  0}}
\DoxyCodeLine{40 \textcolor{preprocessor}{\#define XB\_OPEN    1}}
\DoxyCodeLine{41 \textcolor{preprocessor}{\#define XB\_UPDATED 2}}
\DoxyCodeLine{42 }
\DoxyCodeLine{43 }
\DoxyCodeLine{44 \textcolor{comment}{/*****************************/}}
\DoxyCodeLine{45 \textcolor{comment}{/* File Access Modes         */}}
\DoxyCodeLine{46 \textcolor{comment}{// \#define XB\_SINGLE\_USER  0      // file buffering on}}
\DoxyCodeLine{47 \textcolor{comment}{// \#define XB\_MULTI\_USER   1      // file buffering off}}
\DoxyCodeLine{48 }
\DoxyCodeLine{49 \textcolor{comment}{/*****************************/}}
\DoxyCodeLine{50 \textcolor{comment}{/* File Lock Functions       */}}
\DoxyCodeLine{51 \textcolor{preprocessor}{\#define XB\_LOCK       0}}
\DoxyCodeLine{52 \textcolor{preprocessor}{\#define XB\_UNLOCK     1}}
\DoxyCodeLine{53 }
\DoxyCodeLine{54 \textcolor{preprocessor}{\#define LK\_DBASE      1}}
\DoxyCodeLine{55 \textcolor{preprocessor}{\#define LK\_CLIPPER    2     }\textcolor{comment}{// future}}
\DoxyCodeLine{56 \textcolor{preprocessor}{\#define LK\_FOX        3     }\textcolor{comment}{// future}}
\DoxyCodeLine{57 \textcolor{preprocessor}{\#define LK\_XBASE64    9     }\textcolor{comment}{// future}}
\DoxyCodeLine{58 }
\DoxyCodeLine{59 \textcolor{comment}{/*****************************/}}
\DoxyCodeLine{60 \textcolor{comment}{/* Record retrieve options   */}}
\DoxyCodeLine{61 \textcolor{preprocessor}{\#define XB\_ALL\_RECS     0}}
\DoxyCodeLine{62 \textcolor{preprocessor}{\#define XB\_ACTIVE\_RECS  1}}
\DoxyCodeLine{63 \textcolor{preprocessor}{\#define XB\_DELETED\_RECS 2}}
\DoxyCodeLine{64 }
\DoxyCodeLine{65 }
\DoxyCodeLine{66 \textcolor{comment}{/*****************************/}}
\DoxyCodeLine{67 \textcolor{comment}{/* Other defines             */}}
\DoxyCodeLine{68 }
\DoxyCodeLine{69 \textcolor{preprocessor}{\#define XB\_OVERLAY     1}}
\DoxyCodeLine{70 \textcolor{preprocessor}{\#define XB\_DONTOVERLAY 0}}
\DoxyCodeLine{71 \textcolor{preprocessor}{\#define XB\_CHAREOF  '\(\backslash\)x1A'         }\textcolor{comment}{/* end of DBF        */}\textcolor{preprocessor}{}}
\DoxyCodeLine{72 \textcolor{preprocessor}{\#define XB\_CHARHDR  '\(\backslash\)x0D'         }\textcolor{comment}{/* header terminator */}\textcolor{preprocessor}{}}
\DoxyCodeLine{73 }
\DoxyCodeLine{74 }
\DoxyCodeLine{76 }
\DoxyCodeLine{95 \textcolor{keyword}{struct }XBDLLEXPORT \mbox{\hyperlink{structxb_1_1xbSchema}{xbSchema}} \{}
\DoxyCodeLine{96   \textcolor{keywordtype}{char}      cFieldName[11];}
\DoxyCodeLine{97   \textcolor{keywordtype}{char}      \mbox{\hyperlink{structxb_1_1xbSchema_a1d612b2ed5dc0b0289c9e91b3cda3a25}{cType}};}
\DoxyCodeLine{98   xbInt16   \mbox{\hyperlink{structxb_1_1xbSchema_a2da554af25ef628acf59bb52996056ac}{iFieldLen}};      \textcolor{comment}{/* fields are stored as one byte on record*/}}
\DoxyCodeLine{99   xbInt16   \mbox{\hyperlink{structxb_1_1xbSchema_a55bab3bb69dee3508d168c93e182d4b9}{iNoOfDecs}};}
\DoxyCodeLine{100 \};}
\DoxyCodeLine{101 }
\DoxyCodeLine{103 \textcolor{keyword}{struct }XBDLLEXPORT xbSchemaRec \{}
\DoxyCodeLine{104   \textcolor{keywordtype}{char}     cFieldName[11];   \textcolor{comment}{/* ASCIIZ field name                       */}}
\DoxyCodeLine{105   \textcolor{keywordtype}{char}     cType;            \textcolor{comment}{/* field type                              */}}
\DoxyCodeLine{106   \textcolor{keywordtype}{char}     *pAddress;        \textcolor{comment}{/* pointer to field in record buffer 1     */}}
\DoxyCodeLine{107   \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} cFieldLen;   \textcolor{comment}{/* fields are stored as one byte on record */}}
\DoxyCodeLine{108   \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} cNoOfDecs;}
\DoxyCodeLine{109   \textcolor{keywordtype}{char}     *pAddress2;       \textcolor{comment}{/* pointer to field in record buffer 2     */}}
\DoxyCodeLine{110   xbInt16  iLongFieldLen;    \textcolor{comment}{/* to handle long field lengths            */}}
\DoxyCodeLine{111   \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} cIxFlag;     \textcolor{comment}{/* DBase IV Index field flag               */}}
\DoxyCodeLine{112 \};}
\DoxyCodeLine{114 }
\DoxyCodeLine{115 }
\DoxyCodeLine{116 }
\DoxyCodeLine{118 \textcolor{preprocessor}{\#ifdef XB\_INDEX\_SUPPORT}}
\DoxyCodeLine{119 \textcolor{keyword}{class }XBDLLEXPORT xbIx;}
\DoxyCodeLine{120 \textcolor{comment}{// structure for file list, each open DBF file can have one or more index files}}
\DoxyCodeLine{121 \textcolor{keyword}{struct }XBDLLEXPORT xbIxList \{}
\DoxyCodeLine{122   xbIxList *next;}
\DoxyCodeLine{123   xbIx     *ix;}
\DoxyCodeLine{124   xbString *sFmt;}
\DoxyCodeLine{125 \};}
\DoxyCodeLine{126 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// XB\_INDEX\_SUPPORT}}
\DoxyCodeLine{128 \textcolor{comment}{}}
\DoxyCodeLine{129 }
\DoxyCodeLine{131 }
\DoxyCodeLine{150 \textcolor{keyword}{class }XBDLLEXPORT \mbox{\hyperlink{classxb_1_1xbDbf}{xbDbf}} : \textcolor{keyword}{public} \mbox{\hyperlink{classxb_1_1xbFile}{xbFile}} \{}
\DoxyCodeLine{151 }
\DoxyCodeLine{152  \textcolor{keyword}{public}:}
\DoxyCodeLine{153   \mbox{\hyperlink{namespacexb_ab2eae4b4732466698a7fdd89d77ba53b}{xbDbf}}( \mbox{\hyperlink{classxb_1_1xbXBase}{xbXBase}} *x );}
\DoxyCodeLine{154   \textcolor{keyword}{virtual} \mbox{\hyperlink{classxb_1_1xbDbf}{\string~xbDbf}}();}
\DoxyCodeLine{155 }
\DoxyCodeLine{156   \textcolor{keyword}{virtual} xbInt16  Abort();}
\DoxyCodeLine{157   \textcolor{keyword}{virtual} xbInt16  AppendRecord();}
\DoxyCodeLine{158   \textcolor{keyword}{virtual} xbInt16  BlankRecord();}
\DoxyCodeLine{159   \textcolor{keyword}{virtual} xbInt16  Commit();}
\DoxyCodeLine{160   \textcolor{keyword}{virtual} xbInt16  Close();}
\DoxyCodeLine{161   \textcolor{keyword}{virtual} xbInt16  CopyDbfStructure( \mbox{\hyperlink{classxb_1_1xbDbf}{xbDbf}} *dNewTable, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sTableName, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sTableAlias, xbInt16 iOverlay, xbInt16 iShareMode );}
\DoxyCodeLine{162   \textcolor{keyword}{virtual} xbInt16  \mbox{\hyperlink{classxb_1_1xbDbf_a73e41bfe679dd06ab16c436652df93f1}{CreateTable}}      ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sTableName, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sAlias, \mbox{\hyperlink{structxb_1_1xbSchema}{xbSchema}} *pSchema, xbInt16 iOverlay, xbInt16 iShareMode ) = 0;}
\DoxyCodeLine{163   \textcolor{keyword}{virtual} xbInt16  DeleteTable      ();}
\DoxyCodeLine{164   \textcolor{keyword}{virtual} xbInt16  DeleteAll        ( xbInt16 iOption );}
\DoxyCodeLine{165   \textcolor{keyword}{virtual} xbInt16  DeleteAllRecords ();}
\DoxyCodeLine{166   \textcolor{keyword}{virtual} xbInt16  DeleteRecord     ();}
\DoxyCodeLine{167   \textcolor{keyword}{virtual} xbInt16  DumpHeader       ( xbInt16 iOption ) \textcolor{keyword}{const};}
\DoxyCodeLine{168   \textcolor{keyword}{virtual} xbInt16  DumpRecord       ( xbUInt32 ulRecNo, xbInt16 iOutputDest = 0, xbInt16 iOutputFmt = 0 );}
\DoxyCodeLine{169   \textcolor{keyword}{virtual} xbInt16  GetAutoCommit    () \textcolor{keyword}{const};}
\DoxyCodeLine{170   \textcolor{keyword}{virtual} xbInt16  GetAutoCommit    ( xbInt16 iOption ) \textcolor{keyword}{const};}
\DoxyCodeLine{171   \textcolor{keyword}{virtual} xbUInt32 GetCurRecNo      () \textcolor{keyword}{const};}
\DoxyCodeLine{172   \textcolor{keyword}{virtual} xbInt16  GetDbfStatus     () \textcolor{keyword}{const};}
\DoxyCodeLine{173   \textcolor{keyword}{virtual} xbInt32  GetFieldCnt      () \textcolor{keyword}{const};}
\DoxyCodeLine{174   \textcolor{keyword}{virtual} xbInt16  GetFirstRecord   ();}
\DoxyCodeLine{175   \textcolor{keyword}{virtual} xbInt16  GetFirstRecord   ( xbInt16 iOption );}
\DoxyCodeLine{176   \textcolor{keyword}{virtual} xbInt16  GetLastRecord    ();}
\DoxyCodeLine{177   \textcolor{keyword}{virtual} xbInt16  GetLastRecord    ( xbInt16 iOption );}
\DoxyCodeLine{178 }
\DoxyCodeLine{179   \textcolor{keyword}{virtual} xbInt16  GetNextRecord    ();}
\DoxyCodeLine{180   \textcolor{keyword}{virtual} xbInt16  GetNextRecord    ( xbInt16 iOption );}
\DoxyCodeLine{181   \textcolor{keyword}{virtual} xbInt16  GetNextRecord    ( xbInt16 iOption, xbUInt32 ulStartRec );}
\DoxyCodeLine{182   \textcolor{keyword}{virtual} xbInt16  GetPrevRecord    ();}
\DoxyCodeLine{183   \textcolor{keyword}{virtual} xbInt16  GetPrevRecord    ( xbInt16 iOption );}
\DoxyCodeLine{184   \textcolor{keyword}{virtual} xbInt16  GetRecord        ( xbUInt32 ulRecNo );}
\DoxyCodeLine{185 }
\DoxyCodeLine{186   \textcolor{keyword}{virtual} xbUInt32 GetRecordCount   ();}
\DoxyCodeLine{187   \textcolor{keyword}{virtual} xbInt16  GetRecordCnt     ( xbUInt32 \& ulRecCnt );}
\DoxyCodeLine{188 }
\DoxyCodeLine{189   \textcolor{keyword}{virtual} \textcolor{keywordtype}{char} *   GetRecordBuf     ( xbInt16 iOpt = 0 ) \textcolor{keyword}{const};}
\DoxyCodeLine{190   \textcolor{keyword}{virtual} xbUInt16 GetRecordLen     () \textcolor{keyword}{const};}
\DoxyCodeLine{191   \textcolor{keyword}{virtual} \textcolor{keyword}{const}    \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&GetTblAlias() \textcolor{keyword}{const};}
\DoxyCodeLine{192   \textcolor{keyword}{virtual} xbInt16  \mbox{\hyperlink{classxb_1_1xbDbf_a49212a9eb17f7fa9f303e08d5fc50fc6}{GetVersion}}       () \textcolor{keyword}{const} = 0; }
\DoxyCodeLine{193   \textcolor{keyword}{virtual} \mbox{\hyperlink{classxb_1_1xbXBase}{xbXBase}}  *GetXbasePtr     () \textcolor{keyword}{const};   \textcolor{comment}{// return xbase pointer}}
\DoxyCodeLine{194 }
\DoxyCodeLine{195 }
\DoxyCodeLine{196   \textcolor{keyword}{virtual} \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}}   MemoFieldsExist  () \textcolor{keyword}{const};}
\DoxyCodeLine{197 }
\DoxyCodeLine{198   \textcolor{keyword}{virtual} xbInt16  Open             ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sTableName );}
\DoxyCodeLine{199   \textcolor{keyword}{virtual} xbInt16  Open             ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sTableName, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sAlias );}
\DoxyCodeLine{200   \textcolor{keyword}{virtual} xbInt16  \mbox{\hyperlink{classxb_1_1xbDbf_a4d018cbf44d8d8b2145c9acab02c8adf}{Open}}             ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sTableName, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sAlias, xbInt16 iOpenMode, xbInt16 iShareMode ) = 0;}
\DoxyCodeLine{201   \textcolor{keyword}{virtual} xbInt16  Pack             ();}
\DoxyCodeLine{202   \textcolor{keyword}{virtual} xbInt16  Pack             ( xbUInt32 \&ulDeletedRecCnt );}
\DoxyCodeLine{203 }
\DoxyCodeLine{204 }
\DoxyCodeLine{205   \textcolor{keyword}{virtual} xbInt16  PutRecord        ();     \textcolor{comment}{// Put record to current location}}
\DoxyCodeLine{206   \textcolor{keyword}{virtual} xbInt16  PutRecord        ( xbUInt32 ulRecNo );}
\DoxyCodeLine{207   \textcolor{keyword}{virtual} xbInt16  ReadHeader       ( xbInt16 iFilePositionOption, xbInt16 iReadOption );}
\DoxyCodeLine{208   \textcolor{keyword}{virtual} xbInt16  RecordDeleted    ( xbInt16 iOpt = 0 ) \textcolor{keyword}{const};}
\DoxyCodeLine{209   \textcolor{keyword}{virtual} xbInt16  \mbox{\hyperlink{classxb_1_1xbDbf_aeeeb2eb5fabcd0f91d457df07b0e0708}{Rename}}           ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} sNewName ) = 0;}
\DoxyCodeLine{210 }
\DoxyCodeLine{211   \textcolor{keyword}{virtual} xbInt16  SetAutoCommit    ( xbInt16 iAutoCommit );}
\DoxyCodeLine{212 }
\DoxyCodeLine{213   \textcolor{keyword}{virtual} xbInt16  UndeleteAllRecords();}
\DoxyCodeLine{214   \textcolor{keyword}{virtual} xbInt16  UndeleteRecord   ();}
\DoxyCodeLine{215   \textcolor{keyword}{virtual} xbInt16  Zap              ();}
\DoxyCodeLine{216 }
\DoxyCodeLine{217 }
\DoxyCodeLine{218   \textcolor{comment}{/* field methods */}}
\DoxyCodeLine{219   \textcolor{comment}{//virtual xbInt16  GetRawField( xbInt16 iFieldNo, char *Buf, xbUInt32 BufSize, xbInt16 iRecBufSw ) const;}}
\DoxyCodeLine{220   \textcolor{keyword}{virtual} xbInt16  GetField(xbInt16 iFieldNo, \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldValue, xbInt16 iRecBufSw ) \textcolor{keyword}{const};}
\DoxyCodeLine{221   \textcolor{keyword}{virtual} xbInt16  GetField(xbInt16 iFieldNo, \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldValue) \textcolor{keyword}{const};}
\DoxyCodeLine{222   \textcolor{keyword}{virtual} xbInt16  GetField(\textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName, \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldValue) \textcolor{keyword}{const};}
\DoxyCodeLine{223   \textcolor{keyword}{virtual} xbInt16  GetFieldDecimal( xbInt16 iFieldNo, xbInt16 \&iFieldDecimal ) \textcolor{keyword}{const};}
\DoxyCodeLine{224   \textcolor{keyword}{virtual} xbInt16  GetFieldDecimal( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName, xbInt16 \&iFieldDecimal ) \textcolor{keyword}{const};}
\DoxyCodeLine{225   \textcolor{keyword}{virtual} xbInt16  GetFieldLen( xbInt16 iFieldNo, xbInt16 \&iFieldLen ) \textcolor{keyword}{const};}
\DoxyCodeLine{226   \textcolor{keyword}{virtual} xbInt16  GetFieldLen( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName, xbInt16 \&iFieldLen ) \textcolor{keyword}{const};}
\DoxyCodeLine{227   \textcolor{keyword}{virtual} xbInt16  GetFieldName( xbInt16 iFieldNo, \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName ) \textcolor{keyword}{const};}
\DoxyCodeLine{228 }
\DoxyCodeLine{229   \textcolor{keyword}{virtual} xbInt16  GetFieldNo( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName, xbInt16 \&iFieldNo ) \textcolor{keyword}{const};}
\DoxyCodeLine{230   \textcolor{keyword}{virtual} xbInt16  GetFieldNo( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName ) \textcolor{keyword}{const};}
\DoxyCodeLine{231 }
\DoxyCodeLine{232   \textcolor{keyword}{virtual} xbInt16  GetFieldType( xbInt16 iFieldNo, \textcolor{keywordtype}{char} \&cFieldType ) \textcolor{keyword}{const};}
\DoxyCodeLine{233   \textcolor{keyword}{virtual} xbInt16  GetFieldType( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName, \textcolor{keywordtype}{char} \&cFieldType ) \textcolor{keyword}{const};}
\DoxyCodeLine{234   \textcolor{keyword}{virtual} xbInt16  PutField( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldData );}
\DoxyCodeLine{235   \textcolor{keyword}{virtual} xbInt16  PutField( xbInt16 iFieldNo, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldData );}
\DoxyCodeLine{236 }
\DoxyCodeLine{237   \textcolor{keyword}{virtual} xbInt16  PutLogicalField( xbInt16 iFieldNo, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldData );}
\DoxyCodeLine{238   \textcolor{keyword}{virtual} xbInt16  PutLogicalField( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName, \textcolor{keyword}{const}  \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldData );}
\DoxyCodeLine{239   \textcolor{keyword}{virtual} xbInt16  GetLogicalField( xbInt16 iFieldNo, \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldData ) \textcolor{keyword}{const};}
\DoxyCodeLine{240   \textcolor{keyword}{virtual} xbInt16  GetLogicalField( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName, \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldData) \textcolor{keyword}{const};}
\DoxyCodeLine{241 }
\DoxyCodeLine{242   \textcolor{keyword}{virtual} xbInt16  PutLogicalField( xbInt16 iFieldNo, \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} bFieldData );}
\DoxyCodeLine{243   \textcolor{keyword}{virtual} xbInt16  PutLogicalField( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName, \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} bFieldData );}
\DoxyCodeLine{244   \textcolor{keyword}{virtual} xbInt16  GetLogicalField( xbInt16 iFieldNo, \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} \&bFieldData ) \textcolor{keyword}{const};}
\DoxyCodeLine{245   \textcolor{keyword}{virtual} xbInt16  GetLogicalField( xbInt16 iFieldNo, \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} \&bFieldData, xbInt16 iRecBufSw ) \textcolor{keyword}{const};}
\DoxyCodeLine{246   \textcolor{keyword}{virtual} xbInt16  GetLogicalField( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName, \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} \&bFieldData) \textcolor{keyword}{const};}
\DoxyCodeLine{247 }
\DoxyCodeLine{248   \textcolor{keyword}{virtual} xbInt16  GetLongField( xbInt16 iFieldNo, xbInt32 \&lFieldValue ) \textcolor{keyword}{const};}
\DoxyCodeLine{249   \textcolor{keyword}{virtual} xbInt16  GetLongField( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName, xbInt32 \&lFieldValue ) \textcolor{keyword}{const};}
\DoxyCodeLine{250   \textcolor{keyword}{virtual} xbInt16  PutLongField( xbInt16 iFieldNo, xbInt32 lFieldValue );}
\DoxyCodeLine{251   \textcolor{keyword}{virtual} xbInt16  PutLongField( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldNo, xbInt32 lFieldValue );}
\DoxyCodeLine{252 }
\DoxyCodeLine{253   \textcolor{keyword}{virtual} xbInt16  GetULongField( xbInt16 iFieldNo, xbUInt32 \&lFieldValue ) \textcolor{keyword}{const};}
\DoxyCodeLine{254   \textcolor{keyword}{virtual} xbInt16  GetULongField( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName, xbUInt32 \&lFieldValue ) \textcolor{keyword}{const};}
\DoxyCodeLine{255   \textcolor{keyword}{virtual} xbInt16  PutULongField( xbInt16 iFieldNo, xbUInt32 lFieldValue );}
\DoxyCodeLine{256   \textcolor{keyword}{virtual} xbInt16  PutULongField( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldNo, xbUInt32 lFieldValue );}
\DoxyCodeLine{257 }
\DoxyCodeLine{258   \textcolor{keyword}{virtual} xbInt16  GetDoubleField( xbInt16 FieldNo, \mbox{\hyperlink{namespacexb_a25f47b226ce924a5c78f97989b0744a2}{xbDouble}} \&dFieldValue ) \textcolor{keyword}{const};}
\DoxyCodeLine{259   \textcolor{keyword}{virtual} xbInt16  GetDoubleField( xbInt16 FieldNo, \mbox{\hyperlink{namespacexb_a25f47b226ce924a5c78f97989b0744a2}{xbDouble}} \&dFieldValue, xbInt16 iRecBufSw ) \textcolor{keyword}{const};}
\DoxyCodeLine{260   \textcolor{keyword}{virtual} xbInt16  GetDoubleField( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName, \mbox{\hyperlink{namespacexb_a25f47b226ce924a5c78f97989b0744a2}{xbDouble}} \&dFieldValue ) \textcolor{keyword}{const};}
\DoxyCodeLine{261   \textcolor{keyword}{virtual} xbInt16  PutDoubleField( xbInt16 FieldNo, \mbox{\hyperlink{namespacexb_a25f47b226ce924a5c78f97989b0744a2}{xbDouble}} dFieldValue );}
\DoxyCodeLine{262   \textcolor{keyword}{virtual} xbInt16  PutDoubleField( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&FieldName, \mbox{\hyperlink{namespacexb_a25f47b226ce924a5c78f97989b0744a2}{xbDouble}} dFieldValue );}
\DoxyCodeLine{263 }
\DoxyCodeLine{264   \textcolor{keyword}{virtual} xbInt16  GetFloatField( xbInt16 iFieldNo, \mbox{\hyperlink{namespacexb_a83aa6a550398db55973aa9fb4257e66e}{xbFloat}} \&fFieldValue ) \textcolor{keyword}{const};}
\DoxyCodeLine{265   \textcolor{keyword}{virtual} xbInt16  GetFloatField( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName, \mbox{\hyperlink{namespacexb_a83aa6a550398db55973aa9fb4257e66e}{xbFloat}} \&fFieldValue ) \textcolor{keyword}{const};}
\DoxyCodeLine{266   \textcolor{keyword}{virtual} xbInt16  PutFloatField( xbInt16 iFieldNo, \mbox{\hyperlink{namespacexb_a83aa6a550398db55973aa9fb4257e66e}{xbFloat}} fFieldValue );}
\DoxyCodeLine{267   \textcolor{keyword}{virtual} xbInt16  PutFloatField( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName, \mbox{\hyperlink{namespacexb_a83aa6a550398db55973aa9fb4257e66e}{xbFloat}} fFieldValue );}
\DoxyCodeLine{268 }
\DoxyCodeLine{269   \textcolor{keyword}{virtual} xbInt16  GetDateField( xbInt16 iFieldNo, \mbox{\hyperlink{classxb_1_1xbDate}{xbDate}} \&dt ) \textcolor{keyword}{const};}
\DoxyCodeLine{270   \textcolor{keyword}{virtual} xbInt16  GetDateField( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName, \mbox{\hyperlink{classxb_1_1xbDate}{xbDate}} \&dt ) \textcolor{keyword}{const};}
\DoxyCodeLine{271   \textcolor{keyword}{virtual} xbInt16  PutDateField( xbInt16 iFieldNo, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbDate}{xbDate}} \&dt );}
\DoxyCodeLine{272   \textcolor{keyword}{virtual} xbInt16  PutDateField( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbDate}{xbDate}} \&dt );}
\DoxyCodeLine{273 }
\DoxyCodeLine{274 }
\DoxyCodeLine{275 }
\DoxyCodeLine{276 \textcolor{preprocessor}{  \#ifdef XB\_MEMO\_SUPPORT}}
\DoxyCodeLine{277   \textcolor{keyword}{virtual} xbInt16  GetMemoFieldCnt   () \textcolor{keyword}{const};}
\DoxyCodeLine{278   \textcolor{keyword}{virtual} xbMemo   *GetMemoPtr       ();}
\DoxyCodeLine{279   \textcolor{keyword}{virtual} xbUInt32 GetCreateMemoBlockSize() \textcolor{keyword}{const};}
\DoxyCodeLine{280   \textcolor{keyword}{virtual} xbInt16  GetMemoField      ( xbInt16 iFldNo, \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sMemoData );}
\DoxyCodeLine{281   \textcolor{keyword}{virtual} xbInt16  GetMemoField      ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \& sFldName, \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sMemoData );}
\DoxyCodeLine{282   \textcolor{keyword}{virtual} xbInt16  GetMemoFieldLen   ( xbInt16 iFldNo, xbUInt32 \&ullMemoFieldLen );}
\DoxyCodeLine{283   \textcolor{keyword}{virtual} xbInt16  GetMemoFieldLen   ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \& sFldName, xbUInt32 \&ulMemoFieldLen );}
\DoxyCodeLine{284   \textcolor{keyword}{virtual} \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}}   MemoFieldExists   ( xbInt16 iFieldNo ) \textcolor{keyword}{const};}
\DoxyCodeLine{285   \textcolor{keyword}{virtual} \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}}   MemoFieldExists   ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName ) \textcolor{keyword}{const};}
\DoxyCodeLine{286   \textcolor{keyword}{virtual} xbInt16  SetCreateMemoBlockSize( xbUInt32 ulBlockSize ) = 0;}
\DoxyCodeLine{287   \textcolor{keyword}{virtual} xbInt16  UpdateMemoField   ( xbInt16 iFldNo, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sMemoData );}
\DoxyCodeLine{288   \textcolor{keyword}{virtual} xbInt16  UpdateMemoField   ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \& sFldName, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sMemoData );}
\DoxyCodeLine{289 \textcolor{preprocessor}{  \#endif }\textcolor{comment}{// XB\_MEMO\_SUPPORT}}
\DoxyCodeLine{290 }
\DoxyCodeLine{291 }
\DoxyCodeLine{292 \textcolor{preprocessor}{  \#ifdef XB\_LOCKING\_SUPPORT}}
\DoxyCodeLine{293   \textcolor{keyword}{virtual} xbInt16 LockTable         ( xbInt16 iLockFunction );}
\DoxyCodeLine{294   \textcolor{keyword}{virtual} xbInt16 LockRecord        ( xbInt16 iLockFunction, xbUInt32 ulRecNo );}
\DoxyCodeLine{295   \textcolor{keyword}{virtual} xbInt16 LockAppend        ( xbInt16 iLockFunction );}
\DoxyCodeLine{296   \textcolor{keyword}{virtual} xbInt16 LockHeader        ( xbInt16 iLockFunction );}
\DoxyCodeLine{297 }
\DoxyCodeLine{298 \textcolor{preprocessor}{  \#ifdef XB\_MEMO\_SUPPORT}}
\DoxyCodeLine{299   \textcolor{keyword}{virtual} xbInt16 LockMemo          ( xbInt16 iLockFunction );}
\DoxyCodeLine{300   \textcolor{keyword}{virtual} \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}}  GetMemoLocked     () \textcolor{keyword}{const}; }
\DoxyCodeLine{301 \textcolor{preprocessor}{  \#endif  }\textcolor{comment}{// XB\_MEMO\_LOCK}}
\DoxyCodeLine{302 }
\DoxyCodeLine{303 \textcolor{preprocessor}{  \#ifdef XB\_INDEX\_SUPPORT}}
\DoxyCodeLine{304   \textcolor{keyword}{virtual} xbInt16 LockIndices       ( xbInt16 iLockFunction );}
\DoxyCodeLine{305 \textcolor{preprocessor}{  \#endif }\textcolor{comment}{// XB\_INDEX\_SUPPORT}}
\DoxyCodeLine{306 }
\DoxyCodeLine{307   xbInt16         GetAutoLock       () \textcolor{keyword}{const};}
\DoxyCodeLine{308   \textcolor{keywordtype}{void}            SetAutoLock       ( xbInt16 iAutoLock );}
\DoxyCodeLine{309   xbInt16         GetLockFlavor     () \textcolor{keyword}{const};}
\DoxyCodeLine{310   \textcolor{keywordtype}{void}            SetLockFlavor     ( xbInt16 iLockFlavor );}
\DoxyCodeLine{311   \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}}          GetTableLocked    () \textcolor{keyword}{const};}
\DoxyCodeLine{312   \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}}          GetHeaderLocked   () \textcolor{keyword}{const};}
\DoxyCodeLine{313   xbUInt32        GetAppendLocked   () \textcolor{keyword}{const};}
\DoxyCodeLine{314   xbLinkListNode<xbUInt32> *  GetFirstRecLock   () \textcolor{keyword}{const};}
\DoxyCodeLine{315 }
\DoxyCodeLine{316 \textcolor{preprocessor}{  \#ifdef XB\_DEBUG\_SUPPORT}}
\DoxyCodeLine{317   \textcolor{keywordtype}{void}            DumpTableLockStatus() \textcolor{keyword}{const};}
\DoxyCodeLine{318 \textcolor{preprocessor}{  \#endif  }\textcolor{comment}{// XB\_DEBUG\_SUPPORT}}
\DoxyCodeLine{319 \textcolor{preprocessor}{  \#endif  }\textcolor{comment}{// XB\_LOCKING\_SUPPORT}}
\DoxyCodeLine{320 }
\DoxyCodeLine{321 }
\DoxyCodeLine{322 \textcolor{preprocessor}{  \#ifdef XB\_INDEX\_SUPPORT}}
\DoxyCodeLine{323   \textcolor{keyword}{virtual} xbInt16  CheckTagIntegrity( xbInt16 iTagOpt, xbInt16 iOutputOpt );}
\DoxyCodeLine{324   \textcolor{keyword}{virtual} xbInt16  CloseIndexFile( xbIx *pIx );}
\DoxyCodeLine{325   \textcolor{keyword}{virtual} xbInt16  CreateTag( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sIxType, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sName, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sKey, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFilter, }
\DoxyCodeLine{326                    xbInt16 iDescending, xbInt16 iUnique, xbInt16 iOverLay, xbIx **xbIxOut, \textcolor{keywordtype}{void} **vpTagOut );}
\DoxyCodeLine{327   \textcolor{keyword}{virtual} xbInt16  DeleteTag( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sIxType, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sName );}
\DoxyCodeLine{328   \textcolor{keyword}{virtual} xbInt16  DeleteAllIndexFiles();}
\DoxyCodeLine{329   \textcolor{keyword}{virtual} xbInt16  Find( \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sKey );}
\DoxyCodeLine{330   \textcolor{keyword}{virtual} xbInt16  Find( \mbox{\hyperlink{classxb_1_1xbDate}{xbDate}} \&dtKey );}
\DoxyCodeLine{331   \textcolor{keyword}{virtual} xbInt16  Find( \mbox{\hyperlink{namespacexb_a25f47b226ce924a5c78f97989b0744a2}{xbDouble}} \&dKey );}
\DoxyCodeLine{332   \textcolor{keyword}{virtual} xbIx     *GetCurIx() \textcolor{keyword}{const};}
\DoxyCodeLine{333   \textcolor{keyword}{virtual} \textcolor{keywordtype}{void}     *GetCurTag() \textcolor{keyword}{const};}
\DoxyCodeLine{334 }
\DoxyCodeLine{335   \textcolor{keyword}{virtual} xbInt16  GetFirstKey();}
\DoxyCodeLine{336   \textcolor{keyword}{virtual} xbInt16  GetNextKey();}
\DoxyCodeLine{337   \textcolor{keyword}{virtual} xbInt16  GetPrevKey();}
\DoxyCodeLine{338   \textcolor{keyword}{virtual} xbInt16  GetLastKey();}
\DoxyCodeLine{339 }
\DoxyCodeLine{340   \textcolor{keyword}{virtual} \textcolor{keyword}{const}    \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&GetCurIxType() \textcolor{keyword}{const};}
\DoxyCodeLine{341   \textcolor{keyword}{virtual} \textcolor{keyword}{const}    \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&GetCurTagName() \textcolor{keyword}{const};}
\DoxyCodeLine{342   \textcolor{keyword}{virtual} xbIxList *GetIxList() \textcolor{keyword}{const};}
\DoxyCodeLine{343   \textcolor{keyword}{virtual} xbInt32  GetPhysicalIxCnt () \textcolor{keyword}{const};}
\DoxyCodeLine{344   xbLinkListNode<xbTag *> *GetTagList   () \textcolor{keyword}{const};}
\DoxyCodeLine{345 }
\DoxyCodeLine{346   \textcolor{keyword}{virtual} xbInt16  OpenIndex( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sIxType, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sIndexName );}
\DoxyCodeLine{347   \textcolor{keyword}{virtual} xbInt16  Reindex( xbInt16 iTagOpt );}
\DoxyCodeLine{348   \textcolor{keyword}{virtual} xbInt16  SetCurTag( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sTagName );}
\DoxyCodeLine{349   \textcolor{keyword}{virtual} \textcolor{keywordtype}{void}     SetCurTag( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sIxType, xbIx *pIx, \textcolor{keywordtype}{void} *vpTag );}
\DoxyCodeLine{350 }
\DoxyCodeLine{351 \textcolor{preprocessor}{  \#endif  }\textcolor{comment}{// XB\_INDEX\_SUPPORT}}
\DoxyCodeLine{352 }
\DoxyCodeLine{353 \textcolor{preprocessor}{  \#ifdef XB\_INF\_SUPPORT}}
\DoxyCodeLine{354   \textcolor{keyword}{virtual} xbInt16  AssociateIndex( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sType, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sName, xbInt16 iOption );}
\DoxyCodeLine{355   xbLinkListNode<xbString> *GetInfList() \textcolor{keyword}{const};}
\DoxyCodeLine{356 \textcolor{preprocessor}{  \#endif   }\textcolor{comment}{// XB\_INF\_SUPPORT}}
\DoxyCodeLine{357 }
\DoxyCodeLine{358   \textcolor{comment}{//\#ifdef XB\_MDX\_SUPPORT}}
\DoxyCodeLine{359   \textcolor{comment}{//virtual xbInt16  GetCreateMdxBlockSize() const;}}
\DoxyCodeLine{360   \textcolor{comment}{//virtual xbInt16  SetCreateMdxBlockSize( xbInt16 ulBlockSize );}}
\DoxyCodeLine{361   \textcolor{comment}{//\#endif}}
\DoxyCodeLine{362 }
\DoxyCodeLine{363 }
\DoxyCodeLine{364 }
\DoxyCodeLine{365  \textcolor{keyword}{protected}:}
\DoxyCodeLine{366 \textcolor{preprocessor}{  \#ifdef XB\_INDEX\_SUPPORT}}
\DoxyCodeLine{367   \textcolor{keyword}{friend} \textcolor{keyword}{class }xbIx;}
\DoxyCodeLine{368   \textcolor{keyword}{friend} \textcolor{keyword}{class }xbIxMdx;}
\DoxyCodeLine{369 }
\DoxyCodeLine{370            xbInt16  AddIndex( xbIx *ix, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFmt );}
\DoxyCodeLine{371            \textcolor{keywordtype}{void}     ClearTagList();}
\DoxyCodeLine{372            xbInt16  RemoveIndex( xbIx * ix );}
\DoxyCodeLine{373            \textcolor{keywordtype}{void}     UpdateSchemaIxFlag( xbInt16 iFldNo, \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} cVal );}
\DoxyCodeLine{374   \textcolor{keyword}{virtual}  xbInt16  UpdateTagList      ();}
\DoxyCodeLine{375 \textcolor{preprocessor}{  \#endif   }\textcolor{comment}{// XB\_INDEX\_SUPPORT}}
\DoxyCodeLine{376 }
\DoxyCodeLine{377 \textcolor{preprocessor}{  \#ifdef XB\_INF\_SUPPORT}}
\DoxyCodeLine{378   \textcolor{keyword}{virtual}  xbInt16  GetInfFileName( \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sNdxIdxFileName );}
\DoxyCodeLine{379 \textcolor{preprocessor}{  \#endif   }\textcolor{comment}{// XB\_INF\_SUPPORT}}
\DoxyCodeLine{380 }
\DoxyCodeLine{381 }
\DoxyCodeLine{382 \textcolor{preprocessor}{  \#ifdef XB\_LOCKING\_SUPPORT}}
\DoxyCodeLine{383   \textcolor{keywordtype}{void}     SetHeaderLocked   ( \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} bTableLocked );}
\DoxyCodeLine{384   \textcolor{keywordtype}{void}     SetTableLocked    ( \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} bTableLocked );}
\DoxyCodeLine{385 \textcolor{preprocessor}{  \#endif }\textcolor{comment}{// XB\_LOCKING\_SUPORT}}
\DoxyCodeLine{386 }
\DoxyCodeLine{387 \textcolor{preprocessor}{  \#ifdef XB\_MEMO\_SUPPORT}}
\DoxyCodeLine{388   xbInt16  iMemoFieldCnt;                 \textcolor{comment}{// Memo field cnt in the table}}
\DoxyCodeLine{389   xbMemo   *Memo;                         \textcolor{comment}{// Pointer to memo class}}
\DoxyCodeLine{390   xbUInt32 ulCreateMemoBlockSize;         \textcolor{comment}{// blocksize to use when creating dbt file}}
\DoxyCodeLine{391 \textcolor{preprocessor}{  \#endif}}
\DoxyCodeLine{392 }
\DoxyCodeLine{393 \textcolor{preprocessor}{  \#ifdef XB\_INF\_SUPPORT}}
\DoxyCodeLine{394   \textcolor{keyword}{virtual} xbInt16  DeleteInfData();}
\DoxyCodeLine{395   \textcolor{keyword}{virtual} xbInt16  LoadInfData();}
\DoxyCodeLine{396   \textcolor{keyword}{virtual} xbInt16  SaveInfData();}
\DoxyCodeLine{397 \textcolor{preprocessor}{  \#endif }\textcolor{comment}{// XB\_INF\_SUPPORT}}
\DoxyCodeLine{398 }
\DoxyCodeLine{399 \textcolor{comment}{/*}}
\DoxyCodeLine{400 \textcolor{comment}{  \#ifdef XB\_MDX\_SUPPORT}}
\DoxyCodeLine{401 \textcolor{comment}{  xbInt16  iCreateMdxBlockSize;}}
\DoxyCodeLine{402 \textcolor{comment}{  \#endif // XB\_MDX\_SUPPORT}}
\DoxyCodeLine{403 \textcolor{comment}{*/}}
\DoxyCodeLine{404 }
\DoxyCodeLine{405   \textcolor{keyword}{virtual}  xbInt16  GetRawField( xbInt16 iFieldNo, \textcolor{keywordtype}{char} *Buf, xbUInt32 BufSize, xbInt16 iRecBufSw ) \textcolor{keyword}{const};}
\DoxyCodeLine{406   \textcolor{keyword}{virtual}  \textcolor{keywordtype}{void}     InitVars(); }
\DoxyCodeLine{407   \textcolor{keyword}{virtual}  xbInt16  SetVersion() = 0;}
\DoxyCodeLine{408   \textcolor{keyword}{virtual}  xbInt16  ValidateSchema( \mbox{\hyperlink{structxb_1_1xbSchema}{xbSchema}} * s ) = 0;}
\DoxyCodeLine{409   xbInt16  WriteHeader( xbInt16 iPositionOption, xbInt16 iWriteOption );}
\DoxyCodeLine{410 }
\DoxyCodeLine{411 }
\DoxyCodeLine{412   xbUInt32 ulCurRec;               \textcolor{comment}{// Current record or zero}}
\DoxyCodeLine{413   xbInt16  iAutoCommit;            \textcolor{comment}{// Auto commit updates if not explicitly performed before moving off record?}}
\DoxyCodeLine{414                                    \textcolor{comment}{//  -\/1  -\/-\/>  Use DBMS default}}
\DoxyCodeLine{415                                    \textcolor{comment}{//   0  -\/-\/>  No auto update on this table, regardless of DBMS setting}}
\DoxyCodeLine{416                                    \textcolor{comment}{//   1  -\/-\/>  Auto update on this table, regardless of DBMS setting}}
\DoxyCodeLine{417 }
\DoxyCodeLine{418   xbInt16  iFileVersion;           \textcolor{comment}{// xBase  file version -\/ which class is in play}}
\DoxyCodeLine{419 }
\DoxyCodeLine{420 }
\DoxyCodeLine{421   \mbox{\hyperlink{classxb_1_1xbString}{xbString}} sAlias;                 \textcolor{comment}{// table alias}}
\DoxyCodeLine{422   xbInt16  iNoOfFields;}
\DoxyCodeLine{423   xbInt16  iDbfStatus;             \textcolor{comment}{// 0 = closed}}
\DoxyCodeLine{424                                    \textcolor{comment}{// 1 = open}}
\DoxyCodeLine{425                                    \textcolor{comment}{// 2 = updates pending}}
\DoxyCodeLine{426 }
\DoxyCodeLine{427   xbSchemaRec *SchemaPtr;          \textcolor{comment}{// Pointer to field data}}
\DoxyCodeLine{428   \textcolor{keywordtype}{char}     *RecBuf;                \textcolor{comment}{// Pointer to record buffer}}
\DoxyCodeLine{429   \textcolor{keywordtype}{char}     *RecBuf2;               \textcolor{comment}{// Pointer to original rec buf}}
\DoxyCodeLine{430 }
\DoxyCodeLine{431 }
\DoxyCodeLine{432 \textcolor{comment}{/* Next several variables are database header fields, up through dbase V */}}
\DoxyCodeLine{433   \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} cVersion;}
\DoxyCodeLine{434   \textcolor{keywordtype}{char}     cUpdateYY;}
\DoxyCodeLine{435   \textcolor{keywordtype}{char}     cUpdateMM;}
\DoxyCodeLine{436   \textcolor{keywordtype}{char}     cUpdateDD;}
\DoxyCodeLine{437   xbUInt32 ulNoOfRecs;}
\DoxyCodeLine{438   xbUInt16 uiHeaderLen;}
\DoxyCodeLine{439   xbUInt16 uiRecordLen;}
\DoxyCodeLine{440   \textcolor{keywordtype}{char}     cTransactionFlag;}
\DoxyCodeLine{441   \textcolor{keywordtype}{char}     cEncryptionFlag;}
\DoxyCodeLine{442   \textcolor{keywordtype}{char}     cIndexFlag;}
\DoxyCodeLine{443   \textcolor{keywordtype}{char}     cLangDriver;                   \textcolor{comment}{// dbase 7 sets to 1B}}
\DoxyCodeLine{444 }
\DoxyCodeLine{445 }
\DoxyCodeLine{446 }
\DoxyCodeLine{447  \textcolor{keyword}{private}:}
\DoxyCodeLine{448   \textcolor{keywordtype}{void}     ResetNoOfRecords(); }
\DoxyCodeLine{449 }
\DoxyCodeLine{450 }
\DoxyCodeLine{451 \textcolor{preprocessor}{\#ifdef XB\_LOCKING\_SUPPORT}}
\DoxyCodeLine{452   xbInt16  iAutoLock;                     \textcolor{comment}{// 0 -\/ autolock off, 1 -\/ autolock on}}
\DoxyCodeLine{453   xbInt16  iLockFlavor;}
\DoxyCodeLine{454   \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}}   bTableLocked;                  \textcolor{comment}{// is the table locked}}
\DoxyCodeLine{455   \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}}   bHeaderLocked;                 \textcolor{comment}{// is the header locked}}
\DoxyCodeLine{456   xbUInt32 ulAppendLocked;                \textcolor{comment}{// record number of the new record for the append lock operation}}
\DoxyCodeLine{457   xbLinkListOrd<xbUInt32> lloRecLocks;    \textcolor{comment}{// ordered link list of locked records}}
\DoxyCodeLine{458 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{459 }
\DoxyCodeLine{460 }
\DoxyCodeLine{461 \textcolor{preprocessor}{\#ifdef XB\_INDEX\_SUPPORT}}
\DoxyCodeLine{462   xbIxList *ixList;                      \textcolor{comment}{// pointer to a list of indices associated with the table}}
\DoxyCodeLine{463   xbIx     *pCurIx;                      \textcolor{comment}{// Pointer to current index class}}
\DoxyCodeLine{464   \textcolor{keywordtype}{void}     *vpCurIxTag;                  \textcolor{comment}{// Pointer to current tag}}
\DoxyCodeLine{465   \mbox{\hyperlink{classxb_1_1xbString}{xbString}} sCurIxType;                   \textcolor{comment}{// Current index type}}
\DoxyCodeLine{466   xbLinkList<xbTag *> llTags;            \textcolor{comment}{// linked list of open tags}}
\DoxyCodeLine{467 }
\DoxyCodeLine{468 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// XB\_INDEX\_SUPPORT}}
\DoxyCodeLine{469 }
\DoxyCodeLine{470 \textcolor{preprocessor}{\#ifdef XB\_INF\_SUPPORT}}
\DoxyCodeLine{471   xbLinkList<xbString> llInfData;      \textcolor{comment}{// linked list of strings containing ndx file entries}}
\DoxyCodeLine{472 \textcolor{preprocessor}{\#endif   }\textcolor{comment}{// XB\_INF\_SUPPORT}}
\DoxyCodeLine{473 }
\DoxyCodeLine{474 }
\DoxyCodeLine{475 \};}
\DoxyCodeLine{476 }
\DoxyCodeLine{477 }
\DoxyCodeLine{478 \textcolor{preprocessor}{\#ifdef XB\_DBF3\_SUPPORT}}
\DoxyCodeLine{480 }
\DoxyCodeLine{486 \textcolor{keyword}{class }XBDLLEXPORT xbDbf3 : \textcolor{keyword}{public} \mbox{\hyperlink{classxb_1_1xbDbf}{xbDbf}} \{}
\DoxyCodeLine{487  \textcolor{keyword}{public}:}
\DoxyCodeLine{488   xbDbf3(\mbox{\hyperlink{classxb_1_1xbXBase}{xbXBase}} *x);}
\DoxyCodeLine{489   \string~xbDbf3();}
\DoxyCodeLine{490   \textcolor{keyword}{virtual} xbInt16 CreateTable   ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sTableName, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sAlias, \mbox{\hyperlink{structxb_1_1xbSchema}{xbSchema}} *, xbInt16 iOverlay, xbInt16 iShareMode );}
\DoxyCodeLine{491   \textcolor{keyword}{virtual} xbInt16 GetVersion    () \textcolor{keyword}{const};}
\DoxyCodeLine{492   \textcolor{keyword}{virtual} xbInt16 Open          ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sTableName, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sAlias, xbInt16 iOpenMode, xbInt16 iShareMode );}
\DoxyCodeLine{493   \textcolor{keyword}{virtual} xbInt16 Rename        ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} sNewName );}
\DoxyCodeLine{494 }
\DoxyCodeLine{495 \textcolor{preprocessor}{  \#ifdef XB\_MEMO\_SUPPORT}}
\DoxyCodeLine{496   \textcolor{keyword}{virtual} xbInt16 SetCreateMemoBlockSize( xbUInt32 iBlockSize );}
\DoxyCodeLine{497 \textcolor{preprocessor}{  \#endif}}
\DoxyCodeLine{498 }
\DoxyCodeLine{499  \textcolor{keyword}{protected}:}
\DoxyCodeLine{500   xbInt16 SetVersion    ();}
\DoxyCodeLine{501   \textcolor{keyword}{virtual} xbInt16 ValidateSchema( \mbox{\hyperlink{structxb_1_1xbSchema}{xbSchema}} *s );}
\DoxyCodeLine{502 }
\DoxyCodeLine{503  \textcolor{keyword}{private}:}
\DoxyCodeLine{504 }
\DoxyCodeLine{505 \};}
\DoxyCodeLine{506 \textcolor{preprocessor}{\#endif   }\textcolor{comment}{/* XB\_DBF3\_SUPPORT */}\textcolor{preprocessor}{}}
\DoxyCodeLine{507 }
\DoxyCodeLine{508 }
\DoxyCodeLine{509 \textcolor{preprocessor}{\#ifdef XB\_DBF4\_SUPPORT}}
\DoxyCodeLine{511 }
\DoxyCodeLine{516 \textcolor{keyword}{class }XBDLLEXPORT xbDbf4 : \textcolor{keyword}{public} \mbox{\hyperlink{namespacexb_ab2eae4b4732466698a7fdd89d77ba53b}{xbDbf}} \{}
\DoxyCodeLine{517  \textcolor{keyword}{public}:}
\DoxyCodeLine{518   xbDbf4( \mbox{\hyperlink{namespacexb_a97858ddeb1c4b0100f3edc1a46d3a8b0}{xbXBase}} *x );}
\DoxyCodeLine{519 }
\DoxyCodeLine{520   \string~xbDbf4();}
\DoxyCodeLine{521 }
\DoxyCodeLine{522   \textcolor{keyword}{virtual} xbInt16 CreateTable     ( \textcolor{keyword}{const} xbString \&sTableName, \textcolor{keyword}{const} xbString \&sAlias, xbSchema *, xbInt16 iOverlay, xbInt16 iShareMode );}
\DoxyCodeLine{523   \textcolor{keyword}{virtual} xbInt16 GetVersion      () \textcolor{keyword}{const};}
\DoxyCodeLine{524   \textcolor{keyword}{virtual} xbInt16 Open            ( \textcolor{keyword}{const} xbString \&sTableName, \textcolor{keyword}{const} xbString \&sAlias, xbInt16 iOpenMode, xbInt16 iShareMode );}
\DoxyCodeLine{525   \textcolor{keyword}{virtual} xbInt16 Rename          ( \textcolor{keyword}{const} xbString sNewName );}
\DoxyCodeLine{526 }
\DoxyCodeLine{527 \textcolor{preprocessor}{  \#ifdef XB\_MEMO\_SUPPORT}}
\DoxyCodeLine{528   \textcolor{keyword}{virtual} xbInt16 SetCreateMemoBlockSize( xbUInt32 iBlockSize );}
\DoxyCodeLine{529 \textcolor{preprocessor}{  \#endif}}
\DoxyCodeLine{530 }
\DoxyCodeLine{531  \textcolor{keyword}{protected}:}
\DoxyCodeLine{532   \textcolor{comment}{// void    InitVars  ();}}
\DoxyCodeLine{533   xbInt16 SetVersion();}
\DoxyCodeLine{534   \textcolor{keyword}{virtual} xbInt16 ValidateSchema  ( xbSchema *s );}
\DoxyCodeLine{535 }
\DoxyCodeLine{536  \textcolor{keyword}{private}:}
\DoxyCodeLine{537 }
\DoxyCodeLine{538 \};}
\DoxyCodeLine{539 }
\DoxyCodeLine{540 \textcolor{preprocessor}{\#endif   }\textcolor{comment}{/* XB\_DBF4\_SUPPORT */}\textcolor{preprocessor}{}}
\DoxyCodeLine{541 }
\DoxyCodeLine{542 \}        \textcolor{comment}{/* namespace xb    */}}
\DoxyCodeLine{543 \textcolor{preprocessor}{\#endif   }\textcolor{comment}{/* \_\_XB\_DBF\_H\_\_ */}\textcolor{preprocessor}{}}

\end{DoxyCode}