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