\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}
