mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
3785 lines
142 KiB
3785 lines
142 KiB
#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 <pshpack8.h>
|
|
#else
|
|
#include <pshpack4.h>
|
|
#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 <pshpack1.h>
|
|
#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 <poppack.h>
|
|
|
|
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) ["<base name>.<base ext>"] */
|
|
#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 <poppack.h>
|
|
|
|
#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 <pshpack8.h>
|
|
#else
|
|
#include <pshpack4.h>
|
|
#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) ["<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_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 <poppack.h>
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* _JET_INCLUDED */
|
|
|
|
|
|
#endif /* _USE_OLD_JET_H_ */
|