summaryrefslogtreecommitdiffstats
path: root/private/inc/jet500.h
diff options
context:
space:
mode:
authorAdam <you@example.com>2020-05-17 05:51:50 +0200
committerAdam <you@example.com>2020-05-17 05:51:50 +0200
commite611b132f9b8abe35b362e5870b74bce94a1e58e (patch)
treea5781d2ec0e085eeca33cf350cf878f2efea6fe5 /private/inc/jet500.h
downloadNT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.gz
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.bz2
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.lz
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.xz
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.zst
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.zip
Diffstat (limited to 'private/inc/jet500.h')
-rw-r--r--private/inc/jet500.h1807
1 files changed, 1807 insertions, 0 deletions
diff --git a/private/inc/jet500.h b/private/inc/jet500.h
new file mode 100644
index 000000000..e1faac33b
--- /dev/null
+++ b/private/inc/jet500.h
@@ -0,0 +1,1807 @@
+#if !defined(_JET_INCLUDED)
+#define _JET_INCLUDED
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if defined(_M_ALPHA)
+#pragma pack(8)
+#else
+#pragma pack(4)
+#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,
+ opDBUTILSetHeaderState,
+ opDBUTILDumpHeader,
+ opDBUTILDumpLogfile,
+ opDBUTILDumpCheckpoint
+ } 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 RPC_STRING [string]
+#else
+#define RPC_STRING
+typedef unsigned short WCHAR;
+#endif
+
+typedef struct
+ {
+ RPC_STRING char *szDatabaseName;
+ RPC_STRING char *szNewDatabaseName;
+ } JET_RSTMAP; /* restore map */
+
+/* required for Exchange unicode support
+/**/
+#define UNICODE_RSTMAP
+
+typedef struct tagJET_RSTMAPW {
+ RPC_STRING WCHAR *wszDatabaseName;
+
+ RPC_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) ["<base name>.<base ext>"] */
+#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_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 */
+#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
+
+ /* 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_wrnPreviousVersion 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]
+
+/* 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_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_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 */
+
+
+/**********************************************************************/
+/*********************** 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 */
+
+#pragma pack()
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _JET_INCLUDED */
+
+
+
+