#ifndef _USE_OLD_JET_H_ #define _USE_NEW_JET_H_ /* The USE_NEW_JET_H is needed for err.awk to generate err.c in cli */ #if _MSC_VER > 1000 #pragma once #endif // ******************************************************************************* // New Jet header... // ******************************************************************************* #if !defined(_JET_INCLUDED) #define _JET_INCLUDED #ifdef __cplusplus extern "C" { #endif #define JET_cbPage 4096 // UNDONE: Remove when no more components reference this. #if defined(_M_ALPHA) #include #else #include #endif #define JET_API __stdcall #define JET_NODSAPI __stdcall typedef long JET_ERR; typedef unsigned long JET_INSTANCE; /* Instance Identifier */ typedef ULONG_PTR JET_SESID; /* Session Identifier */ typedef ULONG_PTR JET_TABLEID; /* Table Identifier */ typedef unsigned long JET_COLUMNID; /* Column Identifier */ typedef ULONG_PTR JET_DBID; /* Database Identifier */ typedef unsigned long JET_OBJTYP; /* Object Type */ typedef unsigned long JET_COLTYP; /* Column Type */ typedef unsigned long JET_GRBIT; /* Group of Bits */ typedef unsigned long JET_SNP; /* Status Notification Process */ typedef unsigned long JET_SNT; /* Status Notification Type */ typedef unsigned long JET_SNC; /* Status Notification Code */ typedef double JET_DATESERIAL; /* JET_coltypDateTime format */ typedef unsigned long JET_HANDLE; /* backup file handle */ typedef JET_ERR (__stdcall *JET_PFNSTATUS)(JET_SESID sesid, JET_SNP snp, JET_SNT snt, void *pv); /* required for Exchange to make RSTMAP RPC capable /**/ #ifdef MIDL_PASS #define xRPC_STRING [string] #else #define xRPC_STRING typedef unsigned short WCHAR; #endif typedef struct { xRPC_STRING char *szDatabaseName; xRPC_STRING char *szNewDatabaseName; } JET_RSTMAP; /* restore map */ /* required for Exchange unicode support /**/ #define UNICODE_RSTMAP typedef struct tagJET_RSTMAPW { xRPC_STRING WCHAR *wszDatabaseName; xRPC_STRING WCHAR *wszNewDatabaseName; } JET_RSTMAPW, *PJET_RSTMAPW; // For edbutil convert only. typedef struct tagCONVERT { char *szOldDll; union { unsigned long fFlags; struct { unsigned long fSchemaChangesOnly:1; }; }; } JET_CONVERT; typedef enum { opDBUTILConsistency, opDBUTILDumpData, opDBUTILDumpMetaData, opDBUTILDumpPage, opDBUTILDumpNode, opDBUTILDumpSpace, opDBUTILSetHeaderState, opDBUTILDumpHeader, opDBUTILDumpLogfile, opDBUTILDumpLogfileTrackNode, opDBUTILDumpCheckpoint, opDBUTILEDBDump, opDBUTILEDBRepair, opDBUTILMunge } DBUTIL_OP; typedef enum { opEDBDumpTables, opEDBDumpIndexes, opEDBDumpColumns, opEDBDumpPage, } EDBDUMP_OP; typedef struct tagDBUTIL { unsigned long cbStruct; JET_SESID sesid; JET_DBID dbid; JET_TABLEID tableid; DBUTIL_OP op; EDBDUMP_OP edbdump; JET_GRBIT grbitOptions; char *szDatabase; char *szBackup; char *szTable; char *szIndex; long pgno; long iline; long lGeneration; long isec; long ib; long cRetry; void * pfnCallback; void * pvCallback; } JET_DBUTIL; #define JET_bitDBUtilOptionAllNodes 0x00000001 #define JET_bitDBUtilOptionKeyStats 0x00000002 #define JET_bitDBUtilOptionPageDump 0x00000004 #define JET_bitDBUtilOptionDumpVerbose 0x10000000 // DEBUG only #define JET_bitDBUtilOptionCheckBTree 0x20000000 // DEBUG only #define JET_bitDBUtilOptionStats 0x00000008 #define JET_bitDBUtilOptionVerbose 0x00000010 #define JET_bitDBUtilOptionIgnoreErrors 0x00000020 #define JET_bitDBUtilOptionVerify 0x00000040 #define JET_bitDBUtilOptionReportErrors 0x00000080 #define JET_bitDBUtilOptionDontRepair 0x00000100 #define JET_bitDBUtilOptionRepairAll 0x00000200 #define JET_bitDBUtilOptionRepairIndexes 0x00000400 #define JET_bitDBUtilOptionDontBuildIndexes 0x00000800 // Online defragmentation options #define JET_bitDefragmentBatchStart 0x00000001 #define JET_bitDefragmentBatchStop 0x00000002 /* Session information bits */ #define JET_bitCIMCommitted 0x00000001 #define JET_bitCIMDirty 0x00000002 #define JET_bitAggregateTransaction 0x00000008 /* Status Notification Structures */ typedef struct /* Status Notification Progress */ { unsigned long cbStruct; /* Size of this structure */ unsigned long cunitDone; /* Number of units of work completed */ unsigned long cunitTotal; /* Total number of units of work */ } JET_SNPROG; typedef struct /* Status Notification Message */ { unsigned long cbStruct; /* Size of this structure */ JET_SNC snc; /* Status Notification Code */ unsigned long ul; /* Numeric identifier */ char sz[256]; /* Identifier */ } JET_SNMSG; typedef struct { unsigned long cbStruct; unsigned long cbFilesizeLow; // file's current size (low DWORD) unsigned long cbFilesizeHigh; // file's current size (high DWORD) unsigned long cbFreeSpaceRequiredLow; // estimate of free disk space required for in-place upgrade (low DWORD) unsigned long cbFreeSpaceRequiredHigh;// estimate of free disk space required for in-place upgrade (high DWORD) unsigned long csecToUpgrade; // estimate of time required, in seconds, for upgrade union { unsigned long ulFlags; struct { unsigned long fUpgradable:1; unsigned long fAlreadyUpgraded:1; }; }; } JET_DBINFOUPGRADE; typedef struct { unsigned long cbStruct; JET_OBJTYP objtyp; JET_DATESERIAL dtCreate; // XXX -- to be deleted JET_DATESERIAL dtUpdate; // XXX -- to be deleted JET_GRBIT grbit; unsigned long flags; unsigned long cRecord; unsigned long cPage; } JET_OBJECTINFO; /* The following flags appear in the grbit field above */ #define JET_bitTableInfoUpdatable 0x00000001 #define JET_bitTableInfoBookmark 0x00000002 #define JET_bitTableInfoRollback 0x00000004 #define JET_bitTableSequential 0x00008000 /* The following flags occur in the flags field above */ #define JET_bitObjectSystem 0x80000000 // Internal use only #define JET_bitObjectTableFixedDDL 0x40000000 // Table's DDL is fixed #define JET_bitObjectTableTemplate 0x20000000 // Table's DDL is inheritable (implies FixedDDL) #define JET_bitObjectTableDerived 0x10000000 // Table's DDL is inherited from a template table #define JET_bitObjectSystemDynamic (JET_bitObjectSystem|0x08000000) // Internal use only (dynamic system objects) typedef struct { unsigned long cbStruct; JET_TABLEID tableid; unsigned long cRecord; JET_COLUMNID columnidcontainername; JET_COLUMNID columnidobjectname; JET_COLUMNID columnidobjtyp; JET_COLUMNID columniddtCreate; // XXX -- to be deleted JET_COLUMNID columniddtUpdate; // XXX -- to be deleted JET_COLUMNID columnidgrbit; JET_COLUMNID columnidflags; JET_COLUMNID columnidcRecord; /* Level 2 info */ JET_COLUMNID columnidcPage; /* Level 2 info */ } JET_OBJECTLIST; #define cObjectInfoCols 9 typedef struct { unsigned long cbStruct; JET_TABLEID tableid; unsigned long cRecord; JET_COLUMNID columnidPresentationOrder; JET_COLUMNID columnidcolumnname; JET_COLUMNID columnidcolumnid; JET_COLUMNID columnidcoltyp; JET_COLUMNID columnidCountry; JET_COLUMNID columnidLangid; JET_COLUMNID columnidCp; JET_COLUMNID columnidCollate; JET_COLUMNID columnidcbMax; JET_COLUMNID columnidgrbit; JET_COLUMNID columnidDefault; JET_COLUMNID columnidBaseTableName; JET_COLUMNID columnidBaseColumnName; JET_COLUMNID columnidDefinitionName; } JET_COLUMNLIST; #define cColumnInfoCols 14 typedef struct { unsigned long cbStruct; JET_COLUMNID columnid; JET_COLTYP coltyp; unsigned short wCountry; unsigned short langid; unsigned short cp; unsigned short wCollate; /* Must be 0 */ unsigned long cbMax; JET_GRBIT grbit; } JET_COLUMNDEF; typedef struct { unsigned long cbStruct; JET_COLUMNID columnid; JET_COLTYP coltyp; unsigned short wCountry; unsigned short langid; unsigned short cp; unsigned short wFiller; /* Must be 0 */ unsigned long cbMax; JET_GRBIT grbit; char szBaseTableName[256]; char szBaseColumnName[256]; } JET_COLUMNBASE; typedef struct { unsigned long cbStruct; JET_TABLEID tableid; unsigned long cRecord; JET_COLUMNID columnidindexname; JET_COLUMNID columnidgrbitIndex; JET_COLUMNID columnidcKey; JET_COLUMNID columnidcEntry; JET_COLUMNID columnidcPage; JET_COLUMNID columnidcColumn; JET_COLUMNID columnidiColumn; JET_COLUMNID columnidcolumnid; JET_COLUMNID columnidcoltyp; JET_COLUMNID columnidCountry; JET_COLUMNID columnidLangid; JET_COLUMNID columnidCp; JET_COLUMNID columnidCollate; JET_COLUMNID columnidgrbitColumn; JET_COLUMNID columnidcolumnname; } JET_INDEXLIST; #define cIndexInfoCols 15 typedef struct tag_JET_COLUMNCREATE { unsigned long cbStruct; // size of this structure (for future expansion) char *szColumnName; // column name JET_COLTYP coltyp; // column type unsigned long cbMax; // the maximum length of this column (only relevant for binary and text columns) JET_GRBIT grbit; // column options void *pvDefault; // default value (NULL if none) unsigned long cbDefault; // length of default value unsigned long cp; // code page (for text columns only) JET_COLUMNID columnid; // returned column id JET_ERR err; // returned error code } JET_COLUMNCREATE; typedef struct tagJET_INDEXCREATEOLD // [4/15/97]: to be phased out eventually (laurionb) { unsigned long cbStruct; // size of this structure (for future expansion) char *szIndexName; // index name char *szKey; // index key unsigned long cbKey; // length of key JET_GRBIT grbit; // index options unsigned long ulDensity; // index density JET_ERR err; // returned error code } JET_INDEXCREATEOLD; typedef struct tagJET_CONDITIONALCOLUMN { unsigned long cbStruct; // size of this structure (for future expansion) char *szColumnName; // column that we are conditionally indexed on JET_GRBIT grbit; // conditional column options } JET_CONDITIONALCOLUMN; typedef struct tagJET_INDEXCREATE { unsigned long cbStruct; // size of this structure (for future expansion) char *szIndexName; // index name char *szKey; // index key unsigned long cbKey; // length of key JET_GRBIT grbit; // index options unsigned long ulDensity; // index density unsigned long lcid; // lcid for the index unsigned long cbVarSegMac; // maximum length of variable length columns in index key JET_CONDITIONALCOLUMN * rgconditionalcolumn; // pointer to conditional column structure unsigned long cConditionalColumn; // number of conditional columns JET_ERR err; // returned error code } JET_INDEXCREATE; typedef struct tagJET_TABLECREATE { unsigned long cbStruct; // size of this structure (for future expansion) char *szTableName; // name of table to create. char *szTemplateTableName; // name of table from which to inherit base DDL unsigned long ulPages; // initial pages to allocate for table. unsigned long ulDensity; // table density. JET_COLUMNCREATE *rgcolumncreate; // array of column creation info unsigned long cColumns; // number of columns to create JET_INDEXCREATE *rgindexcreate; // array of index creation info unsigned long cIndexes; // number of indexes to create JET_GRBIT grbit; JET_TABLEID tableid; // returned tableid. unsigned long cCreated; // count of objects created (columns+table+indexes). } JET_TABLECREATE; typedef struct { unsigned long cbStruct; unsigned long ibLongValue; unsigned long itagSequence; JET_COLUMNID columnidNextTagged; } JET_RETINFO; typedef struct { unsigned long cbStruct; unsigned long ibLongValue; unsigned long itagSequence; } JET_SETINFO; typedef struct { unsigned long cbStruct; unsigned long centriesLT; unsigned long centriesInRange; unsigned long centriesTotal; } JET_RECPOS; // The caller need to setup JET_OLP with a signal wait for the signal to be set. typedef struct { void *pvReserved1; // internally use void *pvReserved2; unsigned long cbActual; // the actual number of bytes read through this IO JET_HANDLE hSig; // a manual reset signal to wait for the IO to complete. JET_ERR err; // Err code for this assync IO. } JET_OLP; #include #define JET_MAX_COMPUTERNAME_LENGTH 15 typedef struct { char bSeconds; // 0 - 60 char bMinutes; // 0 - 60 char bHours; // 0 - 24 char bDay; // 1 - 31 char bMonth; // 0 - 11 char bYear; // current year - 1900 char bFiller1; char bFiller2; } JET_LOGTIME; typedef struct { unsigned short ib; // must be the last so that lgpos can unsigned short isec; // index of disksec starting logsec long lGeneration; // generation of logsec } JET_LGPOS; // be casted to TIME. typedef struct { unsigned long ulRandom; // a random number JET_LOGTIME logtimeCreate; // time db created, in logtime format char szComputerName[ JET_MAX_COMPUTERNAME_LENGTH + 1 ]; // where db is created } JET_SIGNATURE; typedef struct { JET_LGPOS lgposMark; // id for this backup JET_LOGTIME logtimeMark; unsigned long genLow; unsigned long genHigh; } JET_BKINFO; #include typedef struct { unsigned long ulVersion; // version of DAE the db created (see ulDAEVersion) unsigned long ulUpdate; // used to track incremental database format updates that // are backward-compatible (see ulDAEUpdate) JET_SIGNATURE signDb; // (28 bytes) signature of the db (incl. creation time). unsigned long dbstate; // consistent/inconsistent state JET_LGPOS lgposConsistent; // null if in inconsistent state JET_LOGTIME logtimeConsistent; // null if in inconsistent state JET_LOGTIME logtimeAttach; // Last attach time. JET_LGPOS lgposAttach; JET_LOGTIME logtimeDetach; // Last detach time. JET_LGPOS lgposDetach; JET_SIGNATURE signLog; // (28 bytes) log signature for this attachments JET_BKINFO bkinfoFullPrev; // Last successful full backup. JET_BKINFO bkinfoIncPrev; // Last successful Incremental backup. // Reset when bkinfoFullPrev is set JET_BKINFO bkinfoFullCur; // current backup. Succeed if a // corresponding pat file generated. unsigned long fShadowingDisabled; unsigned long fUpgradeDb; // NT version information. This is needed to decide if an index need // be recreated due to sort table changes. unsigned long dwMajorVersion; /* OS version info */ unsigned long dwMinorVersion; unsigned long dwBuildNumber; long lSPNumber; unsigned long cbPageSize; // database page size (0 = 4k pages) } JET_DBINFOMISC; //typedef struct // { // unsigned long cDiscont; // unsigned long cUnfixedMessyPage; // unsigned long centriesLT; // unsigned long centriesTotal; // unsigned long cpgCompactFreed; // } JET_OLCSTAT; /************************************************************************/ /************************* JET CONSTANTS ************************/ /************************************************************************/ #define JET_tableidNil ((JET_TABLEID) 0xFFFFFFFF) #define JET_sesidNil ((JET_SESID) 0xFFFFFFFF) /* Max size of a bookmark */ #define JET_cbBookmarkMost 256 /* Max length of a object/column/index/property name */ #define JET_cbNameMost 64 /* Max length of a "name.name.name..." construct */ #define JET_cbFullNameMost 255 /* Max size of long-value (LongBinary or LongText) column chunk */ // #define JET_cbColumnLVChunkMost ( JET_cbPage - 82 ) to the following: // Get cbPage from GetSystemParameter. // changed to cbPage - JET_cbColumnLVPageOverhead #define JET_cbColumnLVPageOverhead 82 #define JET_cbColumnLVChunkMost ( 4096 - 82 ) // This def will be removed after other components change not to use this def #define JET_cbColumnLVChunkMost_OLD 4035 /* Max size of long-value (LongBinary or LongText) column default value */ #define JET_cbLVDefaultValueMost 255 /* Max size of non-long-value column data */ #define JET_cbColumnMost 255 /* Max size of a sort/index key */ #define JET_cbKeyMost 255 #define JET_cbPrimaryKeyMost 255 #define JET_cbSecondaryKeyMost 255 #define JET_cbKeyMost_OLD 255 /* Max number of components in a sort/index key */ #define JET_ccolKeyMost 12 // system paramters // // location parameters // #define JET_paramSystemPath 0 /* path to check point file [".\\"] */ #define JET_paramTempPath 1 /* path to the temporary database [".\\"] */ #define JET_paramLogFilePath 2 /* path to the log file directory [".\\"] */ #define JET_paramLogFileFailoverPath 61 /* path to use if the log file disk should fail [none] */ #define JET_paramBaseName 3 /* base name for all DBMS object names ["edb"] */ #define JET_paramEventSource 4 /* language independant process descriptor string [""] */ // performance parameters // #define JET_paramMaxSessions 5 /* maximum number of sessions [128] */ #define JET_paramMaxOpenTables 6 /* maximum number of open directories [300] /* need 1 for each open table index, /* plus 1 for each open table with no indexes, /* plus 1 for each table with long column data, /* plus a few more. /**/ /* for 4.1, 1/3 for regular table, 2/3 for index */ #define JET_paramPreferredMaxOpenTables 7 /* preferred maximum number of open directories [300] */ #define JET_paramMaxCursors 8 /* maximum number of open cursors [1024] */ #define JET_paramMaxVerPages 9 /* maximum version store size in 16kByte units [64] */ #define JET_paramPreferredVerPages 63 /* preferred version store size in 16kByte units [0] */ #define JET_paramMaxTemporaryTables 10 /* maximum concurrent open temporary table/index creation [20] */ #define JET_paramLogFileSize 11 /* log file size in kBytes [5120] */ #define JET_paramLogBuffers 12 /* log buffers in 512 bytes [80] */ #define JET_paramWaitLogFlush 13 /* log flush wait time in milliseconds [0] */ #define JET_paramLogCheckpointPeriod 14 /* checkpoint period in 512 bytes [1024] */ #define JET_paramLogWaitingUserMax 15 /* maximum sessions waiting log flush [3] */ #define JET_paramCommitDefault 16 /* default grbit for JetCommitTransaction [0] */ #define JET_paramCircularLog 17 /* boolean flag for circular logging [0] */ #define JET_paramDbExtensionSize 18 /* database extension size in pages [256] */ #define JET_paramPageTempDBMin 19 /* minimum size temporary database in pages [0] */ #define JET_paramPageFragment 20 /* maximum disk extent considered fragment in pages [8] */ #define JET_paramPageReadAheadMax 21 /* maximum read-ahead in pages [20] */ // cache performance parameters // #define JET_paramBatchIOBufferMax 22 /* maximum batch I/O buffers in pages [64] */ #define JET_paramCacheSizeMin 60 /* minimum cache size in pages [64] */ #define JET_paramCacheSize 41 /* current cache size in pages [512] */ #define JET_paramCacheSizeMax 23 /* maximum cache size in pages [512] */ #define JET_paramCheckpointDepthMax 24 /* maximum checkpoint depth in bytes [20MB] */ #define JET_paramLRUKCorrInterval 25 /* time (usec) under which page accesses are correlated [10000] */ #define JET_paramLRUKHistoryMax 26 /* maximum LRUK history records [1024] (proportional to cache size max) */ #define JET_paramLRUKPolicy 27 /* K-ness of LRUK page eviction algorithm (1...2) [2] */ #define JET_paramLRUKTimeout 28 /* time (sec) after which cached pages are always evictable [100] */ #define JET_paramLRUKTrxCorrInterval 29 /* time (usec) under which page accesses by the same transaction are correlated [5000000] */ #define JET_paramOutstandingIOMax 30 /* maximum outstanding I/Os [64] */ #define JET_paramStartFlushThreshold 31 /* evictable pages at which to start a flush [100] (proportional to CacheSizeMax) */ #define JET_paramStopFlushThreshold 32 /* evictable pages at which to stop a flush [400] (proportional to CacheSizeMax) */ #define JET_paramTableClassName 33 /* table stats class name (class #, string) */ // // #define JET_paramExceptionAction 98 /* what to do with exceptions generated within JET */ #define JET_paramEventLogCache 99 /* number of bytes of eventlog records to cache if service is not available [0] */ // debug only parameters // #define JET_paramRecovery 34 /* enable recovery [-1] */ #define JET_paramOnLineCompact 35 /* enable online defrag [TRUE by default] */ #define JET_paramEnableOnlineDefrag 35 /* enable online defrag [TRUE by default] */ #define JET_paramAssertAction 36 /* action on assert */ #define JET_paramPrintFunction 37 /* synched print function [NULL] */ #define JET_paramTransactionLevel 38 /* transaction level of session */ #define JET_paramRFS2IOsPermitted 39 /* #IOs permitted to succeed [-1 = all] */ #define JET_paramRFS2AllocsPermitted 40 /* #allocs permitted to success [-1 = all] */ #define JET_paramCacheRequests 42 /* #cache requests (Read Only) */ #define JET_paramCacheHits 43 /* #cache hits (Read Only) */ // Application specific parameter // Used by NT only. #define JET_paramCheckFormatWhenOpenFail 44 /* JetInit may return JET_errDatabaseXXXformat instead of database corrupt when it is set */ #define JET_paramEnableIndexChecking 45 /* Enable checking OS version for indexes (FALSE by default) */ #define JET_paramEnableTempTableVersioning 46 /* Enable versioning of temp tables (TRUE by default) */ #define JET_paramIgnoreLogVersion 47 /* Do not check the log version */ #define JET_paramDeleteOldLogs 48 /* Delete the log files if the version is old, after deleting may make database non-recoverable */ #define JET_paramEventSourceKey 49 /* Event source registration key value */ #define JET_paramSysDbPath_OLD 0 /* path to the system database (defunct) ["."] */ #define JET_paramSystemPath_OLD 0 /* path to check point file ["."] */ #define JET_paramTempPath_OLD 1 /* path to the temporary database ["."] */ #define JET_paramMaxBuffers_OLD 8 /* maximum page cache size in pages [512] */ #define JET_paramMaxSessions_OLD 9 /* maximum number of sessions [128] */ #define JET_paramMaxOpenTables_OLD 10 /* maximum number of open tables [300] */ #define JET_paramPreferredMaxOpenTables_OLD 59 /* prefered maximum number of open tables [300] */ #define JET_paramMaxVerPages_OLD 11 /* maximum version store size in 16KB buckets [64] */ #define JET_paramMaxCursors_OLD 12 /* maximum number of open cursors [1024] */ #define JET_paramLogFilePath_OLD 13 /* path to the log file directory ["."] */ #define JET_paramMaxOpenTableIndexes_OLD 14 /* maximum open table indexes [300] */ #define JET_paramMaxTemporaryTables_OLD 15 /* maximum concurrent JetCreateIndex [20] */ #define JET_paramLogBuffers_OLD 16 /* maximum log buffers in 512 bytes [21] */ #define JET_paramLogFileSize_OLD 17 /* maximum log file size in kBytes [5120] */ #define JET_paramBfThrshldLowPrcnt_OLD 19 /* low percentage clean buffer flush start [20] */ #define JET_paramBfThrshldHighPrcnt_OLD 20 /* high percentage clean buffer flush stop [80] */ #define JET_paramWaitLogFlush_OLD 21 /* log flush wait time in milliseconds [15] */ #define JET_paramLogCheckpointPeriod_OLD 23 /* checkpoint period in 512 bytes [1024] */ #define JET_paramLogWaitingUserMax_OLD 24 /* maximum sessions waiting log flush [3] */ #define JET_paramRecovery_OLD 30 /* Switch for log on/off */ #define JET_paramSessionInfo_OLD 33 /* per session information [0] */ #define JET_paramPageFragment_OLD 34 /* maximum disk extent considered fragment in pages [8] */ #define JET_paramMaxOpenDatabases_OLD 36 /* maximum number of open databases [100] */ #define JET_paramBufBatchIOMax_OLD 41 /* maximum batch IO in pages [64] */ #define JET_paramPageReadAheadMax_OLD 42 /* maximum read-ahead IO in pages [20] */ #define JET_paramAsynchIOMax_OLD 43 /* maximum asynchronous IO in pages [64] */ #define JET_paramEventSource_OLD 45 /* language independant process descriptor string [""] */ #define JET_paramDbExtensionSize_OLD 48 /* database extension size in pages [16] */ #define JET_paramCommitDefault_OLD 50 /* default grbit for JetCommitTransaction [0] */ #define JET_paramBufLogGenAgeThreshold_OLD 51 /* age threshold in log files [2] */ #define JET_paramCircularLog_OLD 52 /* boolean flag for circular logging [0] */ #define JET_paramPageTempDBMin_OLD 53 /* minimum size temporary database in pages [0] */ #define JET_paramBaseName_OLD 56 /* base name for all DBMS object names ["edb"] */ #define JET_paramBaseExtension_OLD 57 /* base extension for all DBMS object names ["edb"] */ #define JET_paramTableClassName_OLD 58 /* table stats class name (class #, string) */ #define JET_paramEnableImprovedSeekShortcut 62 /* check to see if we are seeking for the record we are currently on [false] */ #define JET_paramDatabasePageSize 64 /* set database size for this ESE server */ #define JET_paramErrorToString 70 /* turns a JET_err into a string (taken from the comment in jet.h) */ /* Flags for JetTerm2 */ #define JET_bitTermComplete 0x00000001 #define JET_bitTermAbrupt 0x00000002 #define JET_bitTermStopBackup 0x00000004 /* Flags for JetIdle */ #define JET_bitIdleFlushBuffers 0x00000001 #define JET_bitIdleCompact 0x00000002 #define JET_bitIdleStatus 0x00000004 /* Flags for JetEndSession */ #define JET_bitForceSessionClosed 0x00000001 /* Flags for JetAttach/OpenDatabase */ #define JET_bitDbReadOnly 0x00000001 #define JET_bitDbExclusive 0x00000002 /* multiple opens allowed */ #define JET_bitDbSingleExclusive 0x00000008 /* opened exactly once */ #define JET_bitDbDeleteCorruptIndexes 0x00000010 /* delete indexes possibly corrupted by NT version upgrade */ #define JET_bitDbRebuildCorruptIndexes 0x00000020 /* recreate indexes possibly corrupted by NT version upgrade */ /* Flags for JetCreateDatabase */ #define JET_bitDbRecoveryOff 0x00000008 /* disable logging/recovery for this database */ #define JET_bitDbVersioningOff 0x00000040 /* INTERNAL USE ONLY */ #define JET_bitDbShadowingOff 0x00000080 /* disable catalog shadowing */ /* Flags for JetBackup */ #define JET_bitBackupIncremental 0x00000001 #define JET_bitKeepOldLogs 0x00000002 #define JET_bitBackupAtomic 0x00000004 /* Database types */ #define JET_dbidNil ((JET_DBID) 0xFFFFFFFF) #define JET_dbidNoValid ((JET_DBID) 0xFFFFFFFE) /* used as a flag to indicate that there is no valid dbid */ /* Flags for JetCreateTableColumnIndex */ #define JET_bitTableCreateFixedDDL 0x00000001 /* DDL is fixed */ #define JET_bitTableCreateTemplateTable 0x00000002 /* DDL is inheritable (implies FixedDDL) */ #define JET_bitTableCreateSystemTable 0x80000000 /* INTERNAL USE ONLY */ /* Flags for JetAddColumn, JetGetColumnInfo, JetOpenTempTable */ #define JET_bitColumnFixed 0x00000001 #define JET_bitColumnTagged 0x00000002 #define JET_bitColumnNotNULL 0x00000004 #define JET_bitColumnVersion 0x00000008 #define JET_bitColumnAutoincrement 0x00000010 #define JET_bitColumnUpdatable 0x00000020 /* JetGetColumnInfo only */ #define JET_bitColumnTTKey 0x00000040 /* JetOpenTempTable only */ #define JET_bitColumnTTDescending 0x00000080 /* JetOpenTempTable only */ #define JET_bitColumnMultiValued 0x00000400 #define JET_bitColumnEscrowUpdate 0x00000800 /* escrow updated */ #define JET_bitColumnUnversioned 0x00001000 /* for add column only - add column unversioned */ /* Flags for JetSetCurrentIndex */ #define JET_bitMoveFirst 0x00000000 #define JET_bitMoveBeforeFirst 0x00000001 // unsupported -- DO NOT USE #define JET_bitNoMove 0x00000002 /* Flags for JetMakeKey */ #define JET_bitNewKey 0x00000001 #define JET_bitStrLimit 0x00000002 #define JET_bitSubStrLimit 0x00000004 #define JET_bitNormalizedKey 0x00000008 #define JET_bitKeyDataZeroLength 0x00000010 /* Flags for ErrDispSetIndexRange */ #define JET_bitRangeInclusive 0x00000001 #define JET_bitRangeUpperLimit 0x00000002 #define JET_bitRangeInstantDuration 0x00000004 #define JET_bitRangeRemove 0x00000008 /* Flags for JetGetLock */ #define JET_bitReadLock 0x00000001 #define JET_bitWriteLock 0x00000002 /* Constants for JetMove */ #define JET_MoveFirst (0x80000000) #define JET_MovePrevious (-1) #define JET_MoveNext (+1) #define JET_MoveLast (0x7fffffff) /* Flags for JetMove */ #define JET_bitMoveKeyNE 0x00000001 /* Flags for JetSeek */ #define JET_bitSeekEQ 0x00000001 #define JET_bitSeekLT 0x00000002 #define JET_bitSeekLE 0x00000004 #define JET_bitSeekGE 0x00000008 #define JET_bitSeekGT 0x00000010 #define JET_bitSetIndexRange 0x00000020 /* Flags for JET_CONDITIONALCOLUMN */ #define JET_bitIndexColumnMustBeNull 0x00000001 #define JET_bitIndexColumnMustBeNonNull 0x00000002 /* Flags for JetCreateIndex */ #define JET_bitIndexUnique 0x00000001 #define JET_bitIndexPrimary 0x00000002 #define JET_bitIndexDisallowNull 0x00000004 #define JET_bitIndexIgnoreNull 0x00000008 #define JET_bitIndexClustered40 0x00000010 /* for backward compatibility */ #define JET_bitIndexIgnoreAnyNull 0x00000020 #define JET_bitIndexIgnoreFirstNull 0x00000040 #define JET_bitIndexLazyFlush 0x00000080 #define JET_bitIndexEmpty 0x00000100 // don't attempt to build index, because all entries would evaluate to NULL (MUST also specify JET_bitIgnoreAnyNull) #define JET_bitIndexUnversioned 0x00000200 #define JET_bitIndexSortNullsHigh 0x00000400 // NULL sorts after data for all columns in the index // UNDONE: Remove the following: // #define JET_bitIndexClustered JET_bitIndexPrimary primary index is the clustered index // #define JET_bitIndexEmptyTable 0x40000000 /* Flags for index key definition */ #define JET_bitKeyAscending 0x00000000 #define JET_bitKeyDescending 0x00000001 /* Flags for JetOpenTable */ #define JET_bitTableDenyWrite 0x00000001 #define JET_bitTableDenyRead 0x00000002 #define JET_bitTableReadOnly 0x00000004 #define JET_bitTableUpdatable 0x00000008 #define JET_bitTablePermitDDL 0x00000010 /* override table flagged as FixedDDL (must be used with DenyRead) */ #define JET_bitTableNoCache 0x00000020 /* don't cache the pages for this table */ #define JET_bitTablePreread 0x00000040 /* assume the table is probably not in the buffer cache */ #define JET_bitTableDelete 0x10000000 /* INTERNAL USE ONLY */ #define JET_bitTableClassMask 0x000F0000 /* table stats class mask */ #define JET_bitTableClassNone 0x00000000 /* table belongs to no stats class (default) */ #define JET_bitTableClass1 0x00010000 /* table belongs to stats class 1 */ #define JET_bitTableClass2 0x00020000 /* table belongs to stats class 2 */ #define JET_bitTableClass3 0x00030000 /* table belongs to stats class 3 */ #define JET_bitTableClass4 0x00040000 /* table belongs to stats class 4 */ #define JET_bitTableClass5 0x00050000 /* table belongs to stats class 5 */ #define JET_bitTableClass6 0x00060000 /* table belongs to stats class 6 */ #define JET_bitTableClass7 0x00070000 /* table belongs to stats class 7 */ #define JET_bitTableClass8 0x00080000 /* table belongs to stats class 8 */ #define JET_bitTableClass9 0x00090000 /* table belongs to stats class 9 */ #define JET_bitTableClass10 0x000A0000 /* table belongs to stats class 10 */ #define JET_bitTableClass11 0x000B0000 /* table belongs to stats class 11 */ #define JET_bitTableClass12 0x000C0000 /* table belongs to stats class 12 */ #define JET_bitTableClass13 0x000D0000 /* table belongs to stats class 13 */ #define JET_bitTableClass14 0x000E0000 /* table belongs to stats class 14 */ #define JET_bitTableClass15 0x000F0000 /* table belongs to stats class 15 */ /* Flags for JetOpenTempTable and ErrIsamOpenTempTable */ #define JET_bitTTIndexed 0x00000001 /* Allow seek */ #define JET_bitTTUnique 0x00000002 /* Remove duplicates */ #define JET_bitTTUpdatable 0x00000004 /* Allow updates */ #define JET_bitTTScrollable 0x00000008 /* Allow backwards scrolling */ #define JET_bitTTSortNullsHigh 0x00000010 /* NULL sorts after data for all columns in the index */ #define JET_bitTTForceMaterialization 0x00000020 /* Forces temp. table to be materialized into a btree (allows for duplicate detection) */ #define JET_bitTTErrorOnDuplicateInsertion JET_bitTTForceMaterialization /* Error always returned when duplicate is inserted (instead of dupe being silently removed) */ /* Flags for JetSetColumn */ #define JET_bitSetAppendLV 0x00000001 #define JET_bitSetOverwriteLV 0x00000004 /* overwrite JET_coltypLong* byte range */ #define JET_bitSetSizeLV 0x00000008 /* set JET_coltypLong* size */ #define JET_bitSetZeroLength 0x00000020 #define JET_bitSetSeparateLV 0x00000040 /* force LV separation */ #define JET_bitSetUniqueMultiValues 0x00000080 /* prevent duplicate multi-values */ /* Set column parameter structure for JetSetColumns */ typedef struct { JET_COLUMNID columnid; const void *pvData; unsigned long cbData; JET_GRBIT grbit; unsigned long ibLongValue; unsigned long itagSequence; JET_ERR err; } JET_SETCOLUMN; /* Options for JetPrepareUpdate */ #define JET_prepInsert 0 #define JET_prepReplace 2 #define JET_prepCancel 3 #define JET_prepReplaceNoLock 4 #define JET_prepInsertCopy 5 /* Flags for JetEscrowUpdate */ #define JET_bitEscrowNoRollback 0x0001 /* Flags for JetRetrieveColumn */ #define JET_bitRetrieveCopy 0x00000001 #define JET_bitRetrieveFromIndex 0x00000002 #define JET_bitRetrieveTag 0x00000008 #define JET_bitRetrieveNull 0x00000010 /* for columnid 0 only */ #define JET_bitRetrieveIgnoreDefault 0x00000020 /* for columnid 0 only */ #define JET_bitRetrieveLongId 0x00000040 #define JET_bitRetrieveLongValueRefCount 0x00000080 /* for testing use only */ /* Retrieve column parameter structure for JetRetrieveColumns */ typedef struct { JET_COLUMNID columnid; void *pvData; unsigned long cbData; unsigned long cbActual; JET_GRBIT grbit; unsigned long ibLongValue; unsigned long itagSequence; JET_COLUMNID columnidNextTagged; JET_ERR err; } JET_RETRIEVECOLUMN; struct JET_RETRIEVEMULTIVALUECOUNT { JET_COLUMNID columnid; unsigned short cMultiValues; union { unsigned short usFlags; struct { unsigned short fLongValue:1; // is column LongText/Binary? unsigned short fDefaultValue:1; // was a default value retrieved? unsigned short fNullOverride:1; // was there an explicit null to override a default value? }; }; }; /* Flags for JetCommitTransaction */ #define JET_bitCommitLazyFlush 0x00000001 /* lazy flush log buffers. */ #define JET_bitWaitLastLevel0Commit 0x00000002 /* wait for last level 0 commit record flushed */ #define JET_bitCommitFlush_OLD 0x00000001 /* commit and flush page buffers. */ #define JET_bitCommitLazyFlush_OLD 0x00000004 /* lazy flush log buffers. */ #define JET_bitWaitLastLevel0Commit_OLD 0x00000010 /* wait for last level 0 commit record flushed */ /* Flags for JetRollback */ #define JET_bitRollbackAll 0x00000001 /* Info parameter for JetGetDatabaseInfo */ #define JET_DbInfoFilename 0 #define JET_DbInfoConnect 1 #define JET_DbInfoCountry 2 #define JET_DbInfoLangid 3 #define JET_DbInfoCp 4 #define JET_DbInfoCollate 5 #define JET_DbInfoOptions 6 #define JET_DbInfoTransactions 7 #define JET_DbInfoVersion 8 #define JET_DbInfoIsam 9 #define JET_DbInfoFilesize 10 #define JET_DbInfoSpaceOwned 11 #define JET_DbInfoSpaceAvailable 12 #define JET_DbInfoUpgrade 13 #define JET_DbInfoMisc 14 /* Dbstates from JetGetDatabaseFileInfo */ #define JET_dbstateJustCreated 1 #define JET_dbstateInconsistent 2 #define JET_dbstateConsistent 3 #define JET_dbstateBeingConverted 4 /* Column data types */ #define JET_coltypNil 0 #define JET_coltypBit 1 /* True or False, Never NULL */ #define JET_coltypUnsignedByte 2 /* 1-byte integer, unsigned */ #define JET_coltypShort 3 /* 2-byte integer, signed */ #define JET_coltypLong 4 /* 4-byte integer, signed */ #define JET_coltypCurrency 5 /* 8 byte integer, signed */ #define JET_coltypIEEESingle 6 /* 4-byte IEEE single precision */ #define JET_coltypIEEEDouble 7 /* 8-byte IEEE double precision */ #define JET_coltypDateTime 8 /* Integral date, fractional time */ #define JET_coltypBinary 9 /* Binary data, < 255 bytes */ #define JET_coltypText 10 /* ANSI text, case insensitive, < 255 bytes */ #define JET_coltypLongBinary 11 /* Binary data, long value */ #define JET_coltypLongText 12 /* ANSI text, long value */ #define JET_coltypMax 13 /* the number of column types */ /* used for validity tests and */ /* array declarations. */ /* Info levels for JetGetObjectInfo */ #define JET_ObjInfo 0U #define JET_ObjInfoListNoStats 1U #define JET_ObjInfoList 2U #define JET_ObjInfoSysTabCursor 3U #define JET_ObjInfoListACM 4U /* Blocked by JetGetObjectInfo */ #define JET_ObjInfoNoStats 5U #define JET_ObjInfoSysTabReadOnly 6U #define JET_ObjInfoRulesLoaded 7U #define JET_ObjInfoMax 8U /* Info levels for JetGetTableInfo */ #define JET_TblInfo 0U #define JET_TblInfoName 1U #define JET_TblInfoDbid 2U #define JET_TblInfoMostMany 3U #define JET_TblInfoRvt 4U #define JET_TblInfoOLC 5U #define JET_TblInfoResetOLC 6U #define JET_TblInfoSpaceUsage 7U #define JET_TblInfoDumpTable 8U #define JET_TblInfoSpaceAlloc 9U #define JET_TblInfoSpaceOwned 10U // OwnExt #define JET_TblInfoSpaceAvailable 11U // AvailExt #define JET_TblInfoTemplateTableName 12U /* Info levels for JetGetIndexInfo and JetGetTableIndexInfo */ #define JET_IdxInfo 0U #define JET_IdxInfoList 1U #define JET_IdxInfoSysTabCursor 2U #define JET_IdxInfoOLC 3U #define JET_IdxInfoResetOLC 4U #define JET_IdxInfoSpaceAlloc 5U #define JET_IdxInfoLangid 6U #define JET_IdxInfoCount 7U #define JET_IdxInfoVarSegMac 8U /* Info levels for JetGetColumnInfo and JetGetTableColumnInfo */ #define JET_ColInfo 0U #define JET_ColInfoList 1U #define JET_ColInfoSysTabCursor 3U #define JET_ColInfoBase 4U #define JET_ColInfoListCompact 5U /* Engine Object Types */ #define JET_objtypNil 0 #define JET_objtypTable 1 #define JET_objtypDb 2 #define JET_objtypContainer 3 #define JET_objtypLongRoot 9 /* INTERNAL USE ONLY */ /* Compact Options */ #define JET_bitCompactStats 0x00000020 /* Dump off-line compaction stats (only when progress meter also specified) */ #define JET_bitCompactRepair 0x00000040 /* Don't preread and ignore duplicate keys */ /* Status Notification Processes */ #define JET_snpRepair 2 #define JET_snpCompact 4 #define JET_snpRestore 8 #define JET_snpBackup 9 #define JET_snpUpgrade 10 /* Status Notification Types */ #define JET_sntBegin 5 /* callback for beginning of operation */ #define JET_sntRequirements 7 /* callback for returning operation requirements */ #define JET_sntProgress 0 /* callback for progress */ #define JET_sntComplete 6 /* callback for completion of operation */ #define JET_sntFail 3 /* callback for failure during progress */ /* Exception action */ #define JET_ExceptionMsgBox 0x0001 /* Display message box on exception */ #define JET_ExceptionNone 0x0002 /* Do nothing on exceptions */ /* AssertAction */ #define JET_AssertExit 0x0000 /* Exit the application */ #define JET_AssertBreak 0x0001 /* Break to debugger */ #define JET_AssertMsgBox 0x0002 /* Display message box */ #define JET_AssertStop 0x0004 /* Alert and stop */ /* Counter flags */ // For XJET only, not for JET97 #define ctAccessPage 1 #define ctLatchConflict 2 #define ctSplitRetry 3 #define ctNeighborPageScanned 4 #define ctSplits 5 /**********************************************************************/ /*********************** ERROR CODES **************************/ /**********************************************************************/ /* SUCCESS */ #define JET_errSuccess 0 /* Successful Operation */ /* ERRORS */ #define JET_wrnNyi -1 /* Function Not Yet Implemented */ /* SYSTEM errors /**/ #define JET_errRfsFailure -100 /* JET_errRfsFailure */ #define JET_errRfsNotArmed -101 /* JET_errRfsFailure */ #define JET_errFileClose -102 /* Could not close DOS file */ #define JET_errOutOfThreads -103 /* Could not start thread */ #define JET_errTooManyIO -105 /* System busy due to too many IOs */ // BUFFER MANAGER errors // #define wrnBFCacheMiss 200 /* page latch caused a cache miss */ #define errBFPageNotCached -201 /* page is not cached */ #define errBFLatchConflict -202 /* page latch conflict */ #define errBFIPageEvicted -250 /* page evicted from the cache */ #define errBFIPageCached -251 /* page already cached */ #define errBFIOutOfOLPs -252 /* out of OLPs */ #define errBFIOutOfBatchIOBuffers -253 /* out of Batch I/O Buffers */ #define errBFINoBufferAvailable -254 /* no buffer available for immediate use */ #define JET_errDatabaseBufferDependenciesCorrupted -255 // buffer dependencies were improperly set // VERSION STORE errors // #define wrnVERRCEMoved 275 /* RCE was moved instead of being cleaned */ /* DIRECTORY MANAGER errors /**/ #define errPMOutOfPageSpace -300 /* Out of page space */ #define errPMItagTooBig -301 /* Itag too big */ // XXX -- to be deleted #define errPMRecDeleted -302 /* Record deleted */ // XXX -- to be deleted #define errPMTagsUsedUp -303 /* Tags used up */ // XXX -- to be deleted #define wrnBMConflict 304 /* conflict in BM Clean up */ #define errDIRNoShortCircuit -305 /* No Short Circuit Avail */ #define errDIRCannotSplit -306 /* Cannot horizontally split FDP */ #define errDIRTop -307 /* Cannot go up */ #define errDIRFDP 308 /* On an FDP Node */ #define errDIRNotSynchronous -309 /* May have left critical section */ #define wrnDIREmptyPage 310 /* Moved through empty page */ #define errSPConflict -311 /* Device extent being extended */ #define wrnNDFoundLess 312 /* Found Less */ #define wrnNDFoundGreater 313 /* Found Greater */ #define wrnNDNotFoundInPage 314 /* for smart refresh */ #define errNDNotFound -312 /* Not found */ #define errNDOutSonRange -314 /* Son out of range */ #define errNDOutItemRange -315 /* Item out of range */ #define errNDGreaterThanAllItems -316 /* Greater than all items */ #define errNDLastItemNode -317 /* Last node of item list */ #define errNDFirstItemNode -318 /* First node of item list */ #define wrnNDDuplicateItem 319 /* Duplicated Item */ #define errNDNoItem -320 /* Item not there */ #define JET_wrnRemainingVersions 321 /* Some versions couldn't be cleaned */ #define JET_errPreviousVersion -322 /* Version already existed */ #define JET_errPageBoundary -323 /* Reached Page Boundary */ #define JET_errKeyBoundary -324 /* Reached Key Boundary */ #define errDIRInPageFather -325 /* sridFather in page to free */ #define errBMMaxKeyInPage -326 /* used by OLC to avoid cleanup of parent pages */ #define JET_errBadPageLink -327 /* next/previous page link page does not point back to source */ #define JET_errBadBookmark -328 /* bookmark has no corresponding address in database */ #define wrnBMCleanNullOp 329 // BMClean returns this on encountering a page // deleted MaxKeyInPage [but there was no conflict] #define errBTOperNone -330 // Split with no accompanying // insert/replace #define errSPOutOfAvailExtCacheSpace -331 // unable to make update to AvailExt tree since // in-cursor space cache is depleted #define errSPOutOfOwnExtCacheSpace -332 // unable to make update to OwnExt tree since // in-cursor space cache is depleted #define wrnBTMultipageOLC 333 // needs multipage OLC operation #define JET_errNTSystemCallFailed -334 // can not get OS version #define wrnBTShallowTree 335 // BTree is only one or two levels deeps #define errBTMergeNotSynchronous -336 // Multiple threads attempting to perform merge/split on same page (likely OLD vs. RCEClean) /* RECORD MANAGER errors /**/ #define wrnFLDKeyTooBig 400 /* Key too big (truncated it) */ #define errFLDTooManySegments -401 /* Too many key segments */ #define wrnFLDNullKey 402 /* Key is entirely NULL */ #define wrnFLDOutOfKeys 403 /* No more keys to extract */ #define wrnFLDNullSeg 404 /* Null segment in key */ #define wrnFLDNotPresentInIndex 405 #define JET_wrnSeparateLongValue 406 /* Separated long value */ #define wrnRECLongField 407 /* Separated long value */ #define JET_wrnRecordFoundGreater JET_wrnSeekNotEqual #define JET_wrnRecordFoundLess JET_wrnSeekNotEqual #define JET_errColumnIllegalNull JET_errNullInvalid #define wrnFLDNullFirstSeg 408 /* Null first segment in key */ #define JET_errKeyTooBig -408 /* Key with column truncation still truncated */ /* LOGGING/RECOVERY errors /**/ #define JET_errInvalidLoggedOperation -500 /* Logged operation cannot be redone */ #define JET_errLogFileCorrupt -501 /* Log file is corrupt */ #define errLGNoMoreRecords -502 /* Last log record read */ #define JET_errNoBackupDirectory -503 /* No backup directory given */ #define JET_errBackupDirectoryNotEmpty -504 /* The backup directory is not emtpy */ #define JET_errBackupInProgress -505 /* Backup is active already */ #define JET_errRestoreInProgress -506 /* Restore in progress */ #define JET_errMissingPreviousLogFile -509 /* Missing the log file for check point */ #define JET_errLogWriteFail -510 /* Fail when writing to log file */ #define JET_errBadLogVersion -514 /* Version of log file is not compatible with Jet version */ #define JET_errInvalidLogSequence -515 /* Timestamp in next log does not match expected */ #define JET_errLoggingDisabled -516 /* Log is not active */ #define JET_errLogBufferTooSmall -517 /* Log buffer is too small for recovery */ #define errLGNotSynchronous -518 /* retry to LGLogRec */ #define JET_errLogSequenceEnd -519 /* Exceed maximum log file number */ #define JET_errNoBackup -520 /* No backup in progress */ #define JET_errInvalidBackupSequence -521 /* Backup call out of sequence */ #define JET_errBackupNotAllowedYet -523 /* Can not do backup now */ #define JET_errDeleteBackupFileFail -524 /* Could not delete backup file */ #define JET_errMakeBackupDirectoryFail -525 /* Could not make backup temp directory */ #define JET_errInvalidBackup -526 /* Cannot incremental backup when circular logging enabled */ #define JET_errRecoveredWithErrors -527 /* For repair, restored with errors */ #define JET_errMissingLogFile -528 /* current log file missing */ #define JET_errLogDiskFull -529 /* log disk full */ #define JET_errBadLogSignature -530 /* bad signature for a log file */ #define JET_errBadDbSignature -531 /* bad signature for a db file */ #define JET_errBadCheckpointSignature -532 /* bad signature for a checkpoint file */ #define JET_errCheckpointCorrupt -533 /* checkpoint file not found or corrupt */ #define JET_errMissingPatchPage -534 /* patch file page not found during recovery */ #define JET_errBadPatchPage -535 /* patch file page is not valid */ #define JET_errRedoAbruptEnded -536 /* Redo abruptly ended due to sudden failure in reading logs from log file */ #define JET_errDatabaseInconsistent -550 /* database is in inconsistent state */ #define JET_errConsistentTimeMismatch -551 /* database last consistent time unmatched */ #define JET_errDatabasePatchFileMismatch -552 /* patch file is not generated from this backup */ #define JET_errEndingRestoreLogTooLow -553 /* the starting log number too low for the restore */ #define JET_errStartingRestoreLogTooHigh -554 /* the starting log number too high for the restore */ #define JET_errGivenLogFileHasBadSignature -555 /* Restore log file has bad signature */ #define JET_errGivenLogFileIsNotContiguous -556 /* Restore log file is not contiguous */ #define JET_errMissingRestoreLogFiles -557 /* Some restore log files are missing */ #define JET_wrnExistingLogFileHasBadSignature 558 /* Existing log file has bad signature */ #define JET_wrnExistingLogFileIsNotContiguous 559 /* Existing log file is not contiguous */ #define JET_errMissingFullBackup -560 /* The database miss a previous full backup befor incremental backup */ #define JET_errBadBackupDatabaseSize -561 /* The backup database size is not in 4k */ #define JET_errDatabaseAlreadyUpgraded -562 /* Attempted to upgrade a database that is already current */ #define JET_errDatabaseIncompleteUpgrade -563 /* Attempted to use a database which was only partially converted to the current format -- must restore from backup */ #define JET_wrnSkipThisRecord 564 /* Skip this record, used by convert, internal only */ #define JET_errInvalidGrbit -900 /* Grbit is not valid in the context of this API call */ #define JET_errTermInProgress -1000 /* Termination in progress */ #define JET_errFeatureNotAvailable -1001 /* API not supported */ #define JET_errInvalidName -1002 /* Invalid name */ #define JET_errInvalidParameter -1003 /* Invalid API parameter */ #define JET_wrnColumnNull 1004 /* Column is NULL-valued */ #define JET_wrnBufferTruncated 1006 /* Buffer too small for data */ #define JET_wrnDatabaseAttached 1007 /* Database is already attached */ #define JET_errDatabaseFileReadOnly -1008 /* Attach a readonly database file for read/write operations */ #define JET_wrnSortOverflow 1009 /* Sort does not fit in memory */ #define JET_errInvalidDatabaseId -1010 /* Invalid database id */ #define JET_errOutOfMemory -1011 /* Out of Memory */ #define JET_errOutOfDatabaseSpace -1012 /* Maximum database size reached */ #define JET_errOutOfCursors -1013 /* Out of table cursors */ #define JET_errOutOfBuffers -1014 /* Out of database page buffers */ #define JET_errTooManyIndexes -1015 /* Too many indexes */ #define JET_errTooManyKeys -1016 /* Too many columns in an index */ #define JET_errRecordDeleted -1017 /* Record has been deleted */ #define JET_errReadVerifyFailure -1018 /* Read verification error */ #define JET_errPageNotInitialized -1019 /* Repair Only: Read an unused page */ #define JET_errOutOfFileHandles -1020 /* Out of file handles */ #define JET_errDiskIO -1022 /* Disk IO error */ #define JET_errInvalidPath -1023 /* Invalid file path */ #define JET_errInvalidSystemPath -1024 /* Invalid system path */ #define JET_errInvalidLogDirectory -1025 /* Invalid log directory */ #define JET_errRecordTooBig -1026 /* Record larger than maximum size */ #define JET_errTooManyOpenDatabases -1027 /* Too many open databases */ #define JET_errInvalidDatabase -1028 /* Not a database file */ #define JET_errNotInitialized -1029 /* JetInit not yet called */ #define JET_errAlreadyInitialized -1030 /* JetInit already called */ #define JET_errInitInProgress -1031 /* JetInit is underway */ #define JET_errFileAccessDenied -1032 /* Cannot access file, the file is locked or in use */ #define JET_errQueryNotSupported -1034 /* Query support unavailable */ // XXX -- to be deleted #define JET_errSQLLinkNotSupported -1035 /* SQL Link support unavailable */ // XXX -- to be deleted #define JET_errBufferTooSmall -1038 /* Buffer is too small */ #define JET_wrnSeekNotEqual 1039 /* SeekLE or SeekGE didn't find exact match */ #define JET_errTooManyColumns -1040 /* Too many columns defined */ #define JET_errContainerNotEmpty -1043 /* Container is not empty */ #define JET_errInvalidFilename -1044 /* Filename is invalid */ #define JET_errInvalidBookmark -1045 /* Invalid bookmark */ #define JET_errColumnInUse -1046 /* Column used in an index */ #define JET_errInvalidBufferSize -1047 /* Data buffer doesn't match column size */ #define JET_errColumnNotUpdatable -1048 /* Cannot set column value */ #define JET_errIndexInUse -1051 /* Index is in use */ #define JET_errLinkNotSupported -1052 /* Link support unavailable */ #define JET_errNullKeyDisallowed -1053 /* Null keys are disallowed on index */ #define JET_errNotInTransaction -1054 /* Operation must be within a transaction */ #define JET_wrnNoErrorInfo 1055 /* No extended error information */ #define JET_wrnNoIdleActivity 1058 /* No idle activity occured */ #define JET_errTooManyActiveUsers -1059 /* Too many active database users */ #define JET_errInvalidCountry -1061 /* Invalid or unknown country code */ #define JET_errInvalidLanguageId -1062 /* Invalid or unknown language id */ #define JET_errInvalidCodePage -1063 /* Invalid or unknown code page */ #define JET_wrnNoWriteLock 1067 /* No write lock at transaction level 0 */ #define JET_wrnColumnSetNull 1068 /* Column set to NULL-value */ #define JET_errVersionStoreOutOfMemory -1069 /* lMaxVerPages exceeded (XJET only) */ #define JET_errCurrencyStackOutOfMemory -1070 /* lCSRPerfFUCB * lMaxCursors exceeded (XJET only) */ #define JET_errCannotIndex -1071 /* Cannot index escrow column */ #define JET_errRecordNotDeleted -1072 /* Record has not been deleted */ #define JET_errOutOfSessions -1101 /* Out of sessions */ #define JET_errWriteConflict -1102 /* Write lock failed due to outstanding write lock */ #define JET_errTransTooDeep -1103 /* Xactions nested too deeply */ #define JET_errInvalidSesid -1104 /* Invalid session handle */ #define JET_errWriteConflictPrimaryIndex -1105 /* update attempted on uncommitted primary index */ #define JET_errInTransaction -1108 /* Operation not allowed within a transaction */ #define JET_errRollbackRequired -1109 /* Must rollback current transaction -- cannot commit or begin a new one */ #define JET_errDatabaseDuplicate -1201 /* Database already exists */ #define JET_errDatabaseInUse -1202 /* Database in use */ #define JET_errDatabaseNotFound -1203 /* No such database */ #define JET_errDatabaseInvalidName -1204 /* Invalid database name */ #define JET_errDatabaseInvalidPages -1205 /* Invalid number of pages */ #define JET_errDatabaseCorrupted -1206 /* non-db file or corrupted db */ #define JET_errDatabaseLocked -1207 /* Database exclusively locked */ #define JET_errCannotDisableVersioning -1208 /* Cannot disable versioning for this database */ #define JET_errInvalidDatabaseVersion -1209 /* Database engine is incompatible with database */ /* The following error code are for NT clients only. It will return such error during * JetInit if JET_paramCheckFormatWhenOpenFail is set. */ #define JET_errDatabase200Format -1210 /* The database is in 200 format */ #define JET_errDatabase400Format -1211 /* The database is in 400 format */ #define JET_errDatabase500Format -1212 /* The database is in 500 format */ #define JET_errPageSizeMismatch -1213 /* The database page size is not matching with the engine */ #define JET_wrnTableEmpty 1301 /* Open an empty table */ #define JET_errTableLocked -1302 /* Table is exclusively locked */ #define JET_errTableDuplicate -1303 /* Table already exists */ #define JET_errTableInUse -1304 /* Table is in use, cannot lock */ #define JET_errObjectNotFound -1305 /* No such table or object */ #define JET_errDensityInvalid -1307 /* Bad file/index density */ #define JET_errTableNotEmpty -1308 /* Cannot define clustered index */ #define JET_errInvalidTableId -1310 /* Invalid table id */ #define JET_errTooManyOpenTables -1311 /* Cannot open any more tables (cleanup already attempted) */ #define JET_errIllegalOperation -1312 /* Oper. not supported on table */ #define JET_errObjectDuplicate -1314 /* Table or object name in use */ #define JET_errInvalidObject -1316 /* object is invalid for operation */ #define JET_errCannotDeleteTempTable -1317 /* use CloseTable instead of DeleteTable to delete temp table */ #define JET_errCannotDeleteSystemTable -1318 /* illegal attempt to delete a system table */ #define JET_errCannotDeleteTemplateTable -1319 /* illegal attempt to delete a template table */ #define errFCBTooManyOpen -1320 /* Cannot open any more FCB's (cleanup not yet attempted) */ #define errFCBAboveThreshold -1321 /* Can only allocate FCB above preferred threshold (cleanup not yet attempted) */ #define JET_errExclusiveTableLockRequired -1322 /* Must have exclusive lock on table. */ #define JET_errFixedDDL -1323 /* DDL operations prohibited on this table */ #define JET_errFixedInheritedDDL -1324 /* On a derived table, DDL operations are prohibited on inherited portion of DDL */ #define JET_errCannotNestDDL -1325 /* Nesting of hierarchical DDL is not currently supported. */ #define JET_errDDLNotInheritable -1326 /* Tried to inherit DDL from a table not marked as a template table. */ #define JET_wrnTableInUseBySystem 1327 /* System cleanup has a cursor open on the table */ #define JET_errInvalidSettings -1328 /* System parameter were set improperly */ #define JET_errClientRequestToStopJetService -1329 /* Client has requested stop service */ #define JET_errIndexCantBuild -1401 /* Index build failed */ #define JET_errIndexHasPrimary -1402 /* Primary index already defined */ #define JET_errIndexDuplicate -1403 /* Index is already defined */ #define JET_errIndexNotFound -1404 /* No such index */ #define JET_errIndexMustStay -1405 /* Cannot delete clustered index */ #define JET_errIndexInvalidDef -1406 /* Illegal index definition */ #define JET_errInvalidCreateIndex -1409 /* Invalid create index description */ #define JET_errTooManyOpenIndexes -1410 /* Out of index description blocks */ #define JET_errMultiValuedIndexViolation -1411 /* Non-unique inter-record index keys generated for a multivalued index */ #define JET_errIndexBuildCorrupted -1412 /* Failed to build a secondary index that properly reflects primary index */ #define JET_errPrimaryIndexCorrupted -1413 /* Primary index is corrupt -- defrag required */ #define JET_errSecondaryIndexCorrupted -1414 /* Secondary index is corrupt -- defrag required */ #define JET_wrnCorruptIndexDeleted 1415 /* Out of date index of the attached db is removed */ #define JET_errColumnLong -1501 /* Column value is long */ #define JET_errColumnNoChunk -1502 /* no such chunk in long value */ #define JET_errColumnDoesNotFit -1503 /* Field will not fit in record */ #define JET_errNullInvalid -1504 /* Null not valid */ #define JET_errColumnIndexed -1505 /* Column indexed, cannot delete */ #define JET_errColumnTooBig -1506 /* Field length is > maximum */ #define JET_errColumnNotFound -1507 /* No such column */ #define JET_errColumnDuplicate -1508 /* Field is already defined */ #define JET_errColumnRedundant -1510 /* Second autoincrement or version column */ #define JET_errInvalidColumnType -1511 /* Invalid column data type */ #define JET_wrnColumnMaxTruncated 1512 /* Max length too big, truncated */ #define JET_errTaggedNotNULL -1514 /* No non-NULL tagged columns */ #define JET_errNoCurrentIndex -1515 /* Invalid w/o a current index */ #define JET_errKeyIsMade -1516 /* The key is completely made */ #define JET_errBadColumnId -1517 /* Column Id Incorrect */ #define JET_errBadItagSequence -1518 /* Bad itagSequence for tagged column */ #define JET_errColumnInRelationship -1519 /* Cannot delete, column participates in relationship */ #define JET_wrnCopyLongValue 1520 /* Single instance column bursted */ #define JET_errCannotBeTagged -1521 /* AutoIncrement and Version cannot be tagged */ #define wrnLVNoLongValues 1522 /* Table does not have a long value tree */ #define JET_wrnTaggedColumnsRemaining 1523 /* RetrieveTaggedColumnList ran out of copy buffer before retrieving all tagged columns */ #define JET_errDefaultValueTooBig -1524 /* Default value exceeds maximum size */ #define JET_errMultiValuedDuplicate -1525 /* Duplicate detected on a unique multi-valued column */ #define JET_errLVCorrupted -1526 /* Corruption encountered in long-value tree */ #define wrnLVNoMoreData 1527 /* Reached end of LV data */ #define JET_errRecordNotFound -1601 /* The key was not found */ #define JET_errRecordNoCopy -1602 /* No working buffer */ #define JET_errNoCurrentRecord -1603 /* Currency not on a record */ #define JET_errRecordPrimaryChanged -1604 /* Primary key may not change */ #define JET_errKeyDuplicate -1605 /* Illegal duplicate key */ #define JET_errAlreadyPrepared -1607 /* Already copy/clear current */ #define JET_errKeyNotMade -1608 /* No call to JetMakeKey */ #define JET_errUpdateNotPrepared -1609 /* No call to JetPrepareUpdate */ #define JET_wrnDataHasChanged 1610 /* Data has changed */ #define JET_errDataHasChanged -1611 /* Data has changed, operation aborted */ #define JET_wrnKeyChanged 1618 /* Moved to new key */ #define JET_errLanguageNotSupported -1619 /* WindowsNT installation does not support language */ #define JET_errTooManySorts -1701 /* Too many sort processes */ #define JET_errInvalidOnSort -1702 /* Invalid operation on Sort */ #define JET_errTempFileOpenError -1803 /* Temp file could not be opened */ #define JET_errTooManyAttachedDatabases -1805 /* Too many open databases */ #define JET_errDiskFull -1808 /* No space left on disk */ #define JET_errPermissionDenied -1809 /* Permission denied */ #define JET_errFileNotFound -1811 /* File not found */ #define JET_wrnFileOpenReadOnly 1813 /* Database file is read only */ #define JET_errAfterInitialization -1850 /* Cannot Restore after init. */ #define JET_errLogCorrupted -1852 /* Logs could not be interpreted */ #define JET_errInvalidOperation -1906 /* invalid operation */ #define JET_errAccessDenied -1907 /* access denied */ #define JET_wrnIdleFull 1908 /* ilde registry full */ #define JET_errTooManySplits -1909 /* Infinite split. Call PSS */ #define JET_errSessionSharingViolation -1910 /* Multiple threads are using the same session */ #define JET_errEntryPointNotFound -1911 /* An entry point in a DLL we require could not be found */ #define JET_wrnDefragAlreadyRunning 2000 /* Online defrag already running on specified database */ #define JET_wrnDefragNotRunning 2001 /* Online defrag not running on specified database */ /**********************************************************************/ /*********************** PROTOTYPES **************************/ /**********************************************************************/ #if !defined(_JET_NOPROTOTYPES) #ifdef __cplusplus extern "C" { #endif JET_ERR JET_API JetInit( JET_INSTANCE *pinstance ); JET_ERR JET_API JetTerm( JET_INSTANCE instance ); JET_ERR JET_API JetTerm2( JET_INSTANCE instance, JET_GRBIT grbit ); JET_ERR JET_API JetStopService(); JET_ERR JET_API JetStopBackup(); JET_ERR JET_API JetSetSystemParameter( JET_INSTANCE *pinstance, JET_SESID sesid, unsigned long paramid, ULONG_PTR lParam, const char *sz ); JET_ERR JET_API JetGetSystemParameter( JET_INSTANCE instance, JET_SESID sesid, unsigned long paramid, ULONG_PTR *plParam, char *sz, unsigned long cbMax ); JET_ERR JET_API JetResetCounter( JET_SESID sesid, long CounterType ); JET_ERR JET_API JetGetCounter( JET_SESID sesid, long CounterType, long *plValue ); JET_ERR JET_API JetBeginSession( JET_INSTANCE instance, JET_SESID *psesid, const char *szUserName, const char *szPassword ); JET_ERR JET_API JetDupSession( JET_SESID sesid, JET_SESID *psesid ); JET_ERR JET_API JetEndSession( JET_SESID sesid, JET_GRBIT grbit ); JET_ERR JET_API JetGetVersion( JET_SESID sesid, unsigned long *pwVersion ); JET_ERR JET_API JetIdle( JET_SESID sesid, JET_GRBIT grbit ); JET_ERR JET_API JetCreateDatabase( JET_SESID sesid, const char *szFilename, const char *szConnect, JET_DBID *pdbid, JET_GRBIT grbit ); JET_ERR JET_API JetCreateDatabase2( JET_SESID sesid, const char *szFilename, const unsigned long cpgDatabaseSizeMax, JET_DBID *pdbid, JET_GRBIT grbit ); JET_ERR JET_API JetAttachDatabase( JET_SESID sesid, const char *szFilename, JET_GRBIT grbit ); JET_ERR JET_API JetAttachDatabase2( JET_SESID sesid, const char *szFilename, const unsigned long cpgDatabaseSizeMax, JET_GRBIT grbit ); JET_ERR JET_API JetDetachDatabase( JET_SESID sesid, const char *szFilename ); JET_ERR JET_API JetGetObjectInfo( JET_SESID sesid, JET_DBID dbid, JET_OBJTYP objtyp, const char *szContainerName, const char *szObjectName, void *pvResult, unsigned long cbMax, unsigned long InfoLevel ); JET_ERR JET_API JetGetTableInfo( JET_SESID sesid, JET_TABLEID tableid, void *pvResult, unsigned long cbMax, unsigned long InfoLevel ); JET_ERR JET_API JetCreateTable( JET_SESID sesid, JET_DBID dbid, const char *szTableName, unsigned long lPages, unsigned long lDensity, JET_TABLEID *ptableid ); JET_ERR JET_API JetCreateTableColumnIndex( JET_SESID sesid, JET_DBID dbid, JET_TABLECREATE *ptablecreate ); JET_ERR JET_API JetDeleteTable( JET_SESID sesid, JET_DBID dbid, const char *szTableName ); JET_ERR JET_API JetRenameTable( JET_SESID sesid, JET_DBID dbid, const char *szName, const char *szNameNew ); JET_ERR JET_API JetGetTableColumnInfo( JET_SESID sesid, JET_TABLEID tableid, const char *szColumnName, void *pvResult, unsigned long cbMax, unsigned long InfoLevel ); JET_ERR JET_API JetGetColumnInfo( JET_SESID sesid, JET_DBID dbid, const char *szTableName, const char *szColumnName, void *pvResult, unsigned long cbMax, unsigned long InfoLevel ); JET_ERR JET_API JetAddColumn( JET_SESID sesid, JET_TABLEID tableid, const char *szColumnName, const JET_COLUMNDEF *pcolumndef, const void *pvDefault, unsigned long cbDefault, JET_COLUMNID *pcolumnid ); JET_ERR JET_API JetDeleteColumn( JET_SESID sesid, JET_TABLEID tableid, const char *szColumnName ); JET_ERR JET_API JetSetColumnDefaultValue( JET_SESID sesid, JET_DBID dbid, const char *szTableName, const char *szColumnName, const void *pvData, const unsigned long cbData, const JET_GRBIT grbit ); JET_ERR JET_API JetGetTableIndexInfo( JET_SESID sesid, JET_TABLEID tableid, const char *szIndexName, void *pvResult, unsigned long cbResult, unsigned long InfoLevel ); JET_ERR JET_API JetGetIndexInfo( JET_SESID sesid, JET_DBID dbid, const char *szTableName, const char *szIndexName, void *pvResult, unsigned long cbResult, unsigned long InfoLevel ); JET_ERR JET_API JetCreateIndex( JET_SESID sesid, JET_TABLEID tableid, const char *szIndexName, JET_GRBIT grbit, const char *szKey, unsigned long cbKey, unsigned long lDensity ); JET_ERR JET_API JetCreateIndex2( JET_SESID sesid, JET_TABLEID tableid, JET_INDEXCREATE *pindexcreate, unsigned long cIndexCreate ); JET_ERR JET_API JetDeleteIndex( JET_SESID sesid, JET_TABLEID tableid, const char *szIndexName ); JET_ERR JET_API JetBeginTransaction( JET_SESID sesid ); JET_ERR JET_API JetCommitTransaction( JET_SESID sesid, JET_GRBIT grbit ); JET_ERR JET_API JetRollback( JET_SESID sesid, JET_GRBIT grbit ); JET_ERR JET_API JetGetDatabaseInfo( JET_SESID sesid, JET_DBID dbid, void *pvResult, unsigned long cbMax, unsigned long InfoLevel ); JET_ERR JET_API JetGetDatabaseFileInfo( const char *szDatabaseName, void *pvResult, unsigned long cbMax, unsigned long InfoLevel ); JET_ERR JET_API JetOpenDatabase( JET_SESID sesid, const char *szFilename, const char *szConnect, JET_DBID *pdbid, JET_GRBIT grbit ); JET_ERR JET_API JetCloseDatabase( JET_SESID sesid, JET_DBID dbid, JET_GRBIT grbit ); JET_ERR JET_API JetOpenTable( JET_SESID sesid, JET_DBID dbid, const char *szTableName, const void *pvParameters, unsigned long cbParameters, JET_GRBIT grbit, JET_TABLEID *ptableid ); JET_ERR JET_API JetCloseTable( JET_SESID sesid, JET_TABLEID tableid ); JET_ERR JET_API JetDelete( JET_SESID sesid, JET_TABLEID tableid ); JET_ERR JET_API JetUpdate( JET_SESID sesid, JET_TABLEID tableid, void *pvBookmark, unsigned long cbBookmark, unsigned long *pcbActual); JET_ERR JET_API JetEscrowUpdate( JET_SESID sesid, JET_TABLEID tableid, JET_COLUMNID columnid, void *pv, unsigned long cbMax, void *pvOld, unsigned long cbOldMax, unsigned long *pcbOldActual, JET_GRBIT grbit ); JET_ERR JET_API JetRetrieveColumn( JET_SESID sesid, JET_TABLEID tableid, JET_COLUMNID columnid, void *pvData, unsigned long cbData, unsigned long *pcbActual, JET_GRBIT grbit, JET_RETINFO *pretinfo ); JET_ERR JET_API JetRetrieveColumns( JET_SESID sesid, JET_TABLEID tableid, JET_RETRIEVECOLUMN *pretrievecolumn, unsigned long cretrievecolumn ); JET_ERR JET_API JetRetrieveTaggedColumnList( JET_SESID sesid, JET_TABLEID tableid, unsigned long *pcColumns, void *pvData, unsigned long cbData, JET_COLUMNID columnidStart, JET_GRBIT grbit ); JET_ERR JET_API JetSetColumn( JET_SESID sesid, JET_TABLEID tableid, JET_COLUMNID columnid, const void *pvData, unsigned long cbData, JET_GRBIT grbit, JET_SETINFO *psetinfo ); JET_ERR JET_API JetSetColumns( JET_SESID sesid, JET_TABLEID tableid, JET_SETCOLUMN *psetcolumn, unsigned long csetcolumn ); JET_ERR JET_API JetPrepareUpdate( JET_SESID sesid, JET_TABLEID tableid, unsigned long prep ); JET_ERR JET_API JetGetRecordPosition( JET_SESID sesid, JET_TABLEID tableid, JET_RECPOS *precpos, unsigned long cbRecpos ); JET_ERR JET_API JetGotoPosition( JET_SESID sesid, JET_TABLEID tableid, JET_RECPOS *precpos ); JET_ERR JET_API JetGetCursorInfo( JET_SESID sesid, JET_TABLEID tableid, void *pvResult, unsigned long cbMax, unsigned long InfoLevel ); JET_ERR JET_API JetDupCursor( JET_SESID sesid, JET_TABLEID tableid, JET_TABLEID *ptableid, JET_GRBIT grbit ); JET_ERR JET_API JetGetCurrentIndex( JET_SESID sesid, JET_TABLEID tableid, char *szIndexName, unsigned long cchIndexName ); JET_ERR JET_API JetSetCurrentIndex( JET_SESID sesid, JET_TABLEID tableid, const char *szIndexName ); JET_ERR JET_API JetSetCurrentIndex2( JET_SESID sesid, JET_TABLEID tableid, const char *szIndexName, JET_GRBIT grbit ); JET_ERR JET_API JetSetCurrentIndex3( JET_SESID sesid, JET_TABLEID tableid, const char *szIndexName, JET_GRBIT grbit, unsigned long itagSequence ); JET_ERR JET_API JetMove( JET_SESID sesid, JET_TABLEID tableid, long cRow, JET_GRBIT grbit ); JET_ERR JET_API JetGetLock( JET_SESID sesid, JET_TABLEID tableid, JET_GRBIT grbit ); JET_ERR JET_API JetMakeKey( JET_SESID sesid, JET_TABLEID tableid, const void *pvData, unsigned long cbData, JET_GRBIT grbit ); JET_ERR JET_API JetSeek( JET_SESID sesid, JET_TABLEID tableid, JET_GRBIT grbit ); JET_ERR JET_API JetGetBookmark( JET_SESID sesid, JET_TABLEID tableid, void *pvBookmark, unsigned long cbMax, unsigned long *pcbActual ); JET_ERR JET_API JetCompact( JET_SESID sesid, const char *szDatabaseSrc, const char *szDatabaseDest, JET_PFNSTATUS pfnStatus, JET_CONVERT *pconvert, JET_GRBIT grbit ); JET_ERR JET_API JetDefragment( JET_SESID sesid, JET_DBID dbid, const char *szTableName, unsigned long *pcPasses, unsigned long *pcSeconds, JET_GRBIT grbit ); JET_ERR JET_API JetSetDatabaseSize( JET_SESID sesid, const char *szDatabaseName, unsigned long cpg, unsigned long *pcpgReal ); JET_ERR JET_API JetGrowDatabase( JET_SESID sesid, JET_DBID dbid, unsigned long cpg, unsigned long *pcpgReal ); JET_ERR JET_API JetDBUtilities( JET_DBUTIL *pdbutil ); JET_ERR JET_API JetGotoBookmark( JET_SESID sesid, JET_TABLEID tableid, void *pvBookmark, unsigned long cbBookmark ); JET_ERR JET_API JetComputeStats( JET_SESID sesid, JET_TABLEID tableid ); typedef ULONG_PTR JET_VSESID; /* Received from dispatcher */ struct tagVDBFNDEF; typedef ULONG_PTR JET_VDBID; /* Received from dispatcher */ struct tagVTFNDEF; typedef ULONG_PTR JET_VTID; /* Received from dispatcher */ JET_ERR JET_API JetOpenTempTable(JET_SESID sesid, const JET_COLUMNDEF *prgcolumndef, unsigned long ccolumn, JET_GRBIT grbit, JET_TABLEID *ptableid, JET_COLUMNID *prgcolumnid); JET_ERR JET_API JetOpenTempTable2( JET_SESID sesid, const JET_COLUMNDEF *prgcolumndef, unsigned long ccolumn, unsigned long lcid, JET_GRBIT grbit, JET_TABLEID *ptableid, JET_COLUMNID *prgcolumnid ); JET_ERR JET_API JetBackup( const char *szBackupPath, JET_GRBIT grbit, JET_PFNSTATUS pfnStatus ); JET_ERR JET_API JetRestore(const char *sz, JET_PFNSTATUS pfn ); JET_ERR JET_API JetRestore2(const char *sz, const char *szDest, JET_PFNSTATUS pfn ); JET_ERR JET_API JetSetIndexRange(JET_SESID sesid, JET_TABLEID tableidSrc, JET_GRBIT grbit); JET_ERR JET_API JetIndexRecordCount(JET_SESID sesid, JET_TABLEID tableid, unsigned long *pcrec, unsigned long crecMax ); JET_ERR JET_API JetRetrieveKey(JET_SESID sesid, JET_TABLEID tableid, void *pvData, unsigned long cbMax, unsigned long *pcbActual, JET_GRBIT grbit ); JET_ERR JET_API JetBeginExternalBackup( JET_GRBIT grbit ); JET_ERR JET_API JetGetAttachInfo( void *pv, unsigned long cbMax, unsigned long *pcbActual ); JET_ERR JET_API JetOpenFile( const char *szFileName, JET_HANDLE *phfFile, unsigned long *pulFileSizeLow, unsigned long *pulFileSizeHigh ); JET_ERR JET_API JetReadFile( JET_HANDLE hfFile, void *pv, unsigned long cb, unsigned long *pcb ); JET_ERR JET_API JetAsyncReadFile( JET_HANDLE hfFile, void* pv, unsigned long cb, JET_OLP *pjolp ); JET_ERR JET_API JetCheckAsyncReadFile( void *pv, int cb, unsigned long pgnoFirst ); JET_ERR JET_API JetCloseFile( JET_HANDLE hfFile ); JET_ERR JET_API JetGetLogInfo( void *pv, unsigned long cbMax, unsigned long *pcbActual ); JET_ERR JET_API JetTruncateLog( void ); JET_ERR JET_API JetEndExternalBackup( void ); JET_ERR JET_API JetExternalRestore( char *szCheckpointFilePath, char *szLogPath, JET_RSTMAP *rgstmap, long crstfilemap, char *szBackupLogPath, long genLow, long genHigh, JET_PFNSTATUS pfn ); #ifdef __cplusplus } #endif #endif /* _JET_NOPROTOTYPES */ #include #ifdef __cplusplus } #endif #endif /* _JET_INCLUDED */ #else /* _USE_NEW_JET_H_, the USE_NEW_JET_H is needed for err.awk to generate err.c in cli */ // ******************************************************************************* // Old Jet header... // ******************************************************************************* #if !defined(_JET_INCLUDED) #define _JET_INCLUDED #ifdef __cplusplus extern "C" { #endif #if defined(_M_ALPHA) #include #else #include #endif #define JET_API __stdcall #define JET_NODSAPI __stdcall typedef long JET_ERR; typedef unsigned long JET_INSTANCE; /* Instance Identifier */ typedef unsigned long JET_SESID; /* Session Identifier */ typedef unsigned long JET_TABLEID; /* Table Identifier */ typedef unsigned long JET_COLUMNID; /* Column Identifier */ typedef unsigned long JET_DBID; /* Database Identifier */ typedef unsigned long JET_OBJTYP; /* Object Type */ typedef unsigned long JET_COLTYP; /* Column Type */ typedef unsigned long JET_GRBIT; /* Group of Bits */ typedef unsigned long JET_ACM; /* Access Mask */ typedef unsigned long JET_RNT; /* Repair Notification Type */ typedef unsigned long JET_SNP; /* Status Notification Process */ typedef unsigned long JET_SNT; /* Status Notification Type */ typedef unsigned long JET_SNC; /* Status Notification Code */ typedef double JET_DATESERIAL; /* JET_coltypDateTime format */ typedef unsigned long JET_HANDLE; /* backup file handle */ typedef JET_ERR (__stdcall *JET_PFNSTATUS)(JET_SESID sesid, JET_SNP snp, JET_SNT snt, void *pv); typedef struct tagCONVERT { char *szOldDll; char *szOldSysDb; unsigned long fDbAttached; // Return value indicating if Db was attached } JET_CONVERT; typedef enum { opDBUTILConsistency, opDBUTILDumpData, opDBUTILDumpMetaData, opDBUTILDumpSpace, opDBUTILDumpPage, opDBUTILSetHeaderState, opDBUTILDumpHeader, opDBUTILDumpLogfile, opDBUTILDumpCheckpoint, opDBUTILEDBDump, opDBUTILEDBRepair } DBUTIL_OP; typedef struct tagDBUTIL { unsigned long cbStruct; char *szDatabase; char *szTable; char *szIndex; DBUTIL_OP op; JET_GRBIT grbitOptions; } JET_DBUTIL; #define JET_bitDBUtilOptionAllNodes 0x00000001 #define JET_bitDBUtilOptionKeyStats 0x00000002 #define JET_bitDBUtilOptionPageDump 0x00000004 #define JET_bitDBUtilOptionDumpVerbose 0x10000000 // DEBUG only #define JET_bitDBUtilOptionCheckBTree 0x20000000 // DEBUG only /* Session information bits */ #define JET_bitCIMCommitted 0x00000001 #define JET_bitCIMDirty 0x00000002 #define JET_bitAggregateTransaction 0x00000008 /* JetGetLastErrorInfo structure */ typedef struct { unsigned long cbStruct; /* Size of this structure */ JET_ERR err; /* Extended error code (if any) */ unsigned long ul1; /* First general purpose integer */ unsigned long ul2; /* Second general purpose integer */ unsigned long ul3; /* Third general purpose integer */ } JET_EXTERR; /* Status Notification Structures */ typedef struct /* Status Notification Progress */ { unsigned long cbStruct; /* Size of this structure */ unsigned long cunitDone; /* Number of units of work completed */ unsigned long cunitTotal; /* Total number of units of work */ } JET_SNPROG; /* ErrCount Notification Structures */ typedef struct /* Status Notification Progress */ { unsigned long cbStruct; /* Size of this structure */ unsigned long cRecUniqueKeyViolation; unsigned long cRecTypeConversionFail; unsigned long cRecRecordLocked; unsigned long cRecTotal; /* Total number of units of work */ } JET_SNERRCNT; typedef struct /* Status Notification Message */ { unsigned long cbStruct; /* Size of this structure */ JET_SNC snc; /* Status Notification Code */ unsigned long ul; /* Numeric identifier */ char sz[256]; /* Identifier */ } JET_SNMSG; typedef struct { unsigned long cbStruct; JET_OBJTYP objtyp; JET_DATESERIAL dtCreate; JET_DATESERIAL dtUpdate; JET_GRBIT grbit; unsigned long flags; unsigned long cRecord; unsigned long cPage; } JET_OBJECTINFO; /* required for Exchange to make RSTMAP RPC capable /**/ #ifdef MIDL_PASS #define xRPC_STRING [string] #else #define xRPC_STRING typedef unsigned short WCHAR; #endif typedef struct { xRPC_STRING char *szDatabaseName; xRPC_STRING char *szNewDatabaseName; } JET_RSTMAP; /* restore map */ /* required for Exchange unicode support /**/ #define UNICODE_RSTMAP typedef struct tagJET_RSTMAPW { xRPC_STRING WCHAR *wszDatabaseName; xRPC_STRING WCHAR *wszNewDatabaseName; } JET_RSTMAPW, *PJET_RSTMAPW; /* The following flags appear in the grbit field above */ #define JET_bitTableInfoUpdatable 0x00000001 #define JET_bitTableInfoBookmark 0x00000002 #define JET_bitTableInfoRollback 0x00000004 #define JET_bitTableInfoRestartable 0x00000008 #define JET_bitTableInfoNoInserts 0x00000010 /* The following flags occur in the flags field above */ #define JET_bitSaveUIDnPWD 0x20000000 /* this bit is only */ /* appropriate for rmt links */ #define JET_bitObjectExclusive 0x40000000 /* Open link exclusively */ #define JET_bitObjectSystem 0x80000000 typedef struct { unsigned long cbStruct; JET_TABLEID tableid; unsigned long cRecord; JET_COLUMNID columnidcontainername; JET_COLUMNID columnidobjectname; JET_COLUMNID columnidobjtyp; JET_COLUMNID columniddtCreate; JET_COLUMNID columniddtUpdate; JET_COLUMNID columnidgrbit; JET_COLUMNID columnidflags; JET_COLUMNID columnidcRecord; /* Level 2 info */ JET_COLUMNID columnidcPage; /* Level 2 info */ } JET_OBJECTLIST; #define cObjectInfoCols 9 typedef struct { unsigned long cbStruct; JET_TABLEID tableid; unsigned long cRecord; JET_COLUMNID columnidSid; JET_COLUMNID columnidACM; JET_COLUMNID columnidgrbit; /* grbit from JetSetAccess */ } JET_OBJECTACMLIST; #define cObjectAcmCols 3 typedef struct { unsigned long cbStruct; JET_TABLEID tableid; unsigned long cRecord; JET_COLUMNID columnidPresentationOrder; JET_COLUMNID columnidcolumnname; JET_COLUMNID columnidcolumnid; JET_COLUMNID columnidcoltyp; JET_COLUMNID columnidCountry; JET_COLUMNID columnidLangid; JET_COLUMNID columnidCp; JET_COLUMNID columnidCollate; JET_COLUMNID columnidcbMax; JET_COLUMNID columnidgrbit; JET_COLUMNID columnidDefault; JET_COLUMNID columnidBaseTableName; JET_COLUMNID columnidBaseColumnName; JET_COLUMNID columnidDefinitionName; } JET_COLUMNLIST; #define cColumnInfoCols 14 typedef struct { unsigned long cbStruct; JET_COLUMNID columnid; JET_COLTYP coltyp; unsigned short wCountry; unsigned short langid; unsigned short cp; unsigned short wCollate; /* Must be 0 */ unsigned long cbMax; JET_GRBIT grbit; } JET_COLUMNDEF; typedef struct { unsigned long cbStruct; JET_COLUMNID columnid; JET_COLTYP coltyp; unsigned short wCountry; unsigned short langid; unsigned short cp; unsigned short wFiller; /* Must be 0 */ unsigned long cbMax; JET_GRBIT grbit; char szBaseTableName[256]; char szBaseColumnName[256]; } JET_COLUMNBASE; typedef struct { unsigned long cbStruct; JET_TABLEID tableid; unsigned long cRecord; JET_COLUMNID columnidindexname; JET_COLUMNID columnidgrbitIndex; JET_COLUMNID columnidcKey; JET_COLUMNID columnidcEntry; JET_COLUMNID columnidcPage; JET_COLUMNID columnidcColumn; JET_COLUMNID columnidiColumn; JET_COLUMNID columnidcolumnid; JET_COLUMNID columnidcoltyp; JET_COLUMNID columnidCountry; JET_COLUMNID columnidLangid; JET_COLUMNID columnidCp; JET_COLUMNID columnidCollate; JET_COLUMNID columnidgrbitColumn; JET_COLUMNID columnidcolumnname; } JET_INDEXLIST; typedef struct tag_JET_COLUMNCREATE { unsigned long cbStruct; // size of this structure (for future expansion) char *szColumnName; // column name JET_COLTYP coltyp; // column type unsigned long cbMax; // the maximum length of this column (only relevant for binary and text columns) JET_GRBIT grbit; // column options void *pvDefault; // default value (NULL if none) unsigned long cbDefault; // length of default value unsigned long cp; // code page (for text columns only) JET_COLUMNID columnid; // returned column id JET_ERR err; // returned error code } JET_COLUMNCREATE; typedef struct tagJET_INDEXCREATE { unsigned long cbStruct; // size of this structure (for future expansion) char *szIndexName; // index name char *szKey; // index key unsigned long cbKey; // length of key JET_GRBIT grbit; // index options unsigned long ulDensity; // index density JET_ERR err; // returned error code } JET_INDEXCREATE; typedef struct tagJET_TABLECREATE { unsigned long cbStruct; // size of this structure (for future expansion) char *szTableName; // name of table to create. unsigned long ulPages; // initial pages to allocate for table. unsigned long ulDensity; // table density. JET_COLUMNCREATE *rgcolumncreate; // array of column creation info unsigned long cColumns; // number of columns to create JET_INDEXCREATE *rgindexcreate; // array of index creation info unsigned long cIndexes; // number of indexes to create JET_GRBIT grbit; // Abort column/index creation on error? JET_TABLEID tableid; // returned tableid. unsigned long cCreated; // count of objects created (columns+table+indexes). } JET_TABLECREATE; #define cIndexInfoCols 15 typedef struct { unsigned long cbStruct; JET_TABLEID tableid; unsigned long cRecord; JET_COLUMNID columnidReferenceName; JET_COLUMNID columnidgrbit; JET_COLUMNID columnidcColumn; JET_COLUMNID columnidiColumn; JET_COLUMNID columnidReferencingTableName; JET_COLUMNID columnidReferencingColumnName; JET_COLUMNID columnidReferencedTableName; JET_COLUMNID columnidReferencedColumnName; } JET_RELATIONSHIPLIST; /* for backward compatibility */ typedef JET_RELATIONSHIPLIST JET_REFERENCELIST; #define cReferenceInfoCols 8 typedef struct { unsigned long cbStruct; unsigned long ibLongValue; unsigned long itagSequence; JET_COLUMNID columnidNextTagged; } JET_RETINFO; typedef struct { unsigned long cbStruct; unsigned long ibLongValue; unsigned long itagSequence; } JET_SETINFO; typedef struct { unsigned long cbStruct; unsigned long centriesLT; unsigned long centriesInRange; unsigned long centriesTotal; } JET_RECPOS; typedef struct { unsigned long cDiscont; unsigned long cUnfixedMessyPage; unsigned long centriesLT; unsigned long centriesTotal; unsigned long cpgCompactFreed; } JET_OLCSTAT; typedef struct { unsigned long ctableid; JET_TABLEID rgtableid[1]; } JET_MGBLIST; /*** Property Manager Structure ***/ typedef struct { unsigned long cbStruct; JET_TABLEID tableid; JET_COLUMNID columnidColumnName; JET_COLUMNID columnidPropertyName; JET_COLUMNID columnidGrbit; JET_COLUMNID columnidPropertyValue; JET_COLUMNID columnidColtyp; } JET_PROPERTYLIST; /************************************************************************/ /************************* JET CONSTANTS ************************/ /************************************************************************/ #define JET_tableidNil ((JET_TABLEID) 0xFFFFFFFF) #define JET_sesidNil ((JET_SESID) 0xFFFFFFFF) /* Max size of a bookmark */ #define JET_cbBookmarkMost 4 /* Max length of a object/column/index/property name */ #define JET_cbNameMost 64 /* Max length of a "name.name.name..." construct */ #define JET_cbFullNameMost 255 /* Max size of long-value column chunk */ #define JET_cbColumnLVChunkMost 4035 /* Max size of non-long-value column data */ #define JET_cbColumnMost 255 /* Max size of a sort/index key */ #define JET_cbKeyMost 255 /* Max number of components in a sort/index key */ #define JET_ccolKeyMost 12 /* Max number of columns in a table/query */ #define JET_ccolTableMost 255 /* Max Length of a property in the property manager */ #define JET_cbPropertyMost 2048 /* Largest initial substring of a long value used in an expression */ #define JET_cbExprLVMost 0x8000L /*** 32 K ***/ /* Max size of returned (from SQLDriverConnect) conn string */ #define JET_cbConnectMost 255 /* Max number of levels in an MGB */ #define JET_wGroupLevelMax 12 /* Size restrictions for Pins */ #define JET_cchPINMax 20 #define JET_cchPINMin 4 /* System parameter codes for JetSetSystemParameter */ /* not supported */ #define JET_paramPfnStatus 2 /* Status callback function */ #define JET_paramPfnError 3 /* Error callback function */ #define JET_paramHwndODBC 4 /* Window handle for ODBC use */ #define JET_paramIniPath 5 /* Path to the ini file */ #define JET_paramPageTimeout 6 /* Red ISAM page timeout value */ #define JET_paramODBCQueryTimeout 7 /* ODBC async query timeout value */ #define JET_paramODBCLoginTimeout 25 /* ODBC connection attempt timeout value */ #define JET_paramExprObject 26 /* Expression Evaluation callback */ #define JET_paramGetTypeComp 27 /* Expression Evaluation callback */ #define JET_paramHostVersion 28 /* Host Version callback */ #define JET_paramSQLTraceMode 29 /* Enable/disable SQL tracing */ #define JET_paramEventId 46 /* NT event id */ #define JET_paramEventCategory 47 /* NT event category */ #define JET_paramRmtXactIsolation 39 /* Do not share connections with other sessions */ #define JET_paramJetInternal 35 /* Whether internal to JET; if set, allows ISAM to do things which are prevented in general */ #define JET_paramFullQJet 38 /* Allow full QJet functionality */ #define JET_paramLogFlushThreshold 18 /* log buffer flush threshold in 512 bytes [10] */ #define JET_paramLogFlushPeriod 22 /* log flush period in miliseconds [45] */ #define JET_paramOnLineCompact 37 /* Options for compact pages on-line */ #define JET_paramRecovery 30 /* Switch for log on/off */ /* debug only not supported */ #define JET_paramTransactionLevel 32 /* Transaction level of session */ #define JET_paramAssertAction 44 /* debug only determines action on assert */ #define JET_paramPrintFunction 49 /* debug only. synched print function */ #define JET_paramRFS2IOsPermitted 54 /* # IOs permitted to succeed (-1 = all) */ #define JET_paramRFS2AllocsPermitted 55 /* # allocs permitted to success (-1 = all) */ /* fully supported parameters */ /* Note that one page = 4kBytes. /**/ #define JET_paramSysDbPath 0 /* path to the system database (defunct) ["."] */ #define JET_paramSystemPath 0 /* path to check point file ["."] */ #define JET_paramTempPath 1 /* path to the temporary database ["."] */ #define JET_paramMaxBuffers 8 /* maximum page cache size in pages [512] */ #define JET_paramMaxSessions 9 /* maximum number of sessions [128] */ #define JET_paramMaxOpenTables 10 /* maximum number of open tables [300] */ #define JET_paramPreferredMaxOpenTables 59 /* prefered maximum number of open tables [300] */ #define JET_paramMaxVerPages 11 /* maximum version store size in 16KB buckets [64] */ #define JET_paramMaxCursors 12 /* maximum number of open cursors [1024] */ #define JET_paramLogFilePath 13 /* path to the log file directory ["."] */ #define JET_paramMaxOpenTableIndexes 14 /* maximum open table indexes [300] */ #define JET_paramMaxTemporaryTables 15 /* maximum concurrent JetCreateIndex [20] */ #define JET_paramLogBuffers 16 /* maximum log buffers in 512 bytes [21] */ #define JET_paramLogFileSize 17 /* maximum log file size in kBytes [5120] */ #define JET_paramBfThrshldLowPrcnt 19 /* low percentage clean buffer flush start [20] */ #define JET_paramBfThrshldHighPrcnt 20 /* high percentage clean buffer flush stop [80] */ #define JET_paramWaitLogFlush 21 /* log flush wait time in milliseconds [15] */ #define JET_paramLogCheckpointPeriod 23 /* checkpoint period in 512 bytes [1024] */ #define JET_paramLogWaitingUserMax 24 /* maximum sessions waiting log flush [3] */ #define JET_paramSessionInfo 33 /* per session information [0] */ #define JET_paramPageFragment 34 /* maximum disk extent considered fragment in pages [8] */ #define JET_paramMaxOpenDatabases 36 /* maximum number of open databases [100] */ #define JET_paramBufBatchIOMax 41 /* maximum batch IO in pages [64] */ #define JET_paramPageReadAheadMax 42 /* maximum read-ahead IO in pages [20] */ #define JET_paramAsynchIOMax 43 /* maximum asynchronous IO in pages [64] */ #define JET_paramEventSource 45 /* language independant process descriptor string [""] */ #define JET_paramDbExtensionSize 48 /* database extension size in pages [16] */ #define JET_paramCommitDefault 50 /* default grbit for JetCommitTransaction [0] */ #define JET_paramBufLogGenAgeThreshold 51 /* age threshold in log files [2] */ #define JET_paramCircularLog 52 /* boolean flag for circular logging [0] */ #define JET_paramPageTempDBMin 53 /* minimum size temporary database in pages [0] */ #define JET_paramBaseName 56 /* base name for all DBMS object names ["edb"] */ #define JET_paramBaseExtension 57 /* base extension for all DBMS object names ["edb"] */ #define JET_paramTableClassName 58 /* table stats class name (class #, string) */ /* Flags for JetTerm2 */ #define JET_bitTermComplete 0x00000001 #define JET_bitTermAbrupt 0x00000002 /* Flags for JetIdle */ #define JET_bitIdleRemoveReadLocks 0x00000001 #define JET_bitIdleFlushBuffers 0x00000002 #define JET_bitIdleCompact 0x00000004 #define JET_bitIdleStatus 0x80000000 /* Flags for JetEndSession */ #define JET_bitForceSessionClosed 0x00000001 /* Flags for JetOpenDatabase */ #define JET_bitDbReadOnly 0x00000001 #define JET_bitDbExclusive 0x00000002 /* multiple opens allowed */ #define JET_bitDbRemoteSilent 0x00000004 #define JET_bitDbSingleExclusive 0x00000008 /* opened exactly once */ /* Flags for JetCloseDatabase */ #define JET_bitDbForceClose 0x00000001 /* Flags for JetCreateDatabase */ #define JET_bitDbVersion10 0x00000002 /* INTERNAL USE ONLY */ #define JET_bitDbVersion1x 0x00000004 #define JET_bitDbRecoveryOff 0x00000008 /* disable logging/recovery for this database */ #define JET_bitDbNoLogging JET_bitDbRecoveryOff #define JET_bitDbCompleteConnstr 0x00000020 #define JET_bitDbVersioningOff 0x00000040 /* Flags for JetBackup */ #define JET_bitBackupIncremental 0x00000001 #define JET_bitKeepOldLogs 0x00000002 #define JET_bitBackupAtomic 0x00000004 /* Database types */ #define JET_dbidNil ((JET_DBID) 0xFFFFFFFF) #define JET_dbidNoValid ((JET_DBID) 0xFFFFFFFE) /* used as a flag to indicate that there is no valid dbid */ /* Flags for JetCreateLink */ /* Can use JET_bitObjectExclusive to cause linked to database to be opened */ /* exclusively. */ /* Flags for JetCreateTableColumnIndex */ #define JET_bitTableCreateCheckColumnNames 0x00000001 /* Ensures that each column /* specified in the JET_COLUMNCREATE /* array has a unique name /* (for performance reasons, /* the default is to NOT perform /* this check and rely on the /* function caller to ensure /* column name uniqueness). /**/ #define JET_bitTableCreateCompaction 0x40000000 /* Internal grbit used when /* creating a table during /* off-line compact. /**/ #define JET_bitTableCreateSystemTable 0x80000000 /* Internal grbit used when /* creating system tables. /**/ /* Flags for JetAddColumn, JetGetColumnInfo, JetOpenTempTable */ #define JET_bitColumnFixed 0x00000001 #define JET_bitColumnTagged 0x00000002 #define JET_bitColumnNotNULL 0x00000004 #define JET_bitColumnVersion 0x00000008 #define JET_bitColumnAutoincrement 0x00000010 #define JET_bitColumnUpdatable 0x00000020 /* JetGetColumnInfo only */ #define JET_bitColumnTTKey 0x00000040 /* JetOpenTempTable only */ #define JET_bitColumnTTDescending 0x00000080 /* JetOpenTempTable only */ #define JET_bitColumnNotLast 0x00000100 /* Installable ISAM option */ #define JET_bitColumnRmtGraphic 0x00000200 /* JetGetColumnInfo */ #define JET_bitColumnMultiValued 0x00000400 #define JET_bitColumnColumnGUID 0x00000800 #define JET_bitColumnMostMany 0x00001000 #define JET_bitColumnPreventDelete 0x00002000 /* Flags for JetSetCurrentIndex */ #define JET_bitMoveFirst 0x00000000 #define JET_bitMoveBeforeFirst 0x00000001 #define JET_bitNoMove 0x00000002 /* Flags for JetMakeKey */ #define JET_bitNewKey 0x00000001 #define JET_bitStrLimit 0x00000002 #define JET_bitSubStrLimit 0x00000004 #define JET_bitNormalizedKey 0x00000008 #define JET_bitKeyDataZeroLength 0x00000010 #ifdef DBCS /* johnta: LIKE "ABC" not converted to ="ABC" for Japanese */ #define JET_bitLikeExtra1 0x00000020 #endif /* DBCS */ /* Flags for ErrDispSetIndexRange */ #define JET_bitRangeInclusive 0x00000001 #define JET_bitRangeUpperLimit 0x00000002 #define JET_bitRangeInstantDuration 0x00000004 #define JET_bitRangeRemove 0x00000008 /* Constants for JetMove */ #define JET_MoveFirst (0x80000000) #define JET_MovePrevious (-1) #define JET_MoveNext (+1) #define JET_MoveLast (0x7fffffff) /* Flags for JetMove */ #define JET_bitMoveKeyNE 0x00000001 #define JET_bitMoveCheckTS 0x00000002 #define JET_bitMoveInPage 0x00000004 /* Flags for JetSeek */ #define JET_bitSeekEQ 0x00000001 #define JET_bitSeekLT 0x00000002 #define JET_bitSeekLE 0x00000004 #define JET_bitSeekGE 0x00000008 #define JET_bitSeekGT 0x00000010 #define JET_bitSetIndexRange 0x00000020 /* Flags for JetFastFind */ #define JET_bitFFindBackwards 0x00000001 #define JET_bitFFindFromCursor 0x00000004 /* Flags for JetCreateIndex */ #define JET_bitIndexUnique 0x00000001 #define JET_bitIndexPrimary 0x00000002 #define JET_bitIndexDisallowNull 0x00000004 #define JET_bitIndexIgnoreNull 0x00000008 #define JET_bitIndexClustered 0x00000010 #define JET_bitIndexIgnoreAnyNull 0x00000020 #define JET_bitIndexIgnoreFirstNull 0x00000040 #define JET_bitIndexLazyFlush 0x00000080 #define JET_bitIndexEmpty 0x00000100 // don't attempt to build index, because all entries would evaluate to NULL (MUST also specify JET_bitIgnoreAnyNull) #define JET_bitIndexEmptyTable 0x40000000 // Internal use only #define JET_bitIndexReference 0x80000000 /* IndexInfo only */ /* Flags for index key definition */ #define JET_bitKeyAscending 0x00000000 #define JET_bitKeyDescending 0x00000001 /* Flags for JetCreateRelationship */ #define JET_bitRelationUnique 0x00000001 #define JET_bitRelationDontEnforce 0x00000002 #define JET_bitRelationInherited 0x00000004 #define JET_bitRelationTestLegal 0x00000008 /* don't create relationship */ #define JET_bitRelationshipMatchMask 0x000000F0 #define JET_bitRelationMatchDefault 0x00000000 #define JET_bitRelationMatchFull 0x00000010 #define JET_bitRelationUpdateActionMask 0x00000F00 #define JET_bitRelationUpdateDisallow 0x00000000 #define JET_bitRelationUpdateCascade 0x00000100 #define JET_bitRelationUpdateSetNull 0x00000200 #define JET_bitRelationUpdateSetDefault 0x00000300 #define JET_bitRelationDeleteActionMask 0x0000F000 #define JET_bitRelationDeleteDisallow 0x00000000 #define JET_bitRelationDeleteCascade 0x00001000 #define JET_bitRelationDeleteSetNull 0x00002000 #define JET_bitRelationDeleteSetDefault 0x00003000 #define JET_bitRelationUserMask 0xFF000000 /* non-enforced values */ #define JET_bitRelationJoinMask 0x03000000 #define JET_bitRelationInner 0x00000000 #define JET_bitRelationLeft 0x01000000 #define JET_bitRelationRight 0x02000000 /* Flags for JetCreateReference/JetCreateRelationship */ /* NOTE: use the bitRelationship flags instead! */ #define JET_ReferenceUnique JET_bitRelationUnique #define JET_ReferenceDontEnforce JET_bitRelationDontEnforce #define JET_ReferenceMatchTypeMask JET_bitRelationMatchMask #define JET_ReferenceMatchDefault JET_bitRelationMatchDefault #define JET_ReferenceMatchFull JET_bitRelationMatchFull #define JET_ReferenceUpdateActionMask JET_bitRelationUpdateActionMask #define JET_ReferenceUpdateDisallow JET_bitRelationUpdateDisallow #define JET_ReferenceUpdateCascade JET_bitRelationUpdateCascade #define JET_ReferenceUpdateSetNull JET_bitRelationUpdateSetNull #define JET_ReferenceUpdateSetDefault JET_bitRelationUpdateSetDefault #define JET_ReferenceDeleteActionMask JET_bitRelationDeleteActionMask #define JET_ReferenceDeleteDisallow JET_bitRelationDeleteDisallow #define JET_ReferenceDeleteCascade JET_bitRelationDeleteCascade #define JET_ReferenceDeleteSetNull JET_bitRelationDeleteSetNull #define JET_ReferenceDeleteSetDefault JET_bitRelationDeleteSetDefault /* Flags for JetOpenTable */ #define JET_bitTableDenyWrite 0x00000001 #define JET_bitTableDenyRead 0x00000002 #define JET_bitTableReadOnly 0x00000004 #define JET_bitTableAppendOnly 0x00000008 #define JET_bitTableUpdatable 0x00000010 #define JET_bitTableScrollable 0x00000020 #define JET_bitTableFixedSet 0x00000040 /* Fixed working set */ #define JET_bitTableInconsistent 0x00000080 #define JET_bitTableBulk 0x00000100 #define JET_bitTableUsePrimaryIndex 0x00000200 /* Use with FixedSet */ #define JET_bitTableSampleData 0x00000400 #define JET_bitTableQuickBrowse 0x00000800 /* Bias optimizer toward index usage */ #define JET_bitTableDDL 0x00001000 /* similar to JET_bitTableBulk, for DDL */ #define JET_bitTablePassThrough 0x00002000 /* Remote DBs Only */ #define JET_bitTableRowReturning 0x00004000 #define JET_bitTableSequential 0x00008000 /* Intend to access table sequentially */ #define JET_bitTableClassMask 0x000F0000 /* table stats class mask */ #define JET_bitTableClassNone 0x00000000 /* table belongs to no stats class (default) */ #define JET_bitTableClass1 0x00010000 /* table belongs to stats class 1 */ #define JET_bitTableClass2 0x00020000 /* table belongs to stats class 2 */ #define JET_bitTableClass3 0x00030000 /* table belongs to stats class 3 */ #define JET_bitTableClass4 0x00040000 /* table belongs to stats class 4 */ #define JET_bitTableClass5 0x00050000 /* table belongs to stats class 5 */ #define JET_bitTableClass6 0x00060000 /* table belongs to stats class 6 */ #define JET_bitTableClass7 0x00070000 /* table belongs to stats class 7 */ #define JET_bitTableClass8 0x00080000 /* table belongs to stats class 8 */ #define JET_bitTableClass9 0x00090000 /* table belongs to stats class 9 */ #define JET_bitTableClass10 0x000A0000 /* table belongs to stats class 10 */ #define JET_bitTableClass11 0x000B0000 /* table belongs to stats class 11 */ #define JET_bitTableClass12 0x000C0000 /* table belongs to stats class 12 */ #define JET_bitTableClass13 0x000D0000 /* table belongs to stats class 13 */ #define JET_bitTableClass14 0x000E0000 /* table belongs to stats class 14 */ #define JET_bitTableClass15 0x000F0000 /* table belongs to stats class 15 */ /* Flags for JetSetQoSql/JetRetrieveQoSql */ #define JET_bitSqlPassThrough 0x00000001 /* Pass through Query returning records */ #define JET_bitSqlSPTBulkOp 0x00000002 /* SPT query returning no table */ /* Flags for JetOpenVtQbe */ #define JET_bitQBEAddBrackets 0x00000001 #define JET_bitQBERemoveEquals 0x00000002 /* Flags for JetOpenTempTable and ErrIsamOpenTempTable */ #define JET_bitTTIndexed 0x00000001 /* Allow seek */ #define JET_bitTTUnique 0x00000002 /* Remove duplicates -- OBSOLETE: Dupes are ALWAYS either silently removed or an error is returned on insertion */ #define JET_bitTTUpdatable 0x00000004 /* Allow updates */ #define JET_bitTTScrollable 0x00000008 /* Allow backwards scrolling */ /* Flags for JetSetColumn */ #define JET_bitSetAppendLV 0x00000001 #define JET_bitSetValidate 0x00000002 #define JET_bitSetOverwriteLV 0x00000004 /* overwrite JET_coltypLong* byte range */ #define JET_bitSetSizeLV 0x00000008 /* set JET_coltypLong* size */ #define JET_bitSetValidateColumn 0x00000010 #define JET_bitSetZeroLength 0x00000020 #define JET_bitSetSeparateLV 0x00000040 /* force LV separation */ #define JET_bitSetNoVersion 0x00000080 /* INTERNAL USE ONLY */ /* Set column parameter structure for JetSetColumns */ typedef struct { JET_COLUMNID columnid; const void *pvData; unsigned long cbData; JET_GRBIT grbit; unsigned long ibLongValue; unsigned long itagSequence; JET_ERR err; } JET_SETCOLUMN; /* Options for JetPrepareUpdate */ #define JET_prepInsert 0 #define JET_prepInsertBeforeCurrent 1 #define JET_prepReplace 2 #define JET_prepCancel 3 #define JET_prepReplaceNoLock 4 #define JET_prepInsertCopy 5 /* Flags for JetRetrieveColumn */ #define JET_bitRetrieveCopy 0x00000001 #define JET_bitRetrieveFromIndex 0x00000002 #define JET_bitRetrieveCase 0x00000004 #define JET_bitRetrieveTag 0x00000008 #define JET_bitRetrieveNull 0x00000010 /* for columnid 0 only */ #define JET_bitRetrieveIgnoreDefault 0x00000020 /* for columnid 0 only */ #define JET_bitRetrieveLongId 0x00000040 #define JET_bitRetrieveRecord 0x80000000 #define JET_bitRetrieveFDB 0x40000000 #define JET_bitRetrieveBookmarks 0x20000000 /* Retrieve column parameter structure for JetRetrieveColumns */ typedef struct { JET_COLUMNID columnid; void *pvData; unsigned long cbData; unsigned long cbActual; JET_GRBIT grbit; unsigned long ibLongValue; unsigned long itagSequence; JET_COLUMNID columnidNextTagged; JET_ERR err; } JET_RETRIEVECOLUMN; /* Flags for JetFillFatCursor */ #define JET_bitFCFillRange 0x00000001 #define JET_bitFCRefreshRange 0x00000002 #define JET_bitFCFillMemos 0x00000004 /* Flags for JetCommitTransaction */ #define JET_bitCommitFlush 0x00000001 /* commit and flush page buffers. */ #define JET_bitCommitLazyFlush 0x00000004 /* lazy flush log buffers. */ #define JET_bitWaitLastLevel0Commit 0x00000010 /* wait for last level 0 commit record flushed */ /* Flags for JetRollback */ #define JET_bitRollbackAll 0x00000001 /* Flags for JetSetAccess and JetGetAccess */ #define JET_bitACEInheritable 0x00000001 /* Flags for JetCreateSystemDatabase */ #define JET_bitSysDbOverwrite 0x00000001 /* Flags for Jet Property Management */ #define JET_bitPropDDL 0x00000001 /* also used for setting */ #define JET_bitPropInherited 0x00000002 /* not used for setting */ /* JPM Flags that are only used for setting properties */ #define JET_bitPropReplaceOnly 0x00000010 #define JET_bitPropInsertOnly 0x00000020 #define JET_bitPropDeleteOnly 0x00000040 /* InfoLevels for Jet Property Management */ #define JET_PropertyValue 0 #define JET_PropertyCount 1 #define JET_PropertySingleCollection 2 #define JET_PropertyAllCollections 3 /* Collate values for JetGetColumnInfo and JetGetIndexInfo */ #define JET_sortBinary 0x0000 #define JET_sortEFGPI 0x0100 #define JET_sortSNIFD 0x0101 #define JET_sortSpanish 0x0102 #define JET_sortDutch 0x0103 #define JET_sortSweFin 0x0104 #define JET_sortNorDan 0x0105 #define JET_sortIcelandic 0x0106 #define JET_sortCyrillic 0x0107 #define JET_sortCzech 0x0108 #define JET_sortHungarian 0x0109 #define JET_sortPolish 0x010A #define JET_sortArabic 0x010B #define JET_sortHebrew 0x010C #define JET_sortMax 0x010C /* Max for nonDBCS sort orders */ #ifdef DBCS /* johnta: Add the new Japanese sorting order */ #define JET_sortJapanese 0x010D #endif /* DBCS */ #define JET_sortUnknown 0xFFFF /* Paradox ISAM specific collate values */ #define JET_sortPdxIntl 0x1000 #define JET_sortPdxSwedFin 0x1001 #define JET_sortPdxNorDan 0x1002 /* Info parameter for JetGetDatabaseInfo */ #define JET_DbInfoFilename 0 #define JET_DbInfoConnect 1 #define JET_DbInfoCountry 2 #define JET_DbInfoLangid 3 #define JET_DbInfoCp 4 #define JET_DbInfoCollate 5 #define JET_DbInfoOptions 6 #define JET_DbInfoTransactions 7 #define JET_DbInfoVersion 8 #define JET_DbInfoIsam 9 #define JET_DbInfoFilesize 10 #define JET_DbInfoSpaceOwned 11 #define JET_DbInfoSpaceAvailable 12 /* Database versions returned by JetGetDatabaseInfo */ #define JET_DbVersion10 0x00010000 #define JET_DbVersion11 0x00010001 #define JET_DbVersion20 0x00020000 /* Isam specific info returned by JetGetDatabaseInfo */ #define JET_IsamInvalid 0 #define JET_IsamBuiltinRed 1 #define JET_IsamBuiltinBlue 2 #define JET_IsamInstRed 21 #define JET_IsamInstBlue 22 #define JET_IsamInstFox 23 #define JET_IsamInstParadox 24 #define JET_IsamInstDbase 25 #define JET_IsamInstBtrieve 26 #define JET_IsamBuilinMost JET_BuiltinBlue #define JET_IsamInstMin JET_IsamInstRed #define JET_IsamInstMost JET_IsamInstBtrieve /* Link specific info for link identification */ #define JET_bitLinkInvalid 0x00000000 #define JET_bitLinkRemote 0x00100000 #define JET_bitLinkBuiltinRed 0x00200000 #define JET_bitLinkBuiltinBlue 0x00300000 #define JET_bitLinkInstRed 0x00400000 #define JET_bitLinkInstBlue 0x00500000 #define JET_bitLinkInstFox 0x00600000 #define JET_bitLinkInstParadox 0x00700000 #define JET_bitLinkInstDbase 0x00800000 #define JET_bitLinkInstBtrieve 0x00900000 #define JET_bitFourByteBookmark 0x00000001 #define JET_bitContiguousBookmarks 0x00000002 /* Column data types */ #define JET_coltypNil 0 #define JET_coltypBit 1 /* True or False, Never NULL */ #define JET_coltypUnsignedByte 2 /* 1-byte integer, unsigned */ #define JET_coltypShort 3 /* 2-byte integer, signed */ #define JET_coltypLong 4 /* 4-byte integer, signed */ #define JET_coltypCurrency 5 /* 8 byte integer, signed */ #define JET_coltypIEEESingle 6 /* 4-byte IEEE single precision */ #define JET_coltypIEEEDouble 7 /* 8-byte IEEE double precision */ #define JET_coltypDateTime 8 /* Integral date, fractional time */ #define JET_coltypBinary 9 /* Binary data, < 255 bytes */ #define JET_coltypText 10 /* ANSI text, case insensitive, < 255 bytes */ #define JET_coltypLongBinary 11 /* Binary data, long value */ #define JET_coltypLongText 12 /* ANSI text, long value */ #define JET_coltypDatabase 13 /* Database name parameter */ #define JET_coltypTableid 14 /* Tableid parameter */ #define JET_coltypOLE 15 /* OLE blob */ #define JET_coltypGUID 15 #define JET_coltypMax 16 /* the number of column types */ /* used for validity tests and */ /* array declarations. */ /* Info levels for JetGetObjectInfo */ #define JET_ObjInfo 0U #define JET_ObjInfoListNoStats 1U #define JET_ObjInfoList 2U #define JET_ObjInfoSysTabCursor 3U #define JET_ObjInfoListACM 4U /* Blocked by JetGetObjectInfo */ #define JET_ObjInfoNoStats 5U #define JET_ObjInfoSysTabReadOnly 6U #define JET_ObjInfoRulesLoaded 7U #define JET_ObjInfoMax 8U /* Info levels for JetGetTableInfo */ #define JET_TblInfo 0U #define JET_TblInfoName 1U #define JET_TblInfoDbid 2U #define JET_TblInfoMostMany 3U #define JET_TblInfoRvt 4U #define JET_TblInfoOLC 5U #define JET_TblInfoResetOLC 6U #define JET_TblInfoSpaceUsage 7U #define JET_TblInfoDumpTable 8U #define JET_TblInfoSpaceAlloc 9U #define JET_TblInfoSpaceOwned 10U // OwnExt #define JET_TblInfoSpaceAvailable 11U // AvailExt /* Info levels for JetGetIndexInfo and JetGetTableIndexInfo */ #define JET_IdxInfo 0U #define JET_IdxInfoList 1U #define JET_IdxInfoSysTabCursor 2U #define JET_IdxInfoOLC 3U #define JET_IdxInfoResetOLC 4U #define JET_IdxInfoSpaceAlloc 5U #define JET_IdxInfoLangid 6U #define JET_IdxInfoCount 7U #define JET_IdxInfoVarSegMac 8U /* Info levels for JetGetReferenceInfo and JetGetTableReferenceInfo */ #define JET_ReferenceInfo 0U #define JET_ReferenceInfoReferencing 1U #define JET_ReferenceInfoReferenced 2U #define JET_ReferenceInfoAll 3U #define JET_ReferenceInfoCursor 4U /* Info levels for JetGetColumnInfo and JetGetTableColumnInfo */ #define JET_ColInfo 0U #define JET_ColInfoList 1U /* CONSIDER: Info level 2 is valid */ #define JET_ColInfoSysTabCursor 3U #define JET_ColInfoBase 4U #define JET_ColInfoListCompact 5U /* Attribute types for query definitions */ #define JET_qoaBeginDef 0 #define JET_qoaOperation 1 #define JET_qoaParameter 2 #define JET_qoaOptions 3 #define JET_qoaDatabase 4 #define JET_qoaInputTable 5 #define JET_qoaOutput 6 #define JET_qoaJoin 7 #define JET_qoaRestriction 8 #define JET_qoaGroup 9 #define JET_qoaGroupRstr 10 #define JET_qoaOrdering 11 #define JET_qoaEndDef 255 #define JET_qoaValidLeast JET_qoaOperation #define JET_qoaValidMost JET_qoaOrdering /* Query object options */ #define JET_bitFqoOutputAllCols 0x0001 #define JET_bitFqoRemoveDups 0x0002 #define JET_bitFqoOwnerAccess 0x0004 #define JET_bitFqoDistinctRow 0x0008 #define JET_bitFqoTop 0x0010 #define JET_bitFqoPercent 0x0020 #define JET_bitFqoCorresponding 0x0040 /* JET_qopSetOperation */ /* Query object join type */ #define JET_fjoinInner 1 #define JET_fjoinLeftOuter 2 #define JET_fjoinRightOuter 3 /* Query object operations */ #define JET_qopSelect 1 #define JET_qopSelectInto 2 #define JET_qopInsertSelection 3 #define JET_qopUpdate 4 #define JET_qopDelete 5 #define JET_qopTransform 6 #define JET_qopDDL 7 #define JET_qopSqlPassThrough 8 #define JET_qopSetOperation 9 #define JET_qopSPTBulk 10 #define JET_bitqopSelect 0x0000 #define JET_bitqopTransform 0x0010 #define JET_bitqopDelete 0x0020 #define JET_bitqopUpdate 0x0030 #define JET_bitqopInsertSelection 0x0040 #define JET_bitqopSelectInto 0x0050 #define JET_bitqopDDL 0x0060 #define JET_bitqopSqlPassThrough 0x0070 #define JET_bitqopSetOperation 0x0080 #define JET_bitqopSPTBulk 0x0090 /* Engine Object Types */ #define JET_objtypNil 0 #define JET_objtypTable 1 #define JET_objtypDb 2 #define JET_objtypContainer 3 #define JET_objtypSQLLink 4 #define JET_objtypQuery 5 #define JET_objtypLink 6 #define JET_objtypTemplate 7 #define JET_objtypRelationship 8 /* All types less than JET_objtypClientMin are reserved by JET */ #define JET_objtypClientMin 0x8000 /* Security Constant Values */ #define JET_cchUserNameMax 20 #define JET_cchPasswordMax 14 /* Security Access Masks */ #define JET_acmNoAccess 0x00000000L #define JET_acmFullAccess 0x000FFFFFL #define JET_acmSpecificMask 0x0000FFFFL #define JET_acmSpecific_1 0x00000001L #define JET_acmSpecific_2 0x00000002L #define JET_acmSpecific_3 0x00000004L #define JET_acmSpecific_4 0x00000008L #define JET_acmSpecific_5 0x00000010L #define JET_acmSpecific_6 0x00000020L #define JET_acmSpecific_7 0x00000040L #define JET_acmSpecific_8 0x00000080L #define JET_acmSpecific_9 0x00000100L #define JET_acmSpecific_10 0x00000200L #define JET_acmSpecific_11 0x00000400L #define JET_acmSpecific_12 0x00000800L #define JET_acmSpecific_13 0x00001000L #define JET_acmSpecific_14 0x00002000L #define JET_acmSpecific_15 0x00004000L #define JET_acmSpecific_16 0x00008000L #define JET_acmStandardMask 0x00FF0000L #define JET_acmDelete 0x00010000L #define JET_acmReadControl 0x00020000L #define JET_acmWriteDac 0x00040000L #define JET_acmWriteOwner 0x00080000L #define JET_acmTblCreate (JET_acmSpecific_1) #define JET_acmTblAccessRcols (JET_acmSpecific_2) #define JET_acmTblReadDef (JET_acmSpecific_3) #define JET_acmTblWriteDef (JET_acmSpecific_4) #define JET_acmTblRetrieveData (JET_acmSpecific_5) #define JET_acmTblInsertData (JET_acmSpecific_6) #define JET_acmTblReplaceData (JET_acmSpecific_7) #define JET_acmTblDeleteData (JET_acmSpecific_8) #define JET_acmDbCreate (JET_acmSpecific_1) #define JET_acmDbOpen (JET_acmSpecific_2) /* Compact Options */ #define JET_bitCompactDontCopyLocale 0x00000004 /* Don't copy locale from source to dest */ #define JET_bitCompactVersion10 0x00000008 /* Destination is version 1.0 format */ #define JET_bitCompactVersion1x 0x00000010 /* Destination is version 1.x format */ #define JET_bitCompactStats 0x00000020 /* Dump off-line compaction stats (only when progress meter also specified) */ /* On-line Compact Options */ #define JET_bitCompactOn 0x00000001 /* enable on-line compaction */ /* Repair Notification Types */ #define JET_rntSelfContained 0 #define JET_rntDeletedIndex 1 #define JET_rntDeletedRec 2 #define JET_rntDeletedLv 3 #define JET_rntTruncated 4 /* Status Notification Processes */ #define JET_snpIndex 0 #define JET_snpQuery 1 #define JET_snpRepair 2 #define JET_snpImex 3 #define JET_snpCompact 4 #define JET_snpFastFind 5 #define JET_snpODBCNotReady 6 #define JET_snpQuerySort 7 #define JET_snpRestore 8 #define JET_snpBackup 9 #define JET_snpUpgrade 10 /* Status Notification Types */ #define JET_sntProgress 0 /* callback for progress */ #define JET_sntMessage 1 #define JET_sntBulkRecords 2 /* callback for # rec for bulk op */ #define JET_sntFail 3 /* callback for failure during progress */ #define JET_sntErrCount 4 /* callback for err count */ #define JET_sntBegin 5 /* callback for beginning of operation */ #define JET_sntComplete 6 /* callback for completion of operation */ #define JET_sntCantRollback 7 /* callback for no rollback */ #define JET_sntRestoreMap 8 /* callback for restore map */ /* Message codes for JET_snpCompact */ #define JET_sncCopyObject 0 /* Starting to copy object */ #define JET_sncCopyFailed 1 /* Copy of this object failed */ #define JET_sncYield 2 /* Client can yield/check for user interrupt */ #define JET_sncTransactionFull 3 /* Client can yield/check for user interrupt */ #define JET_sncAboutToWrap 4 /* Find find is about to wrap */ /* Message codes for JET_snpODBCNotReady */ #define JET_sncODBCNotReady 0 /* Waiting for results from ODBC */ /* Constants for the [ODBC] section of JET.INI */ #define JET_SQLTraceCanonical 0x0001 /* Output ODBC Generic SQL */ /* Constants for the [Debug] section of JET.INI */ /* APITrace */ #define JET_APITraceEnter 0x0001 #define JET_APITraceExit 0x0002 #define JET_APITraceExitError 0x0004 #define JET_APIBreakOnError 0x0008 #define JET_APITraceCount 0x0010 #define JET_APITraceNoIdle 0x0020 #define JET_APITraceParameters 0x0040 /* IdleTrace */ #define JET_IdleTraceCursor 0x0001 #define JET_IdleTraceBuffer 0x0002 #define JET_IdleTraceFlush 0x0004 /* AssertAction */ #define JET_AssertExit 0x0000 /* Exit the application */ #define JET_AssertBreak 0x0001 /* Break to debugger */ #define JET_AssertMsgBox 0x0002 /* Display message box */ #define JET_AssertStop 0x0004 /* Alert and stop */ /* IOTrace */ #define JET_IOTraceAlloc 0x0001 /* DB Page Allocation */ #define JET_IOTraceFree 0x0002 /* DB Page Free */ #define JET_IOTraceRead 0x0004 /* DB Page Read */ #define JET_IOTraceWrite 0x0008 /* DB Page Write */ #define JET_IOTraceError 0x0010 /* DB Page I/O Error */ /* MemTrace */ #define JET_MemTraceAlloc 0x0001 /* Memory allocation */ #define JET_MemTraceRealloc 0x0002 /* Memory reallocation */ #define JET_MemTraceFree 0x0004 /* Memory free */ /* RmtTrace */ #define JET_RmtTraceError 0x0001 /* Remote server error message */ #define JET_RmtTraceSql 0x0002 /* Remote SQL Prepares & Exec's */ #define JET_RmtTraceAPI 0x0004 /* Remote ODBC API calls */ #define JET_RmtTraceODBC 0x0008 #define JET_RmtSyncODBC 0x0010 /* Turn on ODBC Sync mode */ /**********************************************************************/ /*********************** ERROR CODES **************************/ /**********************************************************************/ /* SUCCESS */ #define JET_errSuccess 0 /* Successful Operation */ /* ERRORS */ #define JET_wrnNyi -1 /* Function Not Yet Implemented */ /* SYSTEM errors /**/ #define JET_errRfsFailure -100 /* JET_errRfsFailure */ #define JET_errRfsNotArmed -101 /* JET_errRfsFailure */ #define JET_errFileClose -102 /* Could not close DOS file */ #define JET_errOutOfThreads -103 /* Could not start thread */ #define JET_errTooManyIO -105 /* System busy due to too many IOs */ #define JET_errDatabase200Format -106 /* 200 format database */ #define JET_errDatabase400Format -107 /* 400 format database */ /* BUFFER MANAGER errors /**/ #define wrnBFNotSynchronous 200 /* Buffer page evicted */ #define wrnBFPageNotFound 201 /* Page not found */ #define errBFInUse -202 /* Cannot abandon buffer */ #define wrnBFNewIO 203 /* Buffer access caused a new IO (cache miss) */ #define wrnBFCacheMiss 204 /* Buffer access was a cache miss but didn't cause a new IO */ #define wrnBFNoBufAvailable 205 /* Need to allocate new buffer for read (used in Async IO ) */ /* DIRECTORY MANAGER errors /**/ #define errPMOutOfPageSpace -300 /* Out of page space */ #define errPMItagTooBig -301 /* Itag too big */ #define errPMRecDeleted -302 /* Record deleted */ #define errPMTagsUsedUp -303 /* Tags used up */ #define wrnBMConflict 304 /* conflict in BM Clean up */ #define errDIRNoShortCircuit -305 /* No Short Circuit Avail */ #define errDIRCannotSplit -306 /* Cannot horizontally split FDP */ #define errDIRTop -307 /* Cannot go up */ #define errDIRFDP 308 /* On an FDP Node */ #define errDIRNotSynchronous -309 /* May have left critical section */ #define wrnDIREmptyPage 310 /* Moved through empty page */ #define errSPConflict -311 /* Device extent being extended */ #define wrnNDFoundLess 312 /* Found Less */ #define wrnNDFoundGreater 313 /* Found Greater */ #define errNDOutSonRange -314 /* Son out of range */ #define errNDOutItemRange -315 /* Item out of range */ #define errNDGreaterThanAllItems -316 /* Greater than all items */ #define errNDLastItemNode -317 /* Last node of item list */ #define errNDFirstItemNode -318 /* First node of item list */ #define wrnNDDuplicateItem 319 /* Duplicated Item */ #define errNDNoItem -320 /* Item not there */ #define JET_wrnRemainingVersions 321 /* Some versions couldn't be cleaned */ #define JET_errPreviousVersion -322 /* Version already existed */ #define JET_errPageBoundary -323 /* Reached Page Boundary */ #define JET_errKeyBoundary -324 /* Reached Key Boundary */ #define errDIRInPageFather -325 /* sridFather in page to free */ #define errBMMaxKeyInPage -326 /* used by OLC to avoid cleanup of parent pages */ #define JET_errBadPageLink -327 /* next/previous page link page does not point back to source */ #define JET_errBadBookmark -328 /* bookmark has no corresponding address in database */ #define wrnBMCleanNullOp 329 /* BMClean returns this on encountering a page */ /* deleted MaxKeyInPage [but there was no conflict] */ #define JET_errNTSystemCallFailed -334 // can not get OS version /* RECORD MANAGER errors /**/ #define wrnFLDKeyTooBig 400 /* Key too big (truncated it) */ #define errFLDTooManySegments -401 /* Too many key segments */ #define wrnFLDNullKey 402 /* Key is entirely NULL */ #define wrnFLDOutOfKeys 403 /* No more keys to extract */ #define wrnFLDNullSeg 404 /* Null segment in key */ #define wrnRECLongField 405 /* Separated long value */ #define JET_wrnSeparateLongValue 406 /* Separated long value */ #define JET_wrnRecordFoundGreater JET_wrnSeekNotEqual #define JET_wrnRecordFoundLess JET_wrnSeekNotEqual #define JET_errColumnIllegalNull JET_errNullInvalid #define wrnFLDNullFirstSeg 407 /* Null first segment in key */ #define JET_errKeyTooBig -408 /* Key with column truncation still truncated */ /* LOGGING/RECOVERY errors /**/ #define JET_errInvalidLoggedOperation -500 /* Logged operation cannot be redone */ #define JET_errLogFileCorrupt -501 /* Log file is corrupt */ #define errLGNoMoreRecords -502 /* Last log record read */ #define JET_errNoBackupDirectory -503 /* No backup directory given */ #define JET_errBackupDirectoryNotEmpty -504 /* The backup directory is not emtpy */ #define JET_errBackupInProgress -505 /* Backup is active already */ #define JET_errMissingPreviousLogFile -509 /* Missing the log file for check point */ #define JET_errLogWriteFail -510 /* Fail when writing to log file */ #define JET_errBadLogVersion -514 /* Version of log file is not compatible with Jet version */ #define JET_errInvalidLogSequence -515 /* Timestamp in next log does not match expected */ #define JET_errLoggingDisabled -516 /* Log is not active */ #define JET_errLogBufferTooSmall -517 /* Log buffer is too small for recovery */ #define errLGNotSynchronous -518 /* retry to LGLogRec */ #define JET_errLogSequenceEnd -519 /* Exceed maximum log file number */ #define JET_errNoBackup -520 /* No backup in progress */ #define JET_errInvalidBackupSequence -521 /* Backup call out of sequence */ #define JET_errBackupNotAllowedYet -523 /* Can not do backup now */ #define JET_errDeleteBackupFileFail -524 /* Could not delete backup file */ #define JET_errMakeBackupDirectoryFail -525 /* Could not make backup temp directory */ #define JET_errInvalidBackup -526 /* Cannot incremental backup when circular logging enabled */ #define JET_errRecoveredWithErrors -527 /* For repair, restored with errors */ #define JET_errMissingLogFile -528 /* current log file missing */ #define JET_errLogDiskFull -529 /* log disk full */ #define JET_errBadLogSignature -530 /* bad signature for a log file */ #define JET_errBadDbSignature -531 /* bad signature for a db file */ #define JET_errBadCheckpointSignature -532 /* bad signature for a checkpoint file */ #define JET_errCheckpointCorrupt -533 /* checkpoint file not found or corrupt */ #define JET_errMissingPatchPage -534 /* patch file page not found during recovery */ #define JET_errDatabaseInconsistent -550 /* database is in inconsistent state */ #define JET_errConsistentTimeMismatch -551 /* database last consistent time unmatched */ #define JET_errDatabasePatchFileMismatch -552 /* patch file is not generated from this backup */ #define JET_errEndingRestoreLogTooLow -553 /* the starting log number too low for the restore */ #define JET_errStartingRestoreLogTooHigh -554 /* the starting log number too high for the restore */ #define JET_errGivenLogFileHasBadSignature -555 /* Restore log file has bad signature */ #define JET_errGivenLogFileIsNotContiguous -556 /* Restore log file is not contiguous */ #define JET_errMissingRestoreLogFiles -557 /* Some restore log files are missing */ #define JET_wrnExistingLogFileHasBadSignature 558 /* Existing log file has bad signature */ #define JET_wrnExistingLogFileIsNotContiguous 559 /* Existing log file is not contiguous */ #define JET_errMissingFullBackup -560 /* The database miss a previous full backup befor incremental backup */ #define JET_errBadBackupDatabaseSize -561 /* The backup database size is not in 4k */ #define JET_errDatabaseAlreadyUpgraded -562 /* Attempted to upgrade a database that is already current */ #define JET_errTermInProgress -1000 /* Termination in progress */ #define JET_errFeatureNotAvailable -1001 /* API not supported */ #define JET_errInvalidName -1002 /* Invalid name */ #define JET_errInvalidParameter -1003 /* Invalid API parameter */ #define JET_wrnColumnNull 1004 /* Column is NULL-valued */ #define JET_wrnBufferTruncated 1006 /* Buffer too small for data */ #define JET_wrnDatabaseAttached 1007 /* Database is already attached */ #define JET_errDatabaseFileReadOnly -1008 /* Attach a readonly database file for read/write operations */ #define JET_wrnSortOverflow 1009 /* Sort does not fit in memory */ #define JET_errInvalidDatabaseId -1010 /* Invalid database id */ #define JET_errOutOfMemory -1011 /* Out of Memory */ #define JET_errOutOfDatabaseSpace -1012 /* Maximum database size reached */ #define JET_errOutOfCursors -1013 /* Out of table cursors */ #define JET_errOutOfBuffers -1014 /* Out of database page buffers */ #define JET_errTooManyIndexes -1015 /* Too many indexes */ #define JET_errTooManyKeys -1016 /* Too many columns in an index */ #define JET_errRecordDeleted -1017 /* Record has been deleted */ #define JET_errReadVerifyFailure -1018 /* Read verification error */ #define JET_errOutOfFileHandles -1020 /* Out of file handles */ #define JET_errDiskIO -1022 /* Disk IO error */ #define JET_errInvalidPath -1023 /* Invalid file path */ #define JET_errRecordTooBig -1026 /* Record larger than maximum size */ #define JET_errTooManyOpenDatabases -1027 /* Too many open databases */ #define JET_errInvalidDatabase -1028 /* Not a database file */ #define JET_errNotInitialized -1029 /* JetInit not yet called */ #define JET_errAlreadyInitialized -1030 /* JetInit already called */ #define JET_errFileAccessDenied -1032 /* Cannot access file */ #define JET_errQueryNotSupported -1034 /* Query support unavailable */ #define JET_errSQLLinkNotSupported -1035 /* SQL Link support unavailable */ #define JET_errBufferTooSmall -1038 /* Buffer is too small */ #define JET_wrnSeekNotEqual 1039 /* SeekLE or SeekGE didn't find exact match */ #define JET_errTooManyColumns -1040 /* Too many columns defined */ #define JET_errContainerNotEmpty -1043 /* Container is not empty */ #define JET_errInvalidFilename -1044 /* Filename is invalid */ #define JET_errInvalidBookmark -1045 /* Invalid bookmark */ #define JET_errColumnInUse -1046 /* Column used in an index */ #define JET_errInvalidBufferSize -1047 /* Data buffer doesn't match column size */ #define JET_errColumnNotUpdatable -1048 /* Cannot set column value */ #define JET_errIndexInUse -1051 /* Index is in use */ #define JET_errLinkNotSupported -1052 /* Link support unavailable */ #define JET_errNullKeyDisallowed -1053 /* Null keys are disallowed on index */ #define JET_errNotInTransaction -1054 /* Operation must be within a transaction */ #define JET_wrnNoErrorInfo 1055 /* No extended error information */ #define JET_wrnNoIdleActivity 1058 /* No idle activity occured */ #define JET_errTooManyActiveUsers -1059 /* Too many active database users */ #define JET_errInvalidAppend -1060 /* Cannot append long value */ #define JET_errInvalidCountry -1061 /* Invalid or unknown country code */ #define JET_errInvalidLanguageId -1062 /* Invalid or unknown language id */ #define JET_errInvalidCodePage -1063 /* Invalid or unknown code page */ #define JET_wrnNoWriteLock 1067 /* No write lock at transaction level 0 */ #define JET_wrnColumnSetNull 1068 /* Column set to NULL-value */ #define JET_errVersionStoreOutOfMemory -1069 /* lMaxVerPages exceeded (XJET only) */ #define JET_errCurrencyStackOutOfMemory -1070 /* lCSRPerfFUCB * lMaxCursors exceeded (XJET only) */ #define JET_errOutOfSessions -1101 /* Out of sessions */ #define JET_errWriteConflict -1102 /* Write lock failed due to outstanding write lock */ #define JET_errTransTooDeep -1103 /* Xactions nested too deeply */ #define JET_errInvalidSesid -1104 /* Invalid session handle */ #define JET_errSessionWriteConflict -1107 /* Another session has private version of page */ #define JET_errInTransaction -1108 /* Operation not allowed within a transaction */ #define JET_errRollbackRequired -1109 /* Must rollback current transaction -- cannot commit or begin a new one */ #define JET_errDatabaseDuplicate -1201 /* Database already exists */ #define JET_errDatabaseInUse -1202 /* Database in use */ #define JET_errDatabaseNotFound -1203 /* No such database */ #define JET_errDatabaseInvalidName -1204 /* Invalid database name */ #define JET_errDatabaseInvalidPages -1205 /* Invalid number of pages */ #define JET_errDatabaseCorrupted -1206 /* non-db file or corrupted db */ #define JET_errDatabaseLocked -1207 /* Database exclusively locked */ #define JET_errCannotDisableVersioning -1208 /* Cannot disable versioning for this database */ #define JET_wrnTableEmpty 1301 /* Open an empty table */ #define JET_errTableLocked -1302 /* Table is exclusively locked */ #define JET_errTableDuplicate -1303 /* Table already exists */ #define JET_errTableInUse -1304 /* Table is in use, cannot lock */ #define JET_errObjectNotFound -1305 /* No such table or object */ #define JET_errDensityInvalid -1307 /* Bad file/index density */ #define JET_errTableNotEmpty -1308 /* Cannot define clustered index */ #define JET_errInvalidTableId -1310 /* Invalid table id */ #define JET_errTooManyOpenTables -1311 /* Cannot open any more tables */ #define JET_errIllegalOperation -1312 /* Oper. not supported on table */ #define JET_errObjectDuplicate -1314 /* Table or object name in use */ #define JET_errInvalidObject -1316 /* object is invalid for operation */ #define JET_errIndexCantBuild -1401 /* Cannot build clustered index */ #define JET_errIndexHasPrimary -1402 /* Primary index already defined */ #define JET_errIndexDuplicate -1403 /* Index is already defined */ #define JET_errIndexNotFound -1404 /* No such index */ #define JET_errIndexMustStay -1405 /* Cannot delete clustered index */ #define JET_errIndexInvalidDef -1406 /* Illegal index definition */ #define JET_errIndexHasClustered -1408 /* Clustered index already defined */ #define JET_errInvalidCreateIndex -1409 /* Invali create index description */ #define JET_errTooManyOpenIndexes -1410 /* Out of index description blocks */ #define JET_errPrimaryIndexCorrupted -1413 /* Primary index is corrupt -- defrag required */ #define JET_errSecondaryIndexCorrupted -1414 /* Secondary index is corrupt -- defrag required */ #define JET_errColumnLong -1501 /* Column value is long */ #define JET_errColumnNoChunk -1502 /* no such chunk in long value */ #define JET_errColumnDoesNotFit -1503 /* Field will not fit in record */ #define JET_errNullInvalid -1504 /* Null not valid */ #define JET_errColumnIndexed -1505 /* Column indexed, cannot delete */ #define JET_errColumnTooBig -1506 /* Field length is > maximum */ #define JET_errColumnNotFound -1507 /* No such column */ #define JET_errColumnDuplicate -1508 /* Field is already defined */ #define JET_errColumn2ndSysMaint -1510 /* Second autoinc or version column */ #define JET_errInvalidColumnType -1511 /* Invalid column data type */ #define JET_wrnColumnMaxTruncated 1512 /* Max length too big, truncated */ #define JET_errColumnCannotIndex -1513 /* Cannot index Bit,LongText,LongBinary */ #define JET_errTaggedNotNULL -1514 /* No non-NULL tagged columns */ #define JET_errNoCurrentIndex -1515 /* Invalid w/o a current index */ #define JET_errKeyIsMade -1516 /* The key is completely made */ #define JET_errBadColumnId -1517 /* Column Id Incorrect */ #define JET_errBadItagSequence -1518 /* Bad itagSequence for tagged column */ #define JET_errColumnInRelationship -1519 /* Cannot delete, column participates in relationship */ #define JET_wrnCopyLongValue 1520 /* Single instance column bursted */ #define JET_errCannotBeTagged -1521 /* AutoIncrement and Version cannot be tagged */ #define JET_errRecordNotFound -1601 /* The key was not found */ #define JET_errRecordNoCopy -1602 /* No working buffer */ #define JET_errNoCurrentRecord -1603 /* Currency not on a record */ #define JET_errRecordClusteredChanged -1604 /* Clustered key may not change */ #define JET_errKeyDuplicate -1605 /* Illegal duplicate key */ #define JET_errAlreadyPrepared -1607 /* Already copy/clear current */ #define JET_errKeyNotMade -1608 /* No call to JetMakeKey */ #define JET_errUpdateNotPrepared -1609 /* No call to JetPrepareUpdate */ #define JET_wrnDataHasChanged 1610 /* Data has changed */ #define JET_errDataHasChanged -1611 /* Data has changed, operation aborted */ #define JET_wrnKeyChanged 1618 /* Moved to new key */ #define JET_errTooManySorts -1701 /* Too many sort processes */ #define JET_errInvalidOnSort -1702 /* Invalid operation on Sort */ #define JET_errTempFileOpenError -1803 /* Temp file could not be opened */ #define JET_errTooManyAttachedDatabases -1805 /* Too many open databases */ #define JET_errDiskFull -1808 /* No space left on disk */ #define JET_errPermissionDenied -1809 /* Permission denied */ #define JET_errFileNotFound -1811 /* File not found */ #define JET_wrnFileOpenReadOnly 1813 /* Database file is read only */ #define JET_errAfterInitialization -1850 /* Cannot Restore after init. */ #define JET_errLogCorrupted -1852 /* Logs could not be interpreted */ #define JET_errInvalidOperation -1906 /* invalid operation */ #define JET_errAccessDenied -1907 /* access denied */ #define JET_wrnIdleFull 1908 /* ilde registry full */ #define JET_errTooManySplits -1909 /* Infinite split. Call PSS */ #define JET_errSessionSharingViolation -1910 /* Multiple threads are using the same session */ /**********************************************************************/ /*********************** PROTOTYPES **************************/ /**********************************************************************/ #if !defined(_JET_NOPROTOTYPES) JET_ERR JET_API JetInit(JET_INSTANCE *pinstance); JET_ERR JET_API JetTerm(JET_INSTANCE instance); JET_ERR JET_API JetTerm2( JET_INSTANCE instance, JET_GRBIT grbit ); JET_ERR JET_API JetSetSystemParameter(JET_INSTANCE *pinstance, JET_SESID sesid, unsigned long paramid, unsigned long lParam, const char *sz); JET_ERR JET_API JetGetSystemParameter(JET_INSTANCE instance, JET_SESID sesid, unsigned long paramid, unsigned long *plParam, char *sz, unsigned long cbMax); #define ctAccessPage 1 #define ctLatchConflict 2 #define ctSplitRetry 3 #define ctNeighborPageScanned 4 #define ctSplits 5 JET_ERR JET_API JetResetCounter( JET_SESID sesid, long CounterType ); JET_ERR JET_API JetGetCounter( JET_SESID sesid, long CounterType, long *plValue ); JET_ERR JET_API JetBeginSession(JET_INSTANCE instance, JET_SESID *psesid, const char *szUserName, const char *szPassword); JET_ERR JET_API JetDupSession(JET_SESID sesid, JET_SESID *psesid); JET_ERR JET_API JetEndSession(JET_SESID sesid, JET_GRBIT grbit); JET_ERR JET_API JetGetVersion(JET_SESID sesid, unsigned long *pwVersion); JET_ERR JET_API JetIdle(JET_SESID sesid, JET_GRBIT grbit); JET_ERR JET_API JetCreateDatabase(JET_SESID sesid, const char *szFilename, const char *szConnect, JET_DBID *pdbid, JET_GRBIT grbit); JET_ERR JET_API JetAttachDatabase(JET_SESID sesid, const char *szFilename, JET_GRBIT grbit ); JET_ERR JET_API JetDetachDatabase(JET_SESID sesid, const char *szFilename); JET_ERR JET_API JetCreateTable(JET_SESID sesid, JET_DBID dbid, const char *szTableName, unsigned long lPages, unsigned long lDensity, JET_TABLEID *ptableid); JET_ERR JET_API JetCreateTableColumnIndex( JET_SESID sesid, JET_DBID dbid, JET_TABLECREATE *ptablecreate ); JET_ERR JET_API JetDeleteTable(JET_SESID sesid, JET_DBID dbid, const char *szTableName); JET_ERR JET_API JetGetTableColumnInfo(JET_SESID sesid, JET_TABLEID tableid, const char *szColumnName, void *pvResult, unsigned long cbMax, unsigned long InfoLevel); JET_ERR JET_API JetGetColumnInfo(JET_SESID sesid, JET_DBID dbid, const char *szTableName, const char *szColumnName, void *pvResult, unsigned long cbMax, unsigned long InfoLevel); JET_ERR JET_API JetAddColumn(JET_SESID sesid, JET_TABLEID tableid, const char *szColumn, const JET_COLUMNDEF *pcolumndef, const void *pvDefault, unsigned long cbDefault, JET_COLUMNID *pcolumnid); JET_ERR JET_API JetDeleteColumn(JET_SESID sesid, JET_TABLEID tableid, const char *szColumn); JET_ERR JET_API JetGetTableIndexInfo(JET_SESID sesid, JET_TABLEID tableid, const char *szIndexName, void *pvResult, unsigned long cbResult, unsigned long InfoLevel); JET_ERR JET_API JetGetTableInfo(JET_SESID sesid, JET_TABLEID tableid, void *pvResult, unsigned long cbMax, unsigned long InfoLevel); JET_ERR JET_API JetGetIndexInfo(JET_SESID sesid, JET_DBID dbid, const char *szTableName, const char *szIndexName, void *pvResult, unsigned long cbResult, unsigned long InfoLevel); JET_ERR JET_API JetCreateIndex(JET_SESID sesid, JET_TABLEID tableid, const char *szIndexName, JET_GRBIT grbit, const char *szKey, unsigned long cbKey, unsigned long lDensity); JET_ERR JET_API JetDeleteIndex(JET_SESID sesid, JET_TABLEID tableid, const char *szIndexName); JET_ERR JET_API JetGetObjectInfo(JET_SESID sesid, JET_DBID dbid, JET_OBJTYP objtyp, const char *szContainerName, const char *szObjectName, void *pvResult, unsigned long cbMax, unsigned long InfoLevel); JET_ERR JET_API JetBeginTransaction(JET_SESID sesid); JET_ERR JET_API JetCommitTransaction(JET_SESID sesid, JET_GRBIT grbit); JET_ERR JET_API JetRollback(JET_SESID sesid, JET_GRBIT grbit); JET_ERR JET_API JetGetDatabaseInfo(JET_SESID sesid, JET_DBID dbid, void *pvResult, unsigned long cbMax, unsigned long InfoLevel); JET_ERR JET_API JetCloseDatabase(JET_SESID sesid, JET_DBID dbid, JET_GRBIT grbit); JET_ERR JET_API JetCloseTable(JET_SESID sesid, JET_TABLEID tableid); JET_ERR JET_API JetOpenDatabase(JET_SESID sesid, const char *szFilename, const char *szConnect, JET_DBID *pdbid, JET_GRBIT grbit); JET_ERR JET_API JetOpenTable(JET_SESID sesid, JET_DBID dbid, const char *szTableName, const void *pvParameters, unsigned long cbParameters, JET_GRBIT grbit, JET_TABLEID *ptableid); JET_ERR JET_API JetDelete(JET_SESID sesid, JET_TABLEID tableid); JET_ERR JET_API JetUpdate(JET_SESID sesid, JET_TABLEID tableid, void *pvBookmark, unsigned long cbBookmark, unsigned long *pcbActual); JET_ERR JET_API JetRetrieveColumn(JET_SESID sesid, JET_TABLEID tableid, JET_COLUMNID columnid, void *pvData, unsigned long cbData, unsigned long *pcbActual, JET_GRBIT grbit, JET_RETINFO *pretinfo); JET_ERR JET_API JetRetrieveColumns( JET_SESID sesid, JET_TABLEID tableid, JET_RETRIEVECOLUMN *pretrievecolumn, unsigned long cretrievecolumn ); JET_ERR JET_API JetSetColumn(JET_SESID sesid, JET_TABLEID tableid, JET_COLUMNID columnid, const void *pvData, unsigned long cbData, JET_GRBIT grbit, JET_SETINFO *psetinfo); JET_ERR JET_API JetSetColumns(JET_SESID sesid, JET_TABLEID tableid, JET_SETCOLUMN *psetcolumn, unsigned long csetcolumn ); JET_ERR JET_API JetPrepareUpdate(JET_SESID sesid, JET_TABLEID tableid, unsigned long prep); JET_ERR JET_API JetGetRecordPosition(JET_SESID sesid, JET_TABLEID tableid, JET_RECPOS *precpos, unsigned long cbRecpos); JET_ERR JET_API JetGotoPosition(JET_SESID sesid, JET_TABLEID tableid, JET_RECPOS *precpos ); JET_ERR JET_API JetGetCursorInfo(JET_SESID sesid, JET_TABLEID tableid, void *pvResult, unsigned long cbMax, unsigned long InfoLevel); JET_ERR JET_API JetDupCursor(JET_SESID sesid, JET_TABLEID tableid, JET_TABLEID *ptableid, JET_GRBIT grbit); JET_ERR JET_API JetGetCurrentIndex(JET_SESID sesid, JET_TABLEID tableid, char *szIndexName, unsigned long cchIndexName); JET_ERR JET_API JetSetCurrentIndex(JET_SESID sesid, JET_TABLEID tableid, const char *szIndexName); JET_ERR JET_API JetSetCurrentIndex2(JET_SESID sesid, JET_TABLEID tableid, const char *szIndexName, JET_GRBIT grbit ); JET_ERR JET_API JetMove(JET_SESID sesid, JET_TABLEID tableid, long cRow, JET_GRBIT grbit); JET_ERR JET_API JetMakeKey(JET_SESID sesid, JET_TABLEID tableid, const void *pvData, unsigned long cbData, JET_GRBIT grbit); JET_ERR JET_API JetSeek(JET_SESID sesid, JET_TABLEID tableid, JET_GRBIT grbit); JET_ERR JET_API JetGetBookmark(JET_SESID sesid, JET_TABLEID tableid, void *pvBookmark, unsigned long cbMax, unsigned long *pcbActual); JET_ERR JET_API JetCompact(JET_SESID sesid, const char *szDatabaseSrc, const char *szDatabaseDest, JET_PFNSTATUS pfnStatus, JET_CONVERT *pconvert, JET_GRBIT grbit); JET_ERR JET_API JetDBUtilities( JET_DBUTIL *pdbutil ); JET_ERR JET_API JetGotoBookmark(JET_SESID sesid, JET_TABLEID tableid, void *pvBookmark, unsigned long cbBookmark); JET_ERR JET_API JetComputeStats(JET_SESID sesid, JET_TABLEID tableid); typedef unsigned long JET_VSESID; /* Received from dispatcher */ struct tagVDBFNDEF; typedef unsigned long JET_VDBID; /* Received from dispatcher */ struct tagVTFNDEF; typedef unsigned long JET_VTID; /* Received from dispatcher */ JET_ERR JET_API JetOpenTempTable(JET_SESID sesid, const JET_COLUMNDEF *prgcolumndef, unsigned long ccolumn, JET_GRBIT grbit, JET_TABLEID *ptableid, JET_COLUMNID *prgcolumnid); JET_ERR JET_API JetOpenTempTable2( JET_SESID sesid, const JET_COLUMNDEF *prgcolumndef, unsigned long ccolumn, unsigned long langid, JET_GRBIT grbit, JET_TABLEID *ptableid, JET_COLUMNID *prgcolumnid ); JET_ERR JET_API JetBackup( const char *szBackupPath, JET_GRBIT grbit, JET_PFNSTATUS pfnStatus ); JET_ERR JET_API JetRestore(const char *sz, JET_PFNSTATUS pfn ); JET_ERR JET_API JetRestore2(const char *sz, const char *szDest, JET_PFNSTATUS pfn ); JET_ERR JET_API JetSetIndexRange(JET_SESID sesid, JET_TABLEID tableidSrc, JET_GRBIT grbit); JET_ERR JET_API JetIndexRecordCount(JET_SESID sesid, JET_TABLEID tableid, unsigned long *pcrec, unsigned long crecMax ); JET_ERR JET_API JetRetrieveKey(JET_SESID sesid, JET_TABLEID tableid, void *pvData, unsigned long cbMax, unsigned long *pcbActual, JET_GRBIT grbit ); JET_ERR JET_API JetBeginExternalBackup( JET_GRBIT grbit ); JET_ERR JET_API JetGetAttachInfo( void *pv, unsigned long cbMax, unsigned long *pcbActual ); JET_ERR JET_API JetOpenFile( const char *szFileName, JET_HANDLE *phfFile, unsigned long *pulFileSizeLow, unsigned long *pulFileSizeHigh ); JET_ERR JET_API JetReadFile( JET_HANDLE hfFile, void *pv, unsigned long cb, unsigned long *pcb ); JET_ERR JET_API JetCloseFile( JET_HANDLE hfFile ); JET_ERR JET_API JetGetLogInfo( void *pv, unsigned long cbMax, unsigned long *pcbActual ); JET_ERR JET_API JetTruncateLog( void ); JET_ERR JET_API JetEndExternalBackup( void ); JET_ERR JET_API JetExternalRestore( char *szCheckpointFilePath, char *szLogPath, JET_RSTMAP *rgstmap, long crstfilemap, char *szBackupLogPath, long genLow, long genHigh, JET_PFNSTATUS pfn ); #endif /* _JET_NOPROTOTYPES */ #include #ifdef __cplusplus } #endif #endif /* _JET_INCLUDED */ #endif /* _USE_OLD_JET_H_ */