diff options
Diffstat (limited to 'src/include/xbdbf.h')
-rwxr-xr-x | src/include/xbdbf.h | 558 |
1 files changed, 0 insertions, 558 deletions
diff --git a/src/include/xbdbf.h b/src/include/xbdbf.h deleted file mode 100755 index 16799f2..0000000 --- a/src/include/xbdbf.h +++ /dev/null @@ -1,558 +0,0 @@ -/* xbdbf.h - -XBase64 Software Library - -Copyright (c) 1997,2003,2014,2022,2023 Gary A Kunkel - -The xb64 software library is covered under the terms of the GPL Version 3, 2007 license. - -Email Contact: - - XDB-devel@lists.sourceforge.net - XDB-users@lists.sourceforge.net - -*/ - - -#ifndef __XB_XBDBF_H__ -#define __XB_XBDBF_H__ - -//#ifdef CMAKE_COMPILER_IS_GNUCC -//#pragma interface -//#endif - -namespace xb{ - -/*****************************/ -/* Field Types */ - -#define XB_CHAR_FLD 'C' -#define XB_LOGICAL_FLD 'L' -#define XB_NUMERIC_FLD 'N' -#define XB_DATE_FLD 'D' -#define XB_MEMO_FLD 'M' -#define XB_FLOAT_FLD 'F' - -/*****************************/ -/* File Status Codes */ - -#define XB_CLOSED 0 -#define XB_OPEN 1 -#define XB_UPDATED 2 - - -/*****************************/ -/* File Access Modes */ -// #define XB_SINGLE_USER 0 // file buffering on -// #define XB_MULTI_USER 1 // file buffering off - -/*****************************/ -/* File Lock Functions */ -#define XB_LOCK 0 -#define XB_UNLOCK 1 - -#define LK_DBASE 1 -#define LK_CLIPPER 2 // future -#define LK_FOX 3 // future -#define LK_XBASE64 9 // future - -/*****************************/ -/* Record retrieve options */ -#define XB_ALL_RECS 0 -#define XB_ACTIVE_RECS 1 -#define XB_DELETED_RECS 2 - - -/*****************************/ -/* Other defines */ - -#define XB_OVERLAY 1 -#define XB_DONTOVERLAY 0 -#define XB_CHAREOF '\x1A' /* end of DBF */ -#define XB_CHARHDR '\x0D' /* header terminator */ - - -//! @brief Schema used for defining tables with CreateTable methods. -/*! - See program xb_ex_v3_create_dbf.cpp or xb_ex_v4_create_dbf.cpp - as examples on how to use. - -\code -xbSchema MyRecord[] = { -// FieldName, Type, Len, Dec - { "FIRSTNAME", XB_CHAR_FLD, 15, 0 }, - { "LASTNAME", XB_CHAR_FLD, 20, 0 }, - { "BIRTHDATE", XB_DATE_FLD, 8, 0 }, - { "AMOUNT", XB_NUMERIC_FLD, 9, 2 }, - { "RETIRED?", XB_LOGICAL_FLD, 1, 0 }, - { "ZIPCODE", XB_NUMERIC_FLD, 5, 0 }, - { "NUMFLD1", XB_FLOAT_FLD, 12, 2 }, - { "NUMFLD2", XB_FLOAT_FLD, 14, 2 }, - { "MEMO1", XB_MEMO_FLD, 10, 0 }, - { "",0,0,0 }}; -\endcode -*/ -struct XBDLLEXPORT xbSchema { - char cFieldName[11]; - char cType; - xbInt16 iFieldLen; /* fields are stored as one byte on record*/ - xbInt16 iNoOfDecs; -}; - -///@cond DOXYOFF -struct XBDLLEXPORT xbSchemaRec { - char cFieldName[11]; /* ASCIIZ field name */ - char cType; /* field type */ - char *pAddress; /* pointer to field in record buffer 1 */ - unsigned char cFieldLen; /* fields are stored as one byte on record */ - unsigned char cNoOfDecs; - char *pAddress2; /* pointer to field in record buffer 2 */ - xbInt16 iLongFieldLen; /* to handle long field lengths */ - unsigned char cIxFlag; /* DBase IV Index field flag */ -}; -///@endcond DOXYOFF - - - -///@cond DOXYOFF -#ifdef XB_INDEX_SUPPORT -class XBDLLEXPORT xbIx; -// structure for file list, each open DBF file can have one or more index files -struct XBDLLEXPORT xbIxList { - xbIxList *next; - xbIx *ix; - xbString *sFmt; -}; -#endif // XB_INDEX_SUPPORT -///@endcond DOXYOFF - - -//! @brief Base class for handling dbf files/tables. -/*! -The xbDbf class is used as a base class for accessing dbf files. -In line with relational theory, a each dbf file can be considered as a table. -The documentation uses the terms dbf and table interchangeably.<br> - -This module handles methods for accessing and updating dbf files. - -<br> -The class is designed to support additional file layouts with a minimal amount of effort. -If you are wanting to update the library to support a new dbf file type not currently supported -by the library, create a derived class using xbDbf as a base class and modify methods needed -to support the new dbf file version.<br> -See the following for examples on how to start on this:<br> -xbDbf3 is a derived class from xbDbf and supports the original Dbase III+ file version.<br> -xbDbf4 is a derived class from xbDbf and supports the original Dbase IV file version.<br> - -*/ - - -class XBDLLEXPORT xbDbf : public xbFile { - - public: - xbDbf( xbXBase *x ); - virtual ~xbDbf(); - - virtual xbInt16 Abort(); - virtual xbInt16 AppendRecord(); - virtual xbInt16 BlankRecord(); - virtual xbInt16 Commit(); - virtual xbInt16 Close(); - virtual xbInt16 CopyDbfStructure( xbDbf *dNewTable, const xbString &sTableName, const xbString &sTableAlias, xbInt16 iOverlay, xbInt16 iShareMode ); - virtual xbInt16 CreateTable ( const xbString &sTableName, const xbString &sAlias, xbSchema *pSchema, xbInt16 iOverlay, xbInt16 iShareMode ) = 0; - virtual xbInt16 DeleteTable (); - virtual xbInt16 DeleteAll ( xbInt16 iOption ); - virtual xbInt16 DeleteAllRecords (); - virtual xbInt16 DeleteRecord (); - virtual xbInt16 DumpHeader ( xbInt16 iOption ) const; - virtual xbInt16 DumpRecord ( xbUInt32 ulRecNo, xbInt16 iOutputDest = 0, xbInt16 iOutputFmt = 0 ); - virtual xbInt16 GetAutoCommit () const; - virtual xbInt16 GetAutoCommit ( xbInt16 iOption ) const; - virtual xbBool GetBof (); - virtual xbUInt32 GetCurRecNo () const; - virtual xbInt16 GetDbfStatus () const; - virtual xbBool GetEof (); - virtual xbInt32 GetFieldCnt () const; - virtual xbInt16 GetFirstRecord (); - virtual xbInt16 GetFirstRecord ( xbInt16 iOption ); - virtual xbUInt16 GetHeaderLen () const; - virtual xbInt16 GetLastRecord (); - virtual xbInt16 GetLastRecord ( xbInt16 iOption ); - - virtual xbInt16 GetNextRecord (); - virtual xbInt16 GetNextRecord ( xbInt16 iOption ); - virtual xbInt16 GetNextRecord ( xbInt16 iOption, xbUInt32 ulStartRec ); - virtual xbInt16 GetPrevRecord (); - virtual xbInt16 GetPrevRecord ( xbInt16 iOption ); - virtual xbInt16 GetRecord ( xbUInt32 ulRecNo ); - - virtual xbUInt32 GetRecordCount (); - virtual xbInt16 GetRecordCnt ( xbUInt32 & ulRecCnt ); - - virtual char * GetRecordBuf ( xbInt16 iOpt = 0 ) const; - virtual xbUInt16 GetRecordLen () const; - virtual const xbString &GetTblAlias() const; - virtual xbInt16 GetVersion () const = 0; - virtual xbXBase *GetXbasePtr () const; // return xbase pointer - - - virtual xbBool MemoFieldsExist () const; - - virtual xbInt16 Open ( const xbString &sTableName ); - virtual xbInt16 Open ( const xbString &sTableName, const xbString &sAlias ); - virtual xbInt16 Open ( const xbString &sTableName, const xbString &sAlias, xbInt16 iOpenMode, xbInt16 iShareMode ) = 0; - virtual xbInt16 Pack (); - virtual xbInt16 Pack ( xbUInt32 &ulDeletedRecCnt ); - - - virtual xbInt16 PutRecord (); // Put record to current location - virtual xbInt16 PutRecord ( xbUInt32 ulRecNo ); - virtual xbInt16 ReadHeader ( xbInt16 iFilePositionOption, xbInt16 iReadOption ); - virtual xbInt16 RecordDeleted ( xbInt16 iOpt = 0 ) const; - virtual xbInt16 Rename ( const xbString sNewName ) = 0; - - virtual xbInt16 SetAutoCommit ( xbInt16 iAutoCommit ); - - virtual xbInt16 UndeleteAllRecords(); - virtual xbInt16 UndeleteRecord (); - virtual xbInt16 Zap (); - - - /* field methods */ - //virtual xbInt16 GetRawField( xbInt16 iFieldNo, char *Buf, xbUInt32 BufSize, xbInt16 iRecBufSw ) const; - virtual xbInt16 GetField(xbInt16 iFieldNo, xbString &sFieldValue, xbInt16 iRecBufSw ) const; - virtual xbInt16 GetField(xbInt16 iFieldNo, xbString &sFieldValue) const; - virtual xbInt16 GetField(const xbString &sFieldName, xbString &sFieldValue) const; - virtual xbInt16 GetFieldDecimal( xbInt16 iFieldNo, xbInt16 &iFieldDecimal ) const; - virtual xbInt16 GetFieldDecimal( const xbString &sFieldName, xbInt16 &iFieldDecimal ) const; - virtual xbInt16 GetFieldLen( xbInt16 iFieldNo, xbInt16 &iFieldLen ) const; - virtual xbInt16 GetFieldLen( const xbString &sFieldName, xbInt16 &iFieldLen ) const; - virtual xbInt16 GetFieldName( xbInt16 iFieldNo, xbString &sFieldName ) const; - - virtual xbInt16 GetFieldNo( const xbString &sFieldName, xbInt16 &iFieldNo ) const; - virtual xbInt16 GetFieldNo( const xbString &sFieldName ) const; - - virtual xbInt16 GetFieldType( xbInt16 iFieldNo, char &cFieldType ) const; - virtual xbInt16 GetFieldType( const xbString &sFieldName, char &cFieldType ) const; - virtual xbInt16 PutField( const xbString &sFieldName, const xbString &sFieldData ); - virtual xbInt16 PutField( xbInt16 iFieldNo, const xbString &sFieldData ); - - virtual xbInt16 PutLogicalField( xbInt16 iFieldNo, const xbString &sFieldData ); - virtual xbInt16 PutLogicalField( const xbString &sFieldName, const xbString &sFieldData ); - virtual xbInt16 GetLogicalField( xbInt16 iFieldNo, xbString &sFieldData ) const; - virtual xbInt16 GetLogicalField( const xbString &sFieldName, xbString &sFieldData) const; - - virtual xbInt16 PutLogicalField( xbInt16 iFieldNo, xbBool bFieldData ); - virtual xbInt16 PutLogicalField( const xbString &sFieldName, xbBool bFieldData ); - virtual xbInt16 GetLogicalField( xbInt16 iFieldNo, xbBool &bFieldData ) const; - virtual xbInt16 GetLogicalField( xbInt16 iFieldNo, xbBool &bFieldData, xbInt16 iRecBufSw ) const; - virtual xbInt16 GetLogicalField( const xbString &sFieldName, xbBool &bFieldData) const; - - virtual xbInt16 GetLongField( xbInt16 iFieldNo, xbInt32 &lFieldValue ) const; - virtual xbInt16 GetLongField( const xbString &sFieldName, xbInt32 &lFieldValue ) const; - virtual xbInt16 PutLongField( xbInt16 iFieldNo, xbInt32 lFieldValue ); - virtual xbInt16 PutLongField( const xbString &sFieldNo, xbInt32 lFieldValue ); - - virtual xbInt16 GetULongField( xbInt16 iFieldNo, xbUInt32 &lFieldValue ) const; - virtual xbInt16 GetULongField( const xbString &sFieldName, xbUInt32 &lFieldValue ) const; - virtual xbInt16 PutULongField( xbInt16 iFieldNo, xbUInt32 lFieldValue ); - virtual xbInt16 PutULongField( const xbString &sFieldNo, xbUInt32 lFieldValue ); - - virtual xbInt16 GetDoubleField( xbInt16 FieldNo, xbDouble &dFieldValue ) const; - virtual xbInt16 GetDoubleField( xbInt16 FieldNo, xbDouble &dFieldValue, xbInt16 iRecBufSw ) const; - virtual xbInt16 GetDoubleField( const xbString &sFieldName, xbDouble &dFieldValue ) const; - virtual xbInt16 PutDoubleField( xbInt16 FieldNo, xbDouble dFieldValue ); - virtual xbInt16 PutDoubleField( const xbString &FieldName, xbDouble dFieldValue ); - - virtual xbInt16 GetFloatField( xbInt16 iFieldNo, xbFloat &fFieldValue ) const; - virtual xbInt16 GetFloatField( const xbString &sFieldName, xbFloat &fFieldValue ) const; - virtual xbInt16 PutFloatField( xbInt16 iFieldNo, xbFloat fFieldValue ); - virtual xbInt16 PutFloatField( const xbString &sFieldName, xbFloat fFieldValue ); - - virtual xbInt16 GetDateField( xbInt16 iFieldNo, xbDate &dt ) const; - virtual xbInt16 GetDateField( const xbString &sFieldName, xbDate &dt ) const; - virtual xbInt16 PutDateField( xbInt16 iFieldNo, const xbDate &dt ); - virtual xbInt16 PutDateField( const xbString &sFieldName, const xbDate &dt ); - - - - #ifdef XB_MEMO_SUPPORT - virtual xbInt16 GetMemoFieldCnt () const; - virtual xbMemo *GetMemoPtr (); - virtual xbUInt32 GetCreateMemoBlockSize() const; - virtual xbInt16 GetMemoField ( xbInt16 iFldNo, xbString &sMemoData ); - virtual xbInt16 GetMemoField ( const xbString & sFldName, xbString &sMemoData ); - virtual xbInt16 GetMemoFieldLen ( xbInt16 iFldNo, xbUInt32 &ullMemoFieldLen ); - virtual xbInt16 GetMemoFieldLen ( const xbString & sFldName, xbUInt32 &ulMemoFieldLen ); - virtual xbBool MemoFieldExists ( xbInt16 iFieldNo ) const; - virtual xbBool MemoFieldExists ( const xbString &sFieldName ) const; - virtual xbInt16 SetCreateMemoBlockSize( xbUInt32 ulBlockSize ) = 0; - virtual xbInt16 UpdateMemoField ( xbInt16 iFldNo, const xbString &sMemoData ); - virtual xbInt16 UpdateMemoField ( const xbString & sFldName, const xbString &sMemoData ); - #endif // XB_MEMO_SUPPORT - - - #ifdef XB_LOCKING_SUPPORT - virtual xbInt16 LockTable ( xbInt16 iLockFunction ); - virtual xbInt16 LockRecord ( xbInt16 iLockFunction, xbUInt32 ulRecNo ); - virtual xbInt16 LockAppend ( xbInt16 iLockFunction ); - virtual xbInt16 LockHeader ( xbInt16 iLockFunction ); - - #ifdef XB_MEMO_SUPPORT - virtual xbInt16 LockMemo ( xbInt16 iLockFunction ); - virtual xbBool GetMemoLocked () const; - #endif // XB_MEMO_LOCK - - #ifdef XB_INDEX_SUPPORT - virtual xbInt16 LockIndices ( xbInt16 iLockFunction ); - #endif // XB_INDEX_SUPPORT - - xbInt16 GetAutoLock () const; - void SetAutoLock ( xbInt16 iAutoLock ); - xbInt16 GetLockFlavor () const; - void SetLockFlavor ( xbInt16 iLockFlavor ); - xbBool GetTableLocked () const; - xbBool GetHeaderLocked () const; - xbUInt32 GetAppendLocked () const; - xbLinkListNode<xbUInt32> * GetFirstRecLock () const; - - #ifdef XB_DEBUG_SUPPORT - void DumpTableLockStatus() const; - #endif // XB_DEBUG_SUPPORT - #endif // XB_LOCKING_SUPPORT - - - #ifdef XB_INDEX_SUPPORT - virtual xbInt16 CheckTagIntegrity( xbInt16 iTagOpt, xbInt16 iOutputOpt ); - virtual xbInt16 CloseIndexFile( xbIx *pIx ); - virtual xbInt16 CreateTag( const xbString &sIxType, const xbString &sName, const xbString &sKey, const xbString &sFilter, - xbInt16 iDescending, xbInt16 iUnique, xbInt16 iOverLay, xbIx **xbIxOut, void **vpTagOut ); - virtual xbInt16 DeleteTag( const xbString &sIxType, const xbString &sName ); - virtual xbInt16 DeleteAllIndexFiles(); - virtual xbInt16 Find( xbString &sKey ); - virtual xbInt16 Find( xbDate &dtKey ); - virtual xbInt16 Find( xbDouble &dKey ); - virtual xbIx *GetCurIx() const; - virtual void *GetCurTag() const; - - virtual xbInt16 GetFirstKey(); - virtual xbInt16 GetNextKey(); - virtual xbInt16 GetPrevKey(); - virtual xbInt16 GetLastKey(); - - virtual const xbString &GetCurIxType() const; - virtual const xbString &GetCurTagName() const; - virtual xbIxList *GetIxList() const; - virtual xbInt32 GetPhysicalIxCnt () const; - xbLinkListNode<xbTag *> *GetTagList () const; - - virtual xbInt16 OpenIndex( const xbString &sIxType, const xbString &sIndexName ); - virtual xbInt16 Reindex( xbInt16 iTagOpt ); - virtual xbInt16 SetCurTag( const xbString &sTagName ); - virtual void SetCurTag( const xbString &sIxType, xbIx *pIx, void *vpTag ); - - #endif // XB_INDEX_SUPPORT - - #ifdef XB_INF_SUPPORT - virtual xbInt16 AssociateIndex( const xbString &sType, const xbString &sName, xbInt16 iOption ); - xbLinkListNode<xbString> *GetInfList() const; - #endif // XB_INF_SUPPORT - - //#ifdef XB_MDX_SUPPORT - //virtual xbInt16 GetCreateMdxBlockSize() const; - //virtual xbInt16 SetCreateMdxBlockSize( xbInt16 ulBlockSize ); - //#endif - - #ifdef XB_BLOCKREAD_SUPPORT - xbInt16 DisableBlockReadProcessing(); - xbInt16 EnableBlockReadProcessing(); - xbBool GetBlockReadStatus() const; - #endif // XB_BLOCKREAD_SUPPORT - - protected: - #ifdef XB_INDEX_SUPPORT - friend class xbIx; - friend class xbIxMdx; - - xbInt16 AddIndex( xbIx *ix, const xbString &sFmt ); - void ClearTagList(); - xbInt16 RemoveIndex( xbIx * ix ); - void UpdateSchemaIxFlag( xbInt16 iFldNo, unsigned char cVal ); - virtual xbInt16 UpdateTagList (); - #endif // XB_INDEX_SUPPORT - - #ifdef XB_INF_SUPPORT - virtual xbInt16 GetInfFileName( xbString &sNdxIdxFileName ); - #endif // XB_INF_SUPPORT - - #ifdef XB_BLOCKREAD_SUPPORT - friend class xbBlockRead; - #endif // XB_BLOCKREAD_SUPPORT - - - #ifdef XB_LOCKING_SUPPORT - void SetHeaderLocked ( xbBool bTableLocked ); - void SetTableLocked ( xbBool bTableLocked ); - #endif // XB_LOCKING_SUPORT - - #ifdef XB_MEMO_SUPPORT - xbInt16 iMemoFieldCnt; // Memo field cnt in the table - xbMemo *Memo; // Pointer to memo class - xbUInt32 ulCreateMemoBlockSize; // blocksize to use when creating dbt file - #endif - - #ifdef XB_INF_SUPPORT - virtual xbInt16 DeleteInfData(); - virtual xbInt16 LoadInfData(); - virtual xbInt16 SaveInfData(); - #endif // XB_INF_SUPPORT - -/* - #ifdef XB_MDX_SUPPORT - xbInt16 iCreateMdxBlockSize; - #endif // XB_MDX_SUPPORT -*/ - - virtual xbInt16 GetRawField( xbInt16 iFieldNo, char *Buf, xbUInt32 BufSize, xbInt16 iRecBufSw ) const; - virtual void InitVars(); - virtual xbInt16 SetVersion() = 0; - virtual xbInt16 ValidateSchema( xbSchema * s ) = 0; - xbInt16 WriteHeader( xbInt16 iPositionOption, xbInt16 iWriteOption ); - - - xbUInt32 ulCurRec; // Current record or zero - xbInt16 iAutoCommit; // Auto commit updates if not explicitly performed before moving off record? - // -1 --> Use DBMS default - // 0 --> No auto update on this table, regardless of DBMS setting - // 1 --> Auto update on this table, regardless of DBMS setting - - xbInt16 iFileVersion; // xBase file version - which class is in play - - - xbString sAlias; // table alias - xbInt16 iNoOfFields; - xbInt16 iDbfStatus; // 0 = closed - // 1 = open - // 2 = updates pending - - xbSchemaRec *SchemaPtr; // Pointer to field data - char *RecBuf; // Pointer to record buffer - char *RecBuf2; // Pointer to original rec buf allocation - - -/* Next several variables are database header fields, up through dbase V */ - unsigned char cVersion; - char cUpdateYY; - char cUpdateMM; - char cUpdateDD; - xbUInt32 ulNoOfRecs; - xbUInt16 uiHeaderLen; - xbUInt16 uiRecordLen; - char cTransactionFlag; - char cEncryptionFlag; - char cIndexFlag; - char cLangDriver; // dbase 7 sets to 1B - - - - private: - void ResetNoOfRecords(); - - - #ifdef XB_LOCKING_SUPPORT - xbInt16 iAutoLock; // 0 - autolock off, 1 - autolock on - xbInt16 iLockFlavor; - xbBool bTableLocked; // is the table locked - xbBool bHeaderLocked; // is the header locked - xbUInt32 ulAppendLocked; // record number of the new record for the append lock operation - xbLinkListOrd<xbUInt32> lloRecLocks; // ordered link list of locked records - #endif - - #ifdef XB_INDEX_SUPPORT - xbIxList *ixList; // pointer to a list of indices associated with the table - xbIx *pCurIx; // Pointer to current index class - void *vpCurIxTag; // Pointer to current tag - xbString sCurIxType; // Current index type - xbLinkList<xbTag *> llTags; // linked list of open tags - #endif // XB_INDEX_SUPPORT - - #ifdef XB_INF_SUPPORT - xbLinkList<xbString> llInfData; // linked list of strings containing ndx file entries - #endif // XB_INF_SUPPORT - - #ifdef XB_BLOCKREAD_SUPPORT - xbBlockRead *pRb; - xbBool bBlockReadEnabled; // if true, then block read mode is on - #endif - - - -}; - - -#ifdef XB_DBF3_SUPPORT -//! @brief Derived class for handling dbf version III files/tables. -/*! -The xbDbf class is used as a base class for accessing dbf files. -The xbDbf3 class is derived from the xbDbf class and is designed to handle the -orginal version 3 type files. -*/ - -class XBDLLEXPORT xbDbf3 : public xbDbf { - public: - xbDbf3(xbXBase *x); - ~xbDbf3(); - virtual xbInt16 CreateTable ( const xbString &sTableName, const xbString &sAlias, xbSchema *, xbInt16 iOverlay, xbInt16 iShareMode ); - virtual xbInt16 GetVersion () const; - virtual xbInt16 Open ( const xbString &sTableName, const xbString &sAlias, xbInt16 iOpenMode, xbInt16 iShareMode ); - virtual xbInt16 Rename ( const xbString sNewName ); - - #ifdef XB_MEMO_SUPPORT - virtual xbInt16 SetCreateMemoBlockSize( xbUInt32 iBlockSize ); - #endif - - protected: - xbInt16 SetVersion (); - virtual xbInt16 ValidateSchema( xbSchema *s ); - - private: - -}; -#endif /* XB_DBF3_SUPPORT */ - - -#ifdef XB_DBF4_SUPPORT -//! @brief Derived class for handling dbf version IV files/tables. -/*! -The xbDbf class is used as a base class for accessing dbf files. -The xbDbf4 class is derived from the xbDbf class and is designed to handle the -orginal version 4 type files. -*/ -class XBDLLEXPORT xbDbf4 : public xbDbf { - public: - xbDbf4( xbXBase *x ); - - ~xbDbf4(); - - virtual xbInt16 CreateTable ( const xbString &sTableName, const xbString &sAlias, xbSchema *, xbInt16 iOverlay, xbInt16 iShareMode ); - virtual xbInt16 GetVersion () const; - virtual xbInt16 Open ( const xbString &sTableName, const xbString &sAlias, xbInt16 iOpenMode, xbInt16 iShareMode ); - virtual xbInt16 Rename ( const xbString sNewName ); - - #ifdef XB_MEMO_SUPPORT - virtual xbInt16 SetCreateMemoBlockSize( xbUInt32 iBlockSize ); - #endif - - protected: - // void InitVars (); - xbInt16 SetVersion(); - virtual xbInt16 ValidateSchema ( xbSchema *s ); - - private: - -}; - -#endif /* XB_DBF4_SUPPORT */ - -} /* namespace xb */ -#endif /* __XB_DBF_H__ */ |