Headers diff for esent.dll between 5.2.3790.3959-Windows 5.0 and 6.0.6002.18005-Windows 6.0 versions



 esent.h (5.2.3790.3959-Windows 5.0)   esent.h (6.0.6002.18005-Windows 6.0) 
skipping to change at line 27 skipping to change at line 27
#pragma once #pragma once
#endif #endif
#if !defined(_JET_INCLUDED) #if !defined(_JET_INCLUDED)
#define _JET_INCLUDED #define _JET_INCLUDED
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
#ifdef WINVER #include <specstrings.h>
# if ( WINVER >= 0x0501 )
# define JET_VERSION_XP // JET_VERSION is similar to WINVER. It allows the most recent header to be used
# endif // WINVER >= 0x0502 // against older targets. Supported versions are:
# if ( WINVER >= 0x0502 ) // 0x0500 - Windows 2000
# define JET_VERSION_SERVER2003 // 0x0501 - Windows XP
# endif // WINVER >= 0x0502 // 0x0502 - Windows 2003
#else // !WINVER // 0x0600 - Windows Vista
// WINVER has not been specified. Assume all functions are available.
# define JET_VERSION_XP #ifndef JET_VERSION
# define JET_VERSION_SERVER2003 # ifdef WINVER
#endif // !WINVER # define JET_VERSION WINVER
# else
// JET_VERSION has not been specified. Assume all functions are available.
# define JET_VERSION 0x0600
# endif
#endif
#if defined(_M_AMD64) || defined(_M_IA64) #if defined(_M_AMD64) || defined(_M_IA64)
#include <pshpack8.h> #include <pshpack8.h>
#else #else
#include <pshpack4.h> #include <pshpack4.h>
#endif #endif
#pragma warning(push) #pragma warning(push)
#pragma warning(disable: 4201) // nonstandard extension used : name less struct/union #pragma warning(disable: 4201) // nonstandard extension used : name less struct/union
#define JET_API __stdcall #define JET_API __stdcall
#define JET_NODSAPI __stdcall #define JET_NODSAPI __stdcall
#ifdef _WIN64 #if defined(_WIN64)
typedef unsigned __int64 JET_API_PTR; typedef unsigned __int64 JET_API_PTR;
#elif !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && _MSC_VER >= 13
00
typedef __w64 unsigned long JET_API_PTR;
#else #else
typedef unsigned long JET_API_PTR; typedef unsigned long JET_API_PTR;
#endif #endif
typedef long JET_ERR; typedef long JET_ERR;
typedef JET_API_PTR JET_HANDLE; /* backup file handle */ typedef JET_API_PTR JET_HANDLE; /* backup file handle */
typedef JET_API_PTR JET_INSTANCE; /* Instance Identifier */ typedef JET_API_PTR JET_INSTANCE; /* Instance Identifier */
typedef JET_API_PTR JET_SESID; /* Session Identifier */ typedef JET_API_PTR JET_SESID; /* Session Identifier */
typedef JET_API_PTR JET_TABLEID; /* Table Identifier */ typedef JET_API_PTR JET_TABLEID; /* Table Identifier */
#ifdef JET_VERSION_XP #if ( JET_VERSION >= 0x0501 )
typedef JET_API_PTR JET_LS; /* Local Storage */ typedef JET_API_PTR JET_LS; /* Local Storage */
#endif // JET_VERSION_XP #endif // JET_VERSION >= 0x0501
typedef unsigned long JET_COLUMNID; /* Column Identifier */ typedef unsigned long JET_COLUMNID; /* Column Identifier */
typedef struct tagJET_INDEXID typedef struct tagJET_INDEXID
{ {
unsigned long cbStruct; unsigned long cbStruct;
unsigned char rgbIndexId[sizeof(JET_API_PTR)+sizeof(unsigned long)+size of(unsigned long)]; unsigned char rgbIndexId[sizeof(JET_API_PTR)+sizeof(unsigned long)+size of(unsigned long)];
} JET_INDEXID; } JET_INDEXID;
typedef unsigned long JET_DBID; /* Database Identifier */ typedef unsigned long JET_DBID; /* Database Identifier */
typedef unsigned long JET_OBJTYP; /* Object Type */ typedef unsigned long JET_OBJTYP; /* Object Type */
typedef unsigned long JET_COLTYP; /* Column Type */ typedef unsigned long JET_COLTYP; /* Column Type */
typedef unsigned long JET_GRBIT; /* Group of Bits */ typedef unsigned long JET_GRBIT; /* Group of Bits */
typedef unsigned long JET_SNP; /* Status Notification Process */ typedef unsigned long JET_SNP; /* Status Notification Process */
typedef unsigned long JET_SNT; /* Status Notification Type */ typedef unsigned long JET_SNT; /* Status Notification Type */
typedef double JET_DATESERIAL; /* JET_coltypDateTime format */ typedef double JET_DATESERIAL; /* JET_coltypDateTime format */
#ifdef JET_VERSION_XP #if ( JET_VERSION >= 0x0501 )
typedef unsigned long JET_CBTYP; /* Callback Types */ typedef unsigned long JET_CBTYP; /* Callback Types */
#endif // JET_VERSION_XP #endif // JET_VERSION >= 0x0501
typedef JET_ERR (__stdcall *JET_PFNSTATUS)(JET_SESID sesid, JET_SNP snp, JET_SNT typedef JET_ERR (JET_API *JET_PFNSTATUS)(
snt, void *pv); __in JET_SESID sesid,
__in JET_SNP snp,
__in JET_SNT snt,
__in_opt void * pv );
/* required to make RSTMAP RPC capable /* required to make RSTMAP RPC capable
/**/ /**/
#ifdef MIDL_PASS #ifdef MIDL_PASS
#define xRPC_STRING [string] #define xRPC_STRING [string]
#else #else
#define xRPC_STRING #define xRPC_STRING
#if !defined(_NATIVE_WCHAR_T_DEFINED) #if !defined(_NATIVE_WCHAR_T_DEFINED)
typedef unsigned short WCHAR; typedef unsigned short WCHAR;
#else #else
typedef wchar_t WCHAR; typedef wchar_t WCHAR;
#endif #endif
#endif #endif
typedef __nullterminated char * JET_PSTR; /* ASCII string (char *) null term
inated */
typedef __nullterminated const char * JET_PCSTR; /* const ASCII string (char
*) null terminated */
typedef __nullterminated WCHAR * JET_PWSTR; /* Unicode string (char *) null te
rminated */
typedef __nullterminated const WCHAR * JET_PCWSTR; /* const Unicode string (cha
r *) null terminated */
typedef struct typedef struct
{ {
xRPC_STRING char *szDatabaseName; xRPC_STRING char *szDatabaseName;
xRPC_STRING char *szNewDatabaseName; xRPC_STRING char *szNewDatabaseName;
} JET_RSTMAP; /* restore map */ } JET_RSTMAP_A; /* restore map */
typedef struct tagCONVERT typedef struct
{
xRPC_STRING WCHAR *szDatabaseName;
xRPC_STRING WCHAR *szNewDatabaseName;
} JET_RSTMAP_W; /* restore map */
#ifdef JET_UNICODE
#define JET_RSTMAP JET_RSTMAP_W
#else
#define JET_RSTMAP JET_RSTMAP_A
#endif
typedef struct tagCONVERT_A
{ {
char *szOldDll; char *szOldDll;
union union
{ {
unsigned long fFlags; unsigned long fFlags;
struct struct
{ {
unsigned long fSchemaChangesOnly:1; unsigned long fSchemaChangesOnly:1;
}; };
}; };
} JET_CONVERT; } JET_CONVERT_A;
typedef struct tagCONVERT_W
{
WCHAR *szOldDll;
union
{
unsigned long fFlags;
struct
{
unsigned long fSchemaChangesOnly:1;
};
};
} JET_CONVERT_W;
#ifdef JET_UNICODE
#define JET_CONVERT JET_CONVERT_W
#else
#define JET_CONVERT JET_CONVERT_A
#endif
// Online defragmentation options // Online defragmentation options
#define JET_bitDefragmentBatchStart 0x00000001 #define JET_bitDefragmentBatchStart 0x00000001
#define JET_bitDefragmentBatchStop 0x00000002 #define JET_bitDefragmentBatchStop 0x00000002
#ifdef JET_VERSION_XP #if ( JET_VERSION >= 0x0501 )
#define JET_bitDefragmentAvailSpaceTreesOnly 0x00000040 /* only defrag Av ailExt trees */ #define JET_bitDefragmentAvailSpaceTreesOnly 0x00000040 /* only defrag Av ailExt trees */
#endif // JET_VERSION_XP #endif // JET_VERSION >= 0x0501
#ifdef JET_VERSION_XP #if ( JET_VERSION >= 0x0501 )
/* Callback-function types */ /* Callback-function types */
#define JET_cbtypNull 0x0000000 0 #define JET_cbtypNull 0x0000000 0
#define JET_cbtypFinalize 0x0000000 1 /* a finalizable column has gone to zero */ #define JET_cbtypFinalize 0x0000000 1 /* a finalizable column has gone to zero */
#define JET_cbtypBeforeInsert 0x00000002 / * about to insert a record */ #define JET_cbtypBeforeInsert 0x00000002 / * about to insert a record */
#define JET_cbtypAfterInsert 0x00000004 / * finished inserting a record */ #define JET_cbtypAfterInsert 0x00000004 / * finished inserting a record */
#define JET_cbtypBeforeReplace 0x00000008 / * about to modify a record */ #define JET_cbtypBeforeReplace 0x00000008 / * about to modify a record */
#define JET_cbtypAfterReplace 0x00000010 / * finished modifying a record */ #define JET_cbtypAfterReplace 0x00000010 / * finished modifying a record */
#define JET_cbtypBeforeDelete 0x00000020 / * about to delete a record */ #define JET_cbtypBeforeDelete 0x00000020 / * about to delete a record */
#define JET_cbtypAfterDelete 0x00000040 / * finished deleting the record */ #define JET_cbtypAfterDelete 0x00000040 / * finished deleting the record */
#define JET_cbtypUserDefinedDefaultValue 0x00000080 /* calcul ating a user-defined default */ #define JET_cbtypUserDefinedDefaultValue 0x00000080 /* calcul ating a user-defined default */
#define JET_cbtypOnlineDefragCompleted 0x00000100 /* a call to JetDefragment2 has completed */ #define JET_cbtypOnlineDefragCompleted 0x00000100 /* a call to JetDefragment2 has completed */
#define JET_cbtypFreeCursorLS 0x00000200 / * the Local Storage associated with a cursor must be freed */ #define JET_cbtypFreeCursorLS 0x00000200 / * the Local Storage associated with a cursor must be freed */
#define JET_cbtypFreeTableLS 0x00000400 / * the Local Storage associated with a table must be freed */ #define JET_cbtypFreeTableLS 0x00000400 / * the Local Storage associated with a table must be freed */
/* Callback-function prototype */ /* Callback-function prototype */
typedef JET_ERR (__stdcall *JET_CALLBACK)( typedef JET_ERR (JET_API *JET_CALLBACK)(
JET_SESID sesid, __in JET_SESID sesid,
JET_DBID dbid, __in JET_DBID dbid,
JET_TABLEID tableid, __in JET_TABLEID tableid,
JET_CBTYP cbtyp, __in JET_CBTYP cbtyp,
void * pvArg1, __inout_opt void * pvArg1,
void * pvArg2, __inout_opt void * pvArg2,
void * pvContext, __in_opt void * pvContext,
JET_API_PTR ulUnused ); __in JET_API_PTR ulUnused );
#endif // JET_VERSION_XP #endif // JET_VERSION >= 0x0501
/* Status Notification Structures */ /* Status Notification Structures */
typedef struct /* Status Notification Progress */ typedef struct /* Status Notification Progress */
{ {
unsigned long cbStruct; /* Size of this structure */ unsigned long cbStruct; /* Size of this structure */
unsigned long cunitDone; /* Number of units of work completed */ unsigned long cunitDone; /* Number of units of work completed */
unsigned long cunitTotal; /* Total number of units of work */ unsigned long cunitTotal; /* Total number of units of work */
} JET_SNPROG; } JET_SNPROG;
skipping to change at line 207 skipping to change at line 254
unsigned long flags; unsigned long flags;
unsigned long cRecord; unsigned long cRecord;
unsigned long cPage; unsigned long cPage;
} JET_OBJECTINFO; } JET_OBJECTINFO;
/* The following flags appear in the grbit field above */ /* The following flags appear in the grbit field above */
#define JET_bitTableInfoUpdatable 0x00000001 #define JET_bitTableInfoUpdatable 0x00000001
#define JET_bitTableInfoBookmark 0x00000002 #define JET_bitTableInfoBookmark 0x00000002
#define JET_bitTableInfoRollback 0x00000004 #define JET_bitTableInfoRollback 0x00000004
#define JET_bitTableSequential 0x00008000
/* The following flags occur in the flags field above */ /* The following flags occur in the flags field above */
#define JET_bitObjectSystem 0x80000000 // Internal use o nly #define JET_bitObjectSystem 0x80000000 // Internal use o nly
#define JET_bitObjectTableFixedDDL 0x40000000 // Table's DDL is fixed #define JET_bitObjectTableFixedDDL 0x40000000 // Table's DDL is fixed
#define JET_bitObjectTableTemplate 0x20000000 // Table's DDL is inherit able (implies FixedDDL) #define JET_bitObjectTableTemplate 0x20000000 // Table's DDL is inherit able (implies FixedDDL)
#define JET_bitObjectTableDerived 0x10000000 // Table's DDL is inherit ed from a template table #define JET_bitObjectTableDerived 0x10000000 // Table's DDL is inherit ed from a template table
#ifdef JET_VERSION_XP #if ( JET_VERSION >= 0x0501 )
#define JET_bitObjectTableNoFixedVarColumnsInDerivedTables 0x04000000 / / used in conjunction with JET_bitObjectTableTemplate #define JET_bitObjectTableNoFixedVarColumnsInDerivedTables 0x04000000 / / used in conjunction with JET_bitObjectTableTemplate
/
// to disall / to disallow fixed/var columns in derived tables (so that
ow fixed/var columns in derived tables (so that /
/ fixed/var columns may be added to the template in the future)
// fixed/var #endif // JET_VERSION >= 0x0501
columns may be added to the template in the future)
#endif // JET_VERSION_XP
typedef struct typedef struct
{ {
unsigned long cbStruct; unsigned long cbStruct;
JET_TABLEID tableid; JET_TABLEID tableid;
unsigned long cRecord; unsigned long cRecord;
JET_COLUMNID columnidcontainername; JET_COLUMNID columnidcontainername;
JET_COLUMNID columnidobjectname; JET_COLUMNID columnidobjectname;
JET_COLUMNID columnidobjtyp; JET_COLUMNID columnidobjtyp;
JET_COLUMNID columniddtCreate; // XXX -- to be deleted JET_COLUMNID columniddtCreate; // XXX -- to be deleted
skipping to change at line 288 skipping to change at line 334
JET_COLUMNID columnid; JET_COLUMNID columnid;
JET_COLTYP coltyp; JET_COLTYP coltyp;
unsigned short wCountry; unsigned short wCountry;
unsigned short langid; unsigned short langid;
unsigned short cp; unsigned short cp;
unsigned short wFiller; /* Must be 0 */ unsigned short wFiller; /* Must be 0 */
unsigned long cbMax; unsigned long cbMax;
JET_GRBIT grbit; JET_GRBIT grbit;
char szBaseTableName[256]; char szBaseTableName[256];
char szBaseColumnName[256]; char szBaseColumnName[256];
} JET_COLUMNBASE; } JET_COLUMNBASE_A;
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;
WCHAR szBaseTableName[256];
WCHAR szBaseColumnName[256];
} JET_COLUMNBASE_W;
#ifdef JET_UNICODE
#define JET_COLUMNBASE JET_COLUMNBASE_W
#else
#define JET_COLUMNBASE JET_COLUMNBASE_A
#endif
typedef struct typedef struct
{ {
unsigned long cbStruct; unsigned long cbStruct;
JET_TABLEID tableid; JET_TABLEID tableid;
unsigned long cRecord; unsigned long cRecord;
JET_COLUMNID columnidindexname; JET_COLUMNID columnidindexname;
JET_COLUMNID columnidgrbitIndex; JET_COLUMNID columnidgrbitIndex;
JET_COLUMNID columnidcKey; JET_COLUMNID columnidcKey;
JET_COLUMNID columnidcEntry; JET_COLUMNID columnidcEntry;
skipping to change at line 315 skipping to change at line 382
JET_COLUMNID columnidLangid; JET_COLUMNID columnidLangid;
JET_COLUMNID columnidCp; JET_COLUMNID columnidCp;
JET_COLUMNID columnidCollate; JET_COLUMNID columnidCollate;
JET_COLUMNID columnidgrbitColumn; JET_COLUMNID columnidgrbitColumn;
JET_COLUMNID columnidcolumnname; JET_COLUMNID columnidcolumnname;
JET_COLUMNID columnidLCMapFlags; JET_COLUMNID columnidLCMapFlags;
} JET_INDEXLIST; } JET_INDEXLIST;
#define cIndexInfoCols 15 #define cIndexInfoCols 15
typedef struct tag_JET_COLUMNCREATE typedef struct tag_JET_COLUMNCREATE_A
{ {
unsigned long cbStruct; // size of this s tructure (for future expansion) unsigned long cbStruct; // size of this s tructure (for future expansion)
char *szColumnName; // column name char *szColumnName; // column name
JET_COLTYP coltyp; // column type JET_COLTYP coltyp; // column type
unsigned long cbMax; // the maximum le ngth of this column (only relevant for binary and text columns) unsigned long cbMax; // the maximum le ngth of this column (only relevant for binary and text columns)
JET_GRBIT grbit; // column options JET_GRBIT grbit; // column options
void *pvDefault; // defaul t value (NULL if none) void *pvDefault; // defaul t value (NULL if none)
unsigned long cbDefault; // length of defa ult value unsigned long cbDefault; // length of defa ult value
unsigned long cp; // code p age (for text columns only) unsigned long cp; // code p age (for text columns only)
JET_COLUMNID columnid; // returned colum n id JET_COLUMNID columnid; // returned colum n id
JET_ERR err; // return ed error code JET_ERR err; // return ed error code
} JET_COLUMNCREATE; } JET_COLUMNCREATE_A;
#ifdef JET_VERSION_XP typedef struct tag_JET_COLUMNCREATE_W
{
unsigned long cbStruct; // size of this s
tructure (for future expansion)
WCHAR *szColumnName; // column name
JET_COLTYP coltyp; // column
type
unsigned long cbMax; // the maximum le
ngth of this column (only relevant for binary and text columns)
JET_GRBIT grbit; // column
options
void *pvDefault; // defaul
t value (NULL if none)
unsigned long cbDefault; // length of defa
ult value
unsigned long cp; // code p
age (for text columns only)
JET_COLUMNID columnid; // returned colum
n id
JET_ERR err; // return
ed error code
} JET_COLUMNCREATE_W;
#ifdef JET_UNICODE
#define JET_COLUMNCREATE JET_COLUMNCREATE_W
#else
#define JET_COLUMNCREATE JET_COLUMNCREATE_A
#endif
#if ( JET_VERSION >= 0x0501 )
// This is the information needed to create a column with a user-defined defaul t. It should be passed in using // This is the information needed to create a column with a user-defined defaul t. It should be passed in using
// the pvDefault and cbDefault in a JET_COLUMNCREATE structure // the pvDefault and cbDefault in a JET_COLUMNCREATE structure
typedef struct tag_JET_USERDEFINEDDEFAULT
typedef struct tag_JET_USERDEFINEDDEFAULT_A
{ {
char * szCallback; char * szCallback;
unsigned char * pbUserData; unsigned char * pbUserData;
unsigned long cbUserData; unsigned long cbUserData;
char * szDependantColumns; char * szDependantColumns;
} JET_USERDEFINEDDEFAULT; } JET_USERDEFINEDDEFAULT_A;
#endif // JET_VERSION_XP
typedef struct tagJET_CONDITIONALCOLUMN typedef struct tag_JET_USERDEFINEDDEFAULT_W
{
WCHAR * szCallback;
unsigned char * pbUserData;
unsigned long cbUserData;
WCHAR * szDependantColumns;
} JET_USERDEFINEDDEFAULT_W;
#ifdef JET_UNICODE
#define JET_USERDEFINEDDEFAULT JET_USERDEFINEDDEFAULT_W
#else
#define JET_USERDEFINEDDEFAULT JET_USERDEFINEDDEFAULT_A
#endif
#endif // JET_VERSION >= 0x0501
typedef struct tagJET_CONDITIONALCOLUMN_A
{ {
unsigned long cbStruct; // size of this s tructure (for future expansion) unsigned long cbStruct; // size of this s tructure (for future expansion)
char *szColumnName; // column that we are conditionally indexed on char *szColumnName; // column that we are conditionally indexed on
JET_GRBIT grbit; // condit ional column options JET_GRBIT grbit; // condit ional column options
} JET_CONDITIONALCOLUMN; } JET_CONDITIONALCOLUMN_A;
typedef struct tagJET_CONDITIONALCOLUMN_W
{
unsigned long cbStruct; // size of this s
tructure (for future expansion)
WCHAR *szColumnName; // column that we
are conditionally indexed on
JET_GRBIT grbit; // condit
ional column options
} JET_CONDITIONALCOLUMN_W;
#ifdef JET_UNICODE
#define JET_CONDITIONALCOLUMN JET_CONDITIONALCOLUMN_W
#else
#define JET_CONDITIONALCOLUMN JET_CONDITIONALCOLUMN_A
#endif
typedef struct tagJET_UNICODEINDEX typedef struct tagJET_UNICODEINDEX
{ {
unsigned long lcid; unsigned long lcid;
unsigned long dwMapFlags; unsigned long dwMapFlags;
} JET_UNICODEINDEX; } JET_UNICODEINDEX;
#ifdef JET_VERSION_SERVER2003 #if ( JET_VERSION >= 0x0502 )
typedef struct tagJET_TUPLELIMITS typedef struct tagJET_TUPLELIMITS
{ {
unsigned long chLengthMin; unsigned long chLengthMin;
unsigned long chLengthMax; unsigned long chLengthMax;
unsigned long chToIndexMax; unsigned long chToIndexMax;
#if ( JET_VERSION >= 0x0600 )
unsigned long cchIncrement;
unsigned long ichStart;
#endif // JET_VERSION >= 0x0600
} JET_TUPLELIMITS; } JET_TUPLELIMITS;
#endif // JET_VERSION_SERVER2003 #endif // JET_VERSION >= 0x0502
typedef struct tagJET_INDEXCREATE typedef struct tagJET_INDEXCREATE_A
{ {
unsigned long cbStruct; / / size of this structure (for future expansion) unsigned long cbStruct; / / size of this structure (for future expansion)
char *szIndexName; / / index name char *szIndexName; / / index name
char *szKey; char *szKey;
// index key // index key definition
unsigned long cbKey; / unsigned long cbKey; /
/ length of key / size of key definition in szKey
JET_GRBIT grbit; // index options JET_GRBIT grbit; // index options
unsigned long ulDensity; / / index density unsigned long ulDensity; / / index density
union union
{ {
unsigned long lcid; / / lcid for the index (if JET_bitIndexUnicode NOT specified) unsigned long lcid; / / lcid for the index (if JET_bitIndexUnicode NOT specified)
JET_UNICODEINDEX *pidxunicode; // pointe r to JET_UNICODEINDEX struct (if JET_bitIndexUnicode specified) JET_UNICODEINDEX *pidxunicode; // pointe r to JET_UNICODEINDEX struct (if JET_bitIndexUnicode specified)
}; };
union union
{ {
unsigned long cbVarSegMac; // maximu m length of variable length columns in index key (if JET_bitIndexTupleLimits spe cified) unsigned long cbVarSegMac; // maximu m length of variable length columns in index key (if JET_bitIndexTupleLimits spe cified)
#ifdef JET_VERSION_SERVER2003 #if ( JET_VERSION >= 0x0502 )
JET_TUPLELIMITS *ptuplelimits; // pointe r to JET_TUPLELIMITS struct (if JET_bitIndexTupleLimits specified) JET_TUPLELIMITS *ptuplelimits; // pointe r to JET_TUPLELIMITS struct (if JET_bitIndexTupleLimits specified)
#endif // ! JET_VERSION_SERVER2003 #endif // ! JET_VERSION >= 0x0502
}; };
JET_CONDITIONALCOLUMN *rgconditionalcolumn; // pointer to conditional column structure JET_CONDITIONALCOLUMN_A *rgconditionalcolumn; // pointer to conditional column structure
unsigned long cConditionalColumn; // number of conditional columns unsigned long cConditionalColumn; // number of conditional columns
JET_ERR err; // returned error code JET_ERR err; // returned error code
} JET_INDEXCREATE; #if ( JET_VERSION >= 0x0600 )
unsigned long cbKeyMost; /
/ size of key preserved in index, e.g. without truncation (if JET_bitIndexKeyMos
t specified)
#endif // JET_VERSION >= 0x0600
} JET_INDEXCREATE_A;
typedef struct tagJET_TABLECREATE typedef struct tagJET_INDEXCREATE_W
{
unsigned long cbStruct; /
/ size of this structure (for future expansion)
WCHAR *szIndexName; /
/ index name
WCHAR *szKey;
// index key definition
unsigned long cbKey; /
/ size of key definition in szKey
JET_GRBIT grbit;
// index options
unsigned long ulDensity; /
/ index density
union
{
unsigned long lcid; /
/ lcid for the index (if JET_bitIndexUnicode NOT specified)
JET_UNICODEINDEX *pidxunicode; // pointe
r to JET_UNICODEINDEX struct (if JET_bitIndexUnicode specified)
};
union
{
unsigned long cbVarSegMac; // maximu
m length of variable length columns in index key (if JET_bitIndexTupleLimits spe
cified)
#if ( JET_VERSION >= 0x0502 )
JET_TUPLELIMITS *ptuplelimits; // pointe
r to JET_TUPLELIMITS struct (if JET_bitIndexTupleLimits specified)
#endif // ! JET_VERSION >= 0x0502
};
JET_CONDITIONALCOLUMN_W *rgconditionalcolumn; // pointer to conditional
column structure
unsigned long cConditionalColumn; // number
of conditional columns
JET_ERR err;
// returned error code
#if ( JET_VERSION >= 0x0600 )
unsigned long cbKeyMost; /
/ size of key preserved in index, e.g. without truncation (if JET_bitIndexKeyMos
t specified)
#endif // JET_VERSION >= 0x0600
} JET_INDEXCREATE_W;
#ifdef JET_UNICODE
#define JET_INDEXCREATE JET_INDEXCREATE_W
#else
#define JET_INDEXCREATE JET_INDEXCREATE_A
#endif
typedef struct tagJET_TABLECREATE_A
{ {
unsigned long cbStruct; // size o f this structure (for future expansion) unsigned long cbStruct; // size o f this structure (for future expansion)
char *szTableName; // name o f table to create. char *szTableName; // name o f table to create.
char *szTemplateTableName; // name of table from which to inherit base DDL char *szTemplateTableName; // name of table from which to inherit base DDL
unsigned long ulPages; // initia l pages to allocate for table. unsigned long ulPages; // initia l pages to allocate for table.
unsigned long ulDensity; // table density. unsigned long ulDensity; // table density.
JET_COLUMNCREATE *rgcolumncreate; // array of colum n creation info JET_COLUMNCREATE_A *rgcolumncreate; // array of colum n creation info
unsigned long cColumns; // number of columns to create unsigned long cColumns; // number of columns to create
JET_INDEXCREATE *rgindexcreate; // array of index creation info JET_INDEXCREATE_A *rgindexcreate; // array of index creation info
unsigned long cIndexes; // number of indexes to create unsigned long cIndexes; // number of indexes to create
JET_GRBIT grbit; JET_GRBIT grbit;
JET_TABLEID tableid; / / returned tableid. JET_TABLEID tableid; / / returned tableid.
unsigned long cCreated; // count of objects created (columns+table+indexes). unsigned long cCreated; // count of objects created (columns+table+indexes).
} JET_TABLECREATE; } JET_TABLECREATE_A;
#ifdef JET_VERSION_XP typedef struct tagJET_TABLECREATE_W
typedef struct tagJET_TABLECREATE2 {
unsigned long cbStruct; // size o
f this structure (for future expansion)
WCHAR *szTableName; // name o
f table to create.
WCHAR *szTemplateTableName; // name of table
from which to inherit base DDL
unsigned long ulPages; // initia
l pages to allocate for table.
unsigned long ulDensity; // table
density.
JET_COLUMNCREATE_W *rgcolumncreate; // array of colum
n creation info
unsigned long cColumns; // number
of columns to create
JET_INDEXCREATE_W *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_W;
#ifdef JET_UNICODE
#define JET_TABLECREATE JET_TABLECREATE_W
#else
#define JET_TABLECREATE JET_TABLECREATE_A
#endif
#if ( JET_VERSION >= 0x0501 )
typedef struct tagJET_TABLECREATE2_A
{ {
unsigned long cbStruct; // size o f this structure (for future expansion) unsigned long cbStruct; // size o f this structure (for future expansion)
char *szTableName; // name o f table to create. char *szTableName; // name o f table to create.
char *szTemplateTableName; // name of table from which to inherit base DDL char *szTemplateTableName; // name of table from which to inherit base DDL
unsigned long ulPages; // initia l pages to allocate for table. unsigned long ulPages; // initia l pages to allocate for table.
unsigned long ulDensity; // table density. unsigned long ulDensity; // table density.
JET_COLUMNCREATE *rgcolumncreate; // array of colum n creation info JET_COLUMNCREATE_A *rgcolumncreate; // array of colum n creation info
unsigned long cColumns; // number of columns to create unsigned long cColumns; // number of columns to create
JET_INDEXCREATE *rgindexcreate; // array of index creation info JET_INDEXCREATE_A *rgindexcreate; // array of index creation info
unsigned long cIndexes; // number of indexes to create unsigned long cIndexes; // number of indexes to create
char *szCallback; // callba ck to use for this table char *szCallback; // callba ck to use for this table
JET_CBTYP cbtyp; / / when the callback should be called JET_CBTYP cbtyp; / / when the callback should be called
JET_GRBIT grbit; JET_GRBIT grbit;
JET_TABLEID tableid; / / returned tableid. JET_TABLEID tableid; / / returned tableid.
unsigned long cCreated; // count of objects created (columns+table+indexes+callbacks). unsigned long cCreated; // count of objects created (columns+table+indexes+callbacks).
} JET_TABLECREATE2; } JET_TABLECREATE2_A;
#endif // JET_VERSION_XP
typedef struct tagJET_TABLECREATE2_W
{
unsigned long cbStruct; // size o
f this structure (for future expansion)
WCHAR *szTableName; // name o
f table to create.
WCHAR *szTemplateTableName; // name of table
from which to inherit base DDL
unsigned long ulPages; // initia
l pages to allocate for table.
unsigned long ulDensity; // table
density.
JET_COLUMNCREATE_W *rgcolumncreate; // array of colum
n creation info
unsigned long cColumns; // number
of columns to create
JET_INDEXCREATE_W *rgindexcreate; // array of index
creation info
unsigned long cIndexes; // number
of indexes to create
WCHAR *szCallback; // callba
ck to use for this table
JET_CBTYP cbtyp; /
/ when the callback should be called
JET_GRBIT grbit;
JET_TABLEID tableid; /
/ returned tableid.
unsigned long cCreated; // count
of objects created (columns+table+indexes+callbacks).
} JET_TABLECREATE2_W;
#ifdef JET_UNICODE
#define JET_TABLECREATE2 JET_TABLECREATE2_W
#else
#define JET_TABLECREATE2 JET_TABLECREATE2_A
#endif
#endif // JET_VERSION >= 0x0501
#if ( JET_VERSION >= 0x0600 )
typedef struct tagJET_OPENTEMPORARYTABLE
{
unsigned long cbStruct; // size o
f this structure (for future expansion)
const JET_COLUMNDEF *prgcolumndef;
unsigned long ccolumn;
JET_UNICODEINDEX *pidxunicode;
JET_GRBIT grbit;
JET_COLUMNID *prgcolumnid;
unsigned long cbKeyMost;
unsigned long cbVarSegMac;
JET_TABLEID tableid;
} JET_OPENTEMPORARYTABLE;
#endif // JET_VERSION >= 0x0600
typedef struct typedef struct
{ {
unsigned long cbStruct; unsigned long cbStruct;
unsigned long ibLongValue; unsigned long ibLongValue;
unsigned long itagSequence; unsigned long itagSequence;
JET_COLUMNID columnidNextTagged; JET_COLUMNID columnidNextTagged;
} JET_RETINFO; } JET_RETINFO;
typedef struct typedef struct
skipping to change at line 479 skipping to change at line 701
char bSeconds; // 0 - 60 char bSeconds; // 0 - 60
char bMinutes; // 0 - 60 char bMinutes; // 0 - 60
char bHours; // 0 - 24 char bHours; // 0 - 24
char bDay; // 1 - 31 char bDay; // 1 - 31
char bMonth; // 0 - 11 char bMonth; // 0 - 11
char bYear; // current y ear - 1900 char bYear; // current y ear - 1900
char bFiller1; char bFiller1;
char bFiller2; char bFiller2;
} JET_LOGTIME; } JET_LOGTIME;
#if ( JET_VERSION >= 0x0600 )
// the JET_BKLOGTIME is an extention of JET_LOGTIME to be used
// in the JET_BKINFO structure. They should have the same size for
// compatibility reasons
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 y
ear - 1900
char bFiller1;
union
{
char bFiller2;
struct
{
unsigned char fOSSnapshot:1;
unsigned char fReserved:7;
};
};
} JET_BKLOGTIME;
#endif // JET_VERSION >= 0x0600
typedef struct typedef struct
{ {
unsigned short ib; // must be the last so th at lgpos can unsigned short ib; // must be the last so th at lgpos can
unsigned short isec; // index of disksec starting logs ec unsigned short isec; // index of disksec starting logs ec
long lGeneration; // generation of logsec long lGeneration; // generation of logsec
} JET_LGPOS; // be casted to TIME. } JET_LGPOS; // be casted to TIME.
typedef struct typedef struct
{ {
unsigned long ulRandom; // a random number unsigned long ulRandom; // a random number
JET_LOGTIME logtimeCreate; // time db created, in logtime format JET_LOGTIME logtimeCreate; // time db created, in logtime format
char szComputerName[ JET_MAX_COMPUTERNAME_LENGTH + 1 ] ; // where db is created char szComputerName[ JET_MAX_COMPUTERNAME_LENGTH + 1 ] ; // where db is created
} JET_SIGNATURE; } JET_SIGNATURE;
typedef struct typedef struct
{ {
JET_LGPOS lgposMark; // id for th is backup JET_LGPOS lgposMark; // id for th is backup
JET_LOGTIME logtimeMark; union
{
JET_LOGTIME logtimeMark;
#if ( JET_VERSION >= 0x0600 )
JET_BKLOGTIME bklogtimeMark;
#endif // JET_VERSION >= 0x0600
};
unsigned long genLow; unsigned long genLow;
unsigned long genHigh; unsigned long genHigh;
} JET_BKINFO; } JET_BKINFO;
#include <poppack.h> #include <poppack.h>
typedef struct { typedef struct {
unsigned long ulVersion; // version of DAE the db cre ated (see ulDAEVersion) unsigned long ulVersion; // version of DAE the db cre ated (see ulDAEVersion)
unsigned long ulUpdate; // used to track inc remental database format updates that unsigned long ulUpdate; // used to track inc remental database format updates that
/ / are backward-compatible (see ulDAEUpdate) / / are backward-compatible (see ulDAEUpdate)
skipping to change at line 542 skipping to change at line 795
unsigned long dwMajorVersion; /* OS version info */ unsigned long dwMajorVersion; /* OS version info */
unsigned long dwMinorVersion; unsigned long dwMinorVersion;
unsigned long dwBuildNumber; unsigned long dwBuildNumber;
long lSPNumber; long lSPNumber;
unsigned long cbPageSize; // database page siz e (0 = 4k pages) unsigned long cbPageSize; // database page siz e (0 = 4k pages)
} JET_DBINFOMISC; } JET_DBINFOMISC;
#if ( JET_VERSION >= 0x0600 )
// JET performance counters accumulated by thread
//
struct JET_THREADSTATS {
unsigned long cbStruct; // size of this struct
unsigned long cPageReferenced; // pages referenced
unsigned long cPageRead; // pages read from disk
unsigned long cPagePreread; // pages preread from disk
unsigned long cPageDirtied; // clean pages modified
unsigned long cPageRedirtied; // dirty pages modified
unsigned long cLogRecord; // log records generated
unsigned long cbLogRecord; // log record bytes generated
};
typedef struct
{
unsigned long cbStruct;
JET_RSTMAP_A * rgrstmap;
long crstmap;
JET_LGPOS lgposStop;
JET_LOGTIME logtimeStop;
JET_PFNSTATUS pfnStatus;
} JET_RSTINFO_A;
typedef struct
{
unsigned long cbStruct;
JET_RSTMAP_W * rgrstmap;
long crstmap;
JET_LGPOS lgposStop;
JET_LOGTIME logtimeStop;
JET_PFNSTATUS pfnStatus;
} JET_RSTINFO_W;
#ifdef JET_UNICODE
#define JET_RSTINFO JET_RSTINFO_W
#else
#define JET_RSTINFO JET_RSTINFO_A
#endif
#endif // JET_VERSION >= 0x0600
/************************************************************************/ /************************************************************************/
/************************* JET CONSTANTS ************************/ /************************* JET CONSTANTS ************************/
/************************************************************************/ /************************************************************************/
#ifdef JET_VERSION_XP #if ( JET_VERSION >= 0x0501 )
#define JET_instanceNil (~(JET_INSTANCE)0) #define JET_instanceNil (~(JET_INSTANCE)0)
#endif // JET_VERSION_XP #endif // JET_VERSION >= 0x0501
#define JET_sesidNil (~(JET_SESID)0) #define JET_sesidNil (~(JET_SESID)0)
#define JET_tableidNil (~(JET_TABLEID)0) #define JET_tableidNil (~(JET_TABLEID)0)
#define JET_bitNil ((JET_GRBIT)0) #define JET_bitNil ((JET_GRBIT)0)
/* Max size of a bookmark */ /* Max size of a bookmark */
#define JET_cbBookmarkMost 256 #define JET_cbBookmarkMost 256
/* Max length of a object/column/index/property name */ /* Max length of a object/column/index/property name */
#ifndef JET_UNICODE
#define JET_cbNameMost 64 #define JET_cbNameMost 64
#else
#define JET_cbNameMost 128
#endif
/* Max length of a "name.name.name..." construct */ /* Max length of a "name.name.name..." construct */
#ifndef JET_UNICODE
#define JET_cbFullNameMost 255 #define JET_cbFullNameMost 255
#else
#define JET_cbFullNameMost 510
#endif
/* Max size of long-value (LongBinary or LongText) column chunk */ /* Max size of long-value (LongBinary or LongText) column chunk */
// #define JET_cbColumnLVChunkMost ( JET_cbPage - 82 ) to the follow ing: // #define JET_cbColumnLVChunkMost ( JET_cbPage - 82 ) to the follow ing:
// Get cbPage from GetSystemParameter. // Get cbPage from GetSystemParameter.
// changed JET_cbColumnLVChunkMost reference to cbPage - JET_cbColumnLVPageO verhead // changed JET_cbColumnLVChunkMost reference to cbPage - JET_cbColumnLVPageO verhead
#define JET_cbColumnLVPageOverhead 82 #define JET_cbColumnLVPageOverhead 82
/* Max size of long-value (LongBinary or LongText) column default value * / /* Max size of long-value (LongBinary or LongText) column default value * /
#define JET_cbLVDefaultValueMost 255 #define JET_cbLVDefaultValueMost 255
/* Max size of non-long-value column data */ /* Max size of non-long-value column data */
#define JET_cbColumnMost 255 #define JET_cbColumnMost 255
/* Max size of a sort/index key */ /* Max size of a sort/index key */
#define JET_cbKeyMost 255 #if ( JET_VERSION >= 0x0600 )
#define JET_cbLimitKeyMost 256 / #define JET_cbKeyMost8KBytePage 2000
/ maximum key size when key is formed using a Limit grbit (eg. JET_bitStrLi #define JET_cbKeyMost4KBytePage 1000
mit) #define JET_cbKeyMost2KBytePage 500
#define JET_cbPrimaryKeyMost 255 #define JET_cbKeyMostMin 255
#define JET_cbSecondaryKeyMost 255 #endif // JET_VERSION >= 0x0600
#define JET_cbKeyMost 255 // defunct c
onstant retained for backward compatibility
#define JET_cbLimitKeyMost 256 // defunct c
onstant retained for backward compatibility
#define JET_cbPrimaryKeyMost 255 // defunct constant
retained for backward compatibility
#define JET_cbSecondaryKeyMost 255 // defunct constant
retained for backward compatibility
/* Max number of components in a sort/index key */ /* Max number of components in a sort/index key */
#if ( JET_VERSION >= 0x0600 )
#define JET_ccolKeyMost 16
#else // !JET_VERSION >= 0x0600
#define JET_ccolKeyMost 12 #define JET_ccolKeyMost 12
#endif // !JET_VERSION >= 0x0600
// maximum number of columns // maximum number of columns
#ifdef JET_VERSION_XP #if ( JET_VERSION >= 0x0501 )
#define JET_ccolMost 0x0000fee0 #define JET_ccolMost 0x0000fee0
#else // !JET_VERSION_XP #else // !JET_VERSION >= 0x0501
#define JET_ccolMost 0x00007ffe #define JET_ccolMost 0x00007ffe
#endif // !JET_VERSION_XP #endif // !JET_VERSION >= 0x0501
#define JET_ccolFixedMost 0x0000007f #define JET_ccolFixedMost 0x0000007f
#define JET_ccolVarMost 0x00000080 #define JET_ccolVarMost 0x00000080
#define JET_ccolTaggedMost ( JET_ccolMost - 0x000000ff ) #define JET_ccolTaggedMost ( JET_ccolMost - 0x000000ff )
#ifdef JET_VERSION_XP #if ( JET_VERSION >= 0x0501 )
// event logging level (only on and off for now - will add more in the future) // event logging level (only on and off for now - will add more in the future)
#define JET_EventLoggingDisable 0 #define JET_EventLoggingDisable 0
#define JET_EventLoggingLevelMax 100 #define JET_EventLoggingLevelMax 100
#endif // JET_VERSION_XP #endif // JET_VERSION >= 0x0501
// system paramters // system paramters
// //
// NOTE: the default values of these parameters used to be documented here.
// this can no longer be done because we now support multiple sets of default
// values as set by JET_paramConfiguration
//
// location parameters // location parameters
// //
#define JET_paramSystemPath 0 / #define JET_paramSystemPath 0 /
/ path to check point file [".\\"] / path to check point file
#define JET_paramTempPath 1 / #define JET_paramTempPath 1 /
/ path to the temporary database [".\\"] / path to the temporary database
#define JET_paramLogFilePath 2 // p #define JET_paramLogFilePath 2 // p
ath to the log file directory [".\\"] ath to the log file directory
#define JET_paramBaseName 3 / #define JET_paramBaseName 3 /
/ base name for all DBMS object names ["edb"] / base name for all DBMS object names
#define JET_paramEventSource 4 // l #define JET_paramEventSource 4 // l
anguage independent process descriptor string [""] anguage independent process descriptor string
// performance parameters // performance parameters
// //
#define JET_paramMaxSessions 5 // m #define JET_paramMaxSessions 5 // m
aximum number of sessions [16] aximum number of sessions
#define JET_paramMaxOpenTables 6 // m #define JET_paramMaxOpenTables 6 // m
aximum number of open directories [300] aximum number of open directories
// need 1 for each open table index, // need 1 for each open table index,
// plus 1 for each open table with no indexes, // plus 1 for each open table with no indexes,
// plus 1 for each table with long column data, // plus 1 for each table with long column data,
// plus a few more. // plus a few more.
// for 4.1, 1/3 for regular table, 2/3 for i ndex // for 4.1, 1/3 for regular table, 2/3 for i ndex
#define JET_paramPreferredMaxOpenTables 7 // p #define JET_paramPreferredMaxOpenTables 7 // p
referred maximum number of open directories [300] referred maximum number of open directories
#define JET_paramMaxCursors 8 / #if ( JET_VERSION >= 0x0600 )
/ maximum number of open cursors [1024] #define JET_paramCachedClosedTables 125 // n
#define JET_paramMaxVerPages 9 // m umber of closed tables to cache the meta-data for
aximum version store size in 16kByte units [64] #endif // JET_VERSION >= 0x0600
#define JET_paramPreferredVerPages 63 // p #define JET_paramMaxCursors 8 /
referred version store size in 16kByte units [64 * 0.9] / maximum number of open cursors
#ifdef JET_VERSION_XP #define JET_paramMaxVerPages 9 // m
#define JET_paramGlobalMinVerPages 81 // m aximum version store size in version pages
inimum version store size for all instances in 16kByte units [64] #define JET_paramPreferredVerPages 63 // p
#define JET_paramVersionStoreTaskQueueMax 105 // maximum n referred version store size in version pages
umber of tasks in the task queue before start dropping the tasks [32] #if ( JET_VERSION >= 0x0501 )
#endif // JET_VERSION_XP #define JET_paramGlobalMinVerPages 81 // m
#define JET_paramMaxTemporaryTables 10 // m inimum version store size for all instances in version pages
aximum concurrent open temporary table/index creation [20] #define JET_paramVersionStoreTaskQueueMax 105 // maximum n
#define JET_paramLogFileSize 11 // l umber of tasks in the task queue before start dropping the tasks
og file size in kBytes [5120] #endif // JET_VERSION >= 0x0501
#define JET_paramLogBuffers 12 / #define JET_paramMaxTemporaryTables 10 // m
/ log buffers in 512 bytes [80] aximum concurrent open temporary table/index creation
#define JET_paramWaitLogFlush 13 // l #define JET_paramLogFileSize 11 // l
og flush wait time in milliseconds [0] DEFUNCT og file size in kBytes
#define JET_paramLogCheckpointPeriod 14 // checkpoin #define JET_paramLogBuffers 12 /
t period in 512 bytes [1024] DEFUNCT / log buffers in 512 byte units.
#define JET_paramLogWaitingUserMax 15 // m #define JET_paramWaitLogFlush 13 // l
aximum sessions waiting log flush [3] DEFUNCT og flush wait time in milliseconds
#define JET_paramCommitDefault 16 // d #define JET_paramLogCheckpointPeriod 14 // checkpoin
efault grbit for JetCommitTransaction [0] t period in sectors
#define JET_paramCircularLog 17 // b #define JET_paramLogWaitingUserMax 15 // m
oolean flag for circular logging [0] aximum sessions waiting log flush
#define JET_paramDbExtensionSize 18 // d #define JET_paramCommitDefault 16 // d
atabase extension size in pages [256] DEFUNCT efault grbit for JetCommitTransaction
#define JET_paramPageTempDBMin 19 // minimum s #define JET_paramCircularLog 17 // b
ize temporary database in pages [0] DEFUNCT oolean flag for circular logging
#define JET_paramPageFragment 20 // m #define JET_paramDbExtensionSize 18 // d
aximum disk extent considered fragment in pages [8] DEFUNCT atabase extension size in pages
#define JET_paramPageTempDBMin 19 // minimum s
ize temporary database in pages
#define JET_paramPageFragment 20 // m
aximum disk extent considered fragment in pages
#if ( JET_VERSION >= 0x0600 )
#define JET_paramEnableFileCache 126 // enabl
e the use of the OS file cache for all managed files
#define JET_paramVerPageSize 128 // the v
ersion store page size
#define JET_paramConfiguration 129 // RESET
s all parameters to their default for a given configuration
#define JET_paramEnableAdvanced 130 /
/ enables the modification of advanced settings
#define JET_paramMaxColtyp 131 /
/ maximum coltyp supported by this version of ESE
#endif // JET_VERSION >= 0x0600
// cache performance parameters // cache performance parameters
// //
#define JET_paramBatchIOBufferMax 22 // m #define JET_paramBatchIOBufferMax 22 // m
aximum batch I/O buffers in pages [64] DEFUNCT aximum batch I/O buffers in pages
#define JET_paramCacheSize 41 / #define JET_paramCacheSize 41 /
/ current cache size in pages [512] / current cache size in pages
#define JET_paramCacheSizeMin 60 // m #define JET_paramCacheSizeMin 60 // m
inimum cache size in pages [64] inimum cache size in pages
#define JET_paramCacheSizeMax 23 // m #define JET_paramCacheSizeMax 23 // m
aximum cache size in pages [512] aximum cache size in pages
#define JET_paramCheckpointDepthMax 24 // m #define JET_paramCheckpointDepthMax 24 // m
aximum checkpoint depth in bytes [20MB] aximum checkpoint depth in bytes
#define JET_paramLRUKCorrInterval 25 // time (use #define JET_paramLRUKCorrInterval 25 // time (use
c) under which page accesses are correlated [128000], it was 10000 c) under which page accesses are correlated
#define JET_paramLRUKHistoryMax 26 // m #define JET_paramLRUKHistoryMax 26 // m
aximum LRUK history records [1024] (proportional to cache size max) DEFUNCT aximum LRUK history records
#define JET_paramLRUKPolicy 27 // K #define JET_paramLRUKPolicy 27 // K
-ness of LRUK page eviction algorithm (1...2) [2] -ness of LRUK page eviction algorithm (1...2)
#define JET_paramLRUKTimeout 28 // time (sec #define JET_paramLRUKTimeout 28 // time (sec
) after which cached pages are always evictable [100] ) after which cached pages are always evictable
#define JET_paramLRUKTrxCorrInterval 29 // Not Used: time (u #define JET_paramLRUKTrxCorrInterval 29 // Not Used: time (u
sec) under which page accesses by the same transaction are correlated [5000000] sec) under which page accesses by the same transaction are correlated
DEFUNCT #define JET_paramOutstandingIOMax 30 // m
#define JET_paramOutstandingIOMax 30 // m aximum outstanding I/Os
aximum outstanding I/Os [64] DEFUNCT #define JET_paramStartFlushThreshold 31 // evictable
#define JET_paramStartFlushThreshold 31 // evictable pages at which to start a flush (proportional to CacheSizeMax)
pages at which to start a flush [100] (proportional to CacheSizeMax) #define JET_paramStopFlushThreshold 32 // e
#define JET_paramStopFlushThreshold 32 // e victable pages at which to stop a flush (proportional to CacheSizeMax)
victable pages at which to stop a flush [400] (proportional to CacheSizeMax) #if ( JET_VERSION >= 0x0600 )
#define JET_paramEnableViewCache 127 // enabl
e the use of memory mapped file I/O for database files
#define JET_paramCheckpointIOMax 135 // maxiu
mum number of pending flush writes
#endif // JET_VERSION >= 0x0600
#if ( JET_VERSION >= 0x0600 )
// Values for JET_paramIOPriority
#define JET_IOPriorityNormal 0 // default
#define JET_IOPriorityLow 1
#define JET_paramIOPriority 152 // adjust IO
priority per instance, anytime. Mainly for background recovery
// Doesn't affect pendi
ng IOs, just subsequent ones
#endif // JET_VERSION >= 0x0600
// debug only parameters // debug only parameters
// //
#define JET_paramRecovery 34 / #define JET_paramRecovery 34 /
/ enable recovery [-1] / enable recovery
#define JET_paramEnableOnlineDefrag 35 // e #define JET_paramEnableOnlineDefrag 35 // e
nable online defrag [TRUE by default] nable online defrag
// Application specific parameter // Application specific parameter
// //
#define JET_paramCheckFormatWhenOpenFail 44 // JetInit m ay return JET_errDatabaseXXXformat instead of database corrupt when it is set #define JET_paramCheckFormatWhenOpenFail 44 // JetInit m ay return JET_errDatabaseXXXformat instead of database corrupt when it is set
#define JET_paramEnableTempTableVersioning 46 // Enable ve rsioning of temp tables (TRUE by default) #define JET_paramEnableTempTableVersioning 46 // Enable ve rsioning of temp tables
#define JET_paramIgnoreLogVersion 47 // D o not check the log version #define JET_paramIgnoreLogVersion 47 // D o not check the log version
#define JET_paramDeleteOldLogs 48 // D elete the log files if the version is old, after deleting may make database non- recoverable #define JET_paramDeleteOldLogs 48 // D elete 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_paramEventSourceKey 49 / / Event source registration key value
#define JET_paramNoInformationEvent 50 // D #define JET_paramNoInformationEvent 50 // D
isable logging information event [ FALSE by default ] isable logging information event
#ifdef JET_VERSION_XP #if ( JET_VERSION >= 0x0501 )
#define JET_paramEventLoggingLevel 51 // S #define JET_paramEventLoggingLevel 51 // S
et the type of information that goes to event log [ eventLoggingLevelMax by defa et the type of information that goes to event log
ult ] #define JET_paramDeleteOutOfRangeLogs 52 // Delete th
#define JET_paramDeleteOutOfRangeLogs 52 // Delete th e log files that are not matching (generation wise) during soft recovery
e log files that are not matching (generation wise) during soft recovery [false] #define JET_paramAccessDeniedRetryPeriod 53 // Number of
#define JET_paramAccessDeniedRetryPeriod 53 // Number of milliseconds to retry when about to fail with AccessDenied
milliseconds to retry when about to fail with AccessDenied [10000 milliseconds] #endif // JET_VERSION >= 0x0501
#endif // JET_VERSION_XP
// Index-checking parameters // Index-checking parameters
// //
// Different versions of windows normalize unicode text in different ways. T hat means indexes built under one version of Windows may // Different versions of windows normalize unicode text in different ways. T hat means indexes built under one version of Windows may
// not work on other versions. Windows Server 2003 Beta 3 introduced GetNLSV ersion() which can be used to determine the version of unicode normalization // not work on other versions. Windows Server 2003 Beta 3 introduced GetNLSV ersion() which can be used to determine the version of unicode normalization
// that the OS currently provides. Indexes built in server 2003 are flagged with the version of unicode normalization that they were // that the OS currently provides. Indexes built in server 2003 are flagged with the version of unicode normalization that they were
// built with (older indexes have no version information). Most unicode norm alization changes consist of adding new characters -- codepoints // built with (older indexes have no version information). Most unicode norm alization changes consist of adding new characters -- codepoints
// which were previously undefined are defined and normalize differently. Th us, if binary data is stored in a unicode column it will normalize // which were previously undefined are defined and normalize differently. Th us, if binary data is stored in a unicode column it will normalize
// differently as new codepoints are defined. // differently as new codepoints are defined.
// //
skipping to change at line 706 skipping to change at line 1051
// is stamped in the database header). // is stamped in the database header).
// //
// If JET_paramEnableIndexChecking is TRUE JetAttachDatabase() will delete i ndexes if JET_bitDbDeleteCorruptIndexes or return an error if // If JET_paramEnableIndexChecking is TRUE JetAttachDatabase() will delete i ndexes if JET_bitDbDeleteCorruptIndexes or return an error if
// the grbit was not specified and there are indexes which need deletion. If it is set to FALSE then JetAttachDatabase() will succeed, even // the grbit was not specified and there are indexes which need deletion. If it is set to FALSE then JetAttachDatabase() will succeed, even
// if there are potentially corrupt indexes. // if there are potentially corrupt indexes.
// //
// If JET_paramEnableIndexCleanup is set, the internal fixup table will be u sed to fixup index entries. This may not fixup all index corruptions // If JET_paramEnableIndexCleanup is set, the internal fixup table will be u sed to fixup index entries. This may not fixup all index corruptions
// but will be transparent to the application. // but will be transparent to the application.
// //
#define JET_paramEnableIndexChecking 45 // Enable checking O #define JET_paramEnableIndexChecking 45 // Enable checking O
S version for indexes (FALSE by default) S version for indexes
#ifdef JET_VERSION_SERVER2003 #if ( JET_VERSION >= 0x0502 )
#define JET_paramEnableIndexCleanup 54 // Enable cl #define JET_paramEnableIndexCleanup 54 // Enable cl
eanup of out-of-date index entries (TRUE by default) eanup of out-of-date index entries
#endif // JET_VERSION_SERVER2003 #endif // JET_VERSION >= 0x0502
// 60 // JET_paramCacheSizeMin defined above // 60 // JET_paramCacheSizeMin defined above
// 63 // JET_paramPreferredVerPages defined above // 63 // JET_paramPreferredVerPages defined above
#define JET_paramDatabasePageSize 64 // s et database page size #define JET_paramDatabasePageSize 64 // s et database page size
#ifdef JET_VERSION_XP #if ( JET_VERSION >= 0x0501 )
#define JET_paramDisableCallbacks 65 // t urn off callback resolution (for defrag/repair) #define JET_paramDisableCallbacks 65 // t urn off callback resolution (for defrag/repair)
#define JET_paramLogFileCreateAsynch 69 // prepares #endif // JET_VERSION >= 0x0501
next log file while logging to the current one to smooth response time [true] #if ( JET_VERSION >= 0x0600 )
#endif // JET_VERSION_XP #define JET_paramDisablePerfmon 107 // d
isable perfmon support for this process
#endif // JET_VERSION >= 0x0600
#if ( JET_VERSION >= 0x0501 )
#if ( JET_VERSION >= 0x0600 )
#define JET_paramEnablePersistedCallbacks 156 // allow the databa
se engine to resolve and use callbacks persisted in a database
#endif // JET_VERSION >= 0x0600
// Backup performance parameters
//
#define JET_paramBackupChunkSize 66 // backup re
ad size in pages
#define JET_paramBackupOutstandingReads 67 // b
ackup maximum reads outstanding
#define JET_paramSLVProviderEnable 68 // Enable SL
V Provider
// begin_PubEsent
#define JET_paramLogFileCreateAsynch 69 // prepares
next log file while logging to the current one to smooth response time
#endif // JET_VERSION >= 0x0501
#define JET_paramErrorToString 70 // turns a J ET_err into a string (taken from the comment in jet.h) #define JET_paramErrorToString 70 // turns a J ET_err into a string (taken from the comment in jet.h)
#ifdef JET_VERSION_XP #if ( JET_VERSION >= 0x0501 )
#define JET_paramZeroDatabaseDuringBackup 71 // Overwrite #define JET_paramZeroDatabaseDuringBackup 71 // Overwrite
deleted records/LVs during backup [false] deleted records/LVs during backup
#endif // JET_VERSION_XP #endif // JET_VERSION >= 0x0501
#define JET_paramUnicodeIndexDefault 72 // default L CMapString() lcid and flags to use for CreateIndex() and unique multi-values che ck #define JET_paramUnicodeIndexDefault 72 // default L CMapString() lcid and flags to use for CreateIndex() and unique multi-values che ck
// (pass JET_UNICODEINDEX structure for lPar am) // (pass JET_UNICODEINDEX structure for lPar am)
#ifdef JET_VERSION_XP #if ( JET_VERSION >= 0x0501 )
#define JET_paramRuntimeCallback 73 // p ointer to runtime-only callback function #define JET_paramRuntimeCallback 73 // p ointer to runtime-only callback function
#endif // JET_VERSION_XP #endif // JET_VERSION >= 0x0501
#define JET_paramCleanupMismatchedLogFiles 77 // instead o f erroring out after a successful recovery with JET_errLogFileSizeMismatchDataba sesConsistent, ESE will silently delete the old log files and checkpoint file an d continue operations #define JET_paramCleanupMismatchedLogFiles 77 // instead o f erroring out after a successful recovery with JET_errLogFileSizeMismatchDataba sesConsistent, ESE will silently delete the old log files and checkpoint file an d continue operations
#ifdef JET_VERSION_XP #if ( JET_VERSION >= 0x0501 )
#define JET_paramRecordUpgradeDirtyLevel 78 // how aggre #define JET_paramRecordUpgradeDirtyLevel 78 // how aggre
sively should pages with their record format converted be flushed (0-3) [1] sively should pages with their record format converted be flushed (0-3)
// 81 // JET_paramGlobalMinVerPages defined above // 81 // JET_paramGlobalMinVerPages defined above
#define JET_paramOSSnapshotTimeout 82 // t #define JET_paramOSSnapshotTimeout 82 // t
imeout for the freeze period in msec [1000 * 20] imeout for the freeze period in msec
#endif // JET_VERSION_XP #endif // JET_VERSION >= 0x0501
#define JET_paramExceptionAction 98 // w hat to do with exceptions generated within JET #define JET_paramExceptionAction 98 // w hat to do with exceptions generated within JET
#define JET_paramEventLogCache 99 // number of #define JET_paramEventLogCache 99 // number of
bytes of eventlog records to cache if service is not available [0] bytes of eventlog records to cache if service is not available
#ifdef JET_VERSION_XP #if ( JET_VERSION >= 0x0501 )
#define JET_paramCreatePathIfNotExist 100 // create sy stem/temp/log/log-failover paths if they do not exist #define JET_paramCreatePathIfNotExist 100 // create sy stem/temp/log/log-failover paths if they do not exist
#define JET_paramPageHintCacheSize 101 // maximum s #define JET_paramPageHintCacheSize 101 // maximum s
ize of the fast page latch hint cache in bytes [256kb] ize of the fast page latch hint cache in bytes
#define JET_paramOneDatabasePerSession 102 // allow jus #define JET_paramOneDatabasePerSession 102 // allow jus
t one open user database per session [false] t one open user database per session
#define JET_paramMaxInstances 104 // m #define JET_paramMaxInstances 104 // m
aximum number of instances per process [1 for ESENT, 16 for Exchange] aximum number of instances per process
//
105 // JET_paramVersionStoreTaskQueueMax
//
106 // JET_paramIdleFlushTime
//
107 // JET_paramDisablePerfmon
//
108 // JET_paramAbortRetryFailCallback
//
109 // JET_paramVAReserve
#define JET_paramIndexTuplesLengthMin 110 // for tuple
indexes, minimum length of a tuple [3]
#define JET_paramIndexTuplesLengthMax 111 // for tuple
indexes, maximum length of a tuple [10]
#define JET_paramIndexTuplesToIndexMax 112 // for tuple
indexes, maximum number of characters in a given string to index [32767]
#endif // JET_VERSION_XP
#ifdef JET_VERSION_SERVER2003 #define JET_paramIndexTuplesLengthMin 110 // for tuple
indexes, minimum length of a tuple
#define JET_paramIndexTuplesLengthMax 111 // for tuple
indexes, maximum length of a tuple
#define JET_paramIndexTuplesToIndexMax 112 // for tuple
indexes, maximum number of characters in a given string to index
#endif // JET_VERSION >= 0x0501
#if ( JET_VERSION >= 0x0502 )
#define JET_paramAlternateDatabaseRecoveryPath 113 // recovery-only - s earch for dirty-shutdown databases in specified location only #define JET_paramAlternateDatabaseRecoveryPath 113 // recovery-only - s earch for dirty-shutdown databases in specified location only
#endif // JET_VERSION_SERVER2003 #endif // JET_VERSION >= 0x0502
#if ( JET_VERSION >= 0x0600 )
#define JET_paramIndexTupleIncrement 132 // for tuple indexes
, offset increment for each succesive tuple
#define JET_paramIndexTupleStart 133 // for tuple
indexes, offset to start tuple indexing
#define JET_paramKeyMost 134 // r
ead only maximum settable key length before key trunctation occurs
#define JET_paramLegacyFileNames 136 // Legacy f
ile name characteristics to preserve ( JET_bitESE98FileNames | JET_bitEightDotTh
reeSoftCompat )
#endif // JET_VERSION >= 0x0600
/* Flags for JetInit2 */ #if ( JET_VERSION >= 0x0600 )
#ifdef JET_VERSION_XP /* Flags for JET_paramLegacyFileNames */
#define JET_bitESE98FileNames 0x00000001 // Preserve
the .log and .chk extension for compatibility reasons (i.e. Exchange)
#define JET_bitEightDotThreeSoftCompat 0x00000002 // Preserve the 8.3
naming syntax for as long as possible. (this should not be changed, w/o ensuring
there are no log files)
#endif // JET_VERSION >= 0x0600
/* Flags for JetInit2, JetInit3 */
#if ( JET_VERSION >= 0x0501 )
// IGNORE_MISSING_ATTACH, ignoring hanging asserts for missing databases during recovery // IGNORE_MISSING_ATTACH, ignoring hanging asserts for missing databases during recovery
#define JET_bitReplayIgnoreMissingDB 0x00000004 /* ignore missing data #define JET_bitReplayIgnoreMissingDB 0x00000004 // ignore mi
bases */ ssing databases
#endif // JET_VERSION_XP #endif // JET_VERSION >= 0x0501
#if ( JET_VERSION >= 0x0600 )
#define JET_bitRecoveryWithoutUndo 0x00000008 // p
erform recovery, but halt at the Undo phase
#define JET_bitTruncateLogsAfterRecovery 0x00000010 // on succes
sful soft recovery, truncate log files
#define JET_bitReplayMissingMapEntryDB 0x00000020 /* missing database ma
p entry default to same location */
#define JET_bitLogStreamMustExist 0x00000040 // t
ransaction logs must exist in the logfile directory (ie. cannot auto-start a new
log stream)
#endif // JET_VERSION >= 0x0600
/* Flags for JetTerm2 */ /* Flags for JetTerm2 */
#define JET_bitTermComplete 0x00000001 #define JET_bitTermComplete 0x00000001
#define JET_bitTermAbrupt 0x00000002 #define JET_bitTermAbrupt 0x00000002
#define JET_bitTermStopBackup 0x00000004 #define JET_bitTermStopBackup 0x00000004
/* Flags for JetIdle */ /* Flags for JetIdle */
#define JET_bitIdleFlushBuffers 0x00000001 #define JET_bitIdleFlushBuffers 0x00000001
#define JET_bitIdleCompact 0x00000002 #define JET_bitIdleCompact 0x00000002
#define JET_bitIdleStatus 0x00000004 #define JET_bitIdleStatus 0x00000004
/* Flags for JetEndSession */ /* Flags for JetEndSession */
/* Flags for JetAttach/OpenDatabase */ /* Flags for JetAttach/OpenDatabase */
#define JET_bitDbReadOnly 0x00000001 #define JET_bitDbReadOnly 0x00000001
#define JET_bitDbExclusive 0x00000002 /* multiple op ens allowed */ #define JET_bitDbExclusive 0x00000002 /* multiple op ens allowed */
#define JET_bitDbDeleteCorruptIndexes 0x00000010 /* delete indexes possibly cor rupted by NT version upgrade */ #define JET_bitDbDeleteCorruptIndexes 0x00000010 /* delete indexes possibly cor rupted by NT version upgrade */
#ifdef JET_VERSION_SERVER2003 #if ( JET_VERSION >= 0x0502 )
#define JET_bitDbDeleteUnicodeIndexes 0x00000400 /* delete all indexes with uni code columns */ #define JET_bitDbDeleteUnicodeIndexes 0x00000400 /* delete all indexes with uni code columns */
#endif // JET_VERSION_SERVER2003 #endif // JET_VERSION >= 0x0502
#ifdef JET_VERSION_XP #if ( JET_VERSION >= 0x0501 )
#define JET_bitDbUpgrade 0x00000200 /* */ #define JET_bitDbUpgrade 0x00000200 /* */
#endif // JET_VERSION_XP #endif // JET_VERSION >= 0x0501
/* Flags for JetDetachDatabase2 */ /* Flags for JetDetachDatabase2 */
#ifdef JET_VERSION_XP #if ( JET_VERSION >= 0x0501 )
#define JET_bitForceDetach 0x00000001 #define JET_bitForceDetach 0x00000001
#define JET_bitForceCloseAndDetach (0x00000002 | JET_bitForc eDetach) #define JET_bitForceCloseAndDetach (0x00000002 | JET_bitForc eDetach)
#endif // JET_VERSION_XP #endif // JET_VERSION >= 0x0501
/* Flags for JetCreateDatabase */ /* Flags for JetCreateDatabase */
#define JET_bitDbRecoveryOff 0x00000008 /* disable logging/rec overy for this database */ #define JET_bitDbRecoveryOff 0x00000008 /* disable logging/rec overy for this database */
#define JET_bitDbShadowingOff 0x00000080 /* disable catalog sha dowing */ #define JET_bitDbShadowingOff 0x00000080 /* disable catalog sha dowing */
#ifdef JET_VERSION_XP #if ( JET_VERSION >= 0x0501 )
#define JET_bitDbOverwriteExisting 0x00000200 /* overwrite existing database with same name */ #define JET_bitDbOverwriteExisting 0x00000200 /* overwrite existing database with same name */
#endif // JET_VERSION_XP #endif // JET_VERSION >= 0x0501
/* Flags for JetBackup */ /* Flags for JetBackup */
#define JET_bitBackupIncremental 0x00000001 #define JET_bitBackupIncremental 0x00000001
#define JET_bitBackupAtomic 0x00000004 #define JET_bitBackupAtomic 0x00000004
#ifdef JET_VERSION_XP #if ( JET_VERSION >= 0x0501 )
#define JET_bitBackupSnapshot 0x00000010 #define JET_bitBackupSnapshot 0x00000010
#endif // JET_VERSION_XP #endif // JET_VERSION >= 0x0501
/* Database types */ /* Database types */
#define JET_dbidNil ((JET_DBID) 0xFFFFFFFF) #define JET_dbidNil ((JET_DBID) 0xFFFFFFFF)
/* Flags for JetCreateTableColumnIndex */ /* Flags for JetCreateTableColumnIndex */
#define JET_bitTableCreateFixedDDL 0x00000001 /* DDL is fixed */ #define JET_bitTableCreateFixedDDL 0x00000001 /* DDL is fixed */
#define JET_bitTableCreateTemplateTable 0x00000002 /* DDL is inheritable (implies FixedDDL) */ #define JET_bitTableCreateTemplateTable 0x00000002 /* DDL is inheritable (implies FixedDDL) */
#ifdef JET_VERSION_XP #if ( JET_VERSION >= 0x0501 )
#define JET_bitTableCreateNoFixedVarColumnsInDerivedTables 0x00000004 #define JET_bitTableCreateNoFixedVarColumnsInDerivedTables 0x00000004
// used in conjunction with JET_bitTableCrea teTemplateTable // used in conjunction with JET_bitTableCrea teTemplateTable
// to disallow fixed/var columns in derived tables (so that // to disallow fixed/var columns in derived tables (so that
// fixed/var columns may be added to the tem plate in the future) // fixed/var columns may be added to the tem plate in the future)
#endif // JET_VERSION_XP #endif // JET_VERSION >= 0x0501
/* Flags for JetAddColumn, JetGetColumnInfo, JetOpenTempTable */ /* Flags for JetAddColumn, JetGetColumnInfo, JetOpenTempTable */
#define JET_bitColumnFixed 0x00000001 #define JET_bitColumnFixed 0x00000001
#define JET_bitColumnTagged 0x00000002 #define JET_bitColumnTagged 0x00000002
#define JET_bitColumnNotNULL 0x00000004 #define JET_bitColumnNotNULL 0x00000004
#define JET_bitColumnVersion 0x00000008 #define JET_bitColumnVersion 0x00000008
#define JET_bitColumnAutoincrement 0x00000010 #define JET_bitColumnAutoincrement 0x00000010
#define JET_bitColumnUpdatable 0x00000020 /* JetGetColumnInfo on ly */ #define JET_bitColumnUpdatable 0x00000020 /* JetGetColumnInfo on ly */
#define JET_bitColumnTTKey 0x00000040 /* JetOpenTemp Table only */ #define JET_bitColumnTTKey 0x00000040 /* JetOpenTemp Table only */
#define JET_bitColumnTTDescending 0x00000080 /* JetOpenTempTable on ly */ #define JET_bitColumnTTDescending 0x00000080 /* JetOpenTempTable on ly */
#define JET_bitColumnMultiValued 0x00000400 #define JET_bitColumnMultiValued 0x00000400
#define JET_bitColumnEscrowUpdate 0x00000800 /* escrow updated */ #define JET_bitColumnEscrowUpdate 0x00000800 /* escrow updated */
#define JET_bitColumnUnversioned 0x00001000 /* for add column only - add column unversioned */ #define JET_bitColumnUnversioned 0x00001000 /* for add column only - add column unversioned */
#ifdef JET_VERSION_XP #if ( JET_VERSION >= 0x0501 )
#define JET_bitColumnMaybeNull 0x00002000 /* for retrieve column info of outer join where no match from the inner table */ #define JET_bitColumnMaybeNull 0x00002000 /* for retrieve column info of outer join where no match from the inner table */
#define JET_bitColumnFinalize 0x00004000 /* this is a finalizab le column (issue callback if escrow value equals 0) */ #define JET_bitColumnFinalize 0x00004000 /* this is a f inalizable column (issue callback if escrow value equals 0) */
#define JET_bitColumnUserDefinedDefault 0x00008000 /* default value from a user-provided callback */ #define JET_bitColumnUserDefinedDefault 0x00008000 /* default value from a user-provided callback */
#endif // JET_VERSION_XP #endif // JET_VERSION >= 0x0501
#ifdef JET_VERSION_SERVER2003 #if ( JET_VERSION >= 0x0502 )
#define JET_bitColumnDeleteOnZero 0x00020000 /* this is a finalizab le column (delete record if escrow value equals 0) */ #define JET_bitColumnDeleteOnZero 0x00020000 /* this is a finalizab le column (delete record if escrow value equals 0) */
#endif // JET_VERSION_SERVER2003 #endif // JET_VERSION >= 0x0502
#if ( JET_VERSION >= 0x0501 )
#ifdef JET_VERSION_XP
// flags for JetDeleteColumn // flags for JetDeleteColumn
#define JET_bitDeleteColumnIgnoreTemplateColumns 0x00000001 // f or derived tables, don't bother looking in template columns #define JET_bitDeleteColumnIgnoreTemplateColumns 0x00000001 // f or derived tables, don't bother looking in template columns
#endif // JET_VERSION_XP #endif // JET_VERSION >= 0x0501
/* Flags for JetSetCurrentIndex */ /* Flags for JetSetCurrentIndex */
#define JET_bitMoveFirst 0x00000000 #define JET_bitMoveFirst 0x00000000
#define JET_bitNoMove 0x00000002 #define JET_bitNoMove 0x00000002
/* Flags for JetMakeKey */ /* Flags for JetMakeKey */
#define JET_bitNewKey 0x00000001 #define JET_bitNewKey 0x00000001
#define JET_bitStrLimit 0x00000002 #define JET_bitStrLimit 0x00000002
#define JET_bitSubStrLimit 0x00000004 #define JET_bitSubStrLimit 0x00000004
#define JET_bitNormalizedKey 0x00000008 #define JET_bitNormalizedKey 0x00000008
#define JET_bitKeyDataZeroLength 0x00000010 #define JET_bitKeyDataZeroLength 0x00000010
#ifdef JET_VERSION_XP #if ( JET_VERSION >= 0x0501 )
#define JET_bitFullColumnStartLimit 0x00000100 #define JET_bitFullColumnStartLimit 0x00000100
#define JET_bitFullColumnEndLimit 0x00000200 #define JET_bitFullColumnEndLimit 0x00000200
#define JET_bitPartialColumnStartLimit 0x00000400 #define JET_bitPartialColumnStartLimit 0x00000400
#define JET_bitPartialColumnEndLimit 0x00000800 #define JET_bitPartialColumnEndLimit 0x00000800
#endif // JET_VERSION_XP #endif // JET_VERSION >= 0x0501
/* Flags for JetSetIndexRange */ /* Flags for JetSetIndexRange */
#define JET_bitRangeInclusive 0x00000001 #define JET_bitRangeInclusive 0x00000001
#define JET_bitRangeUpperLimit 0x00000002 #define JET_bitRangeUpperLimit 0x00000002
#define JET_bitRangeInstantDuration 0x00000004 #define JET_bitRangeInstantDuration 0x00000004
#define JET_bitRangeRemove 0x00000008 #define JET_bitRangeRemove 0x00000008
/* Flags for JetGetLock */ /* Flags for JetGetLock */
skipping to change at line 903 skipping to change at line 1277
#define JET_bitMoveKeyNE 0x00000001 #define JET_bitMoveKeyNE 0x00000001
/* Flags for JetSeek */ /* Flags for JetSeek */
#define JET_bitSeekEQ 0x00000001 #define JET_bitSeekEQ 0x00000001
#define JET_bitSeekLT 0x00000002 #define JET_bitSeekLT 0x00000002
#define JET_bitSeekLE 0x00000004 #define JET_bitSeekLE 0x00000004
#define JET_bitSeekGE 0x00000008 #define JET_bitSeekGE 0x00000008
#define JET_bitSeekGT 0x00000010 #define JET_bitSeekGT 0x00000010
#define JET_bitSetIndexRange 0x00000020 #define JET_bitSetIndexRange 0x00000020
#ifdef JET_VERSION_SERVER2003 #if ( JET_VERSION >= 0x0502 )
#define JET_bitCheckUniqueness 0x00000040 // to be use d with JET_bitSeekEQ only, returns JET_wrnUniqueKey if seek lands on a key which has no dupes #define JET_bitCheckUniqueness 0x00000040 // to be use d with JET_bitSeekEQ only, returns JET_wrnUniqueKey if seek lands on a key which has no dupes
#endif // JET_VERSION_SERVER2003 #endif // JET_VERSION >= 0x0502
#ifdef JET_VERSION_XP #if ( JET_VERSION >= 0x0501 )
// Flags for JetGotoSecondaryIndexBookmark // Flags for JetGotoSecondaryIndexBookmark
#define JET_bitBookmarkPermitVirtualCurrency 0x00000001 // place cur sor on relative position in index if specified bookmark no longer exists #define JET_bitBookmarkPermitVirtualCurrency 0x00000001 // place cur sor on relative position in index if specified bookmark no longer exists
#endif // JET_VERSION_XP #endif // JET_VERSION >= 0x0501
/* Flags for JET_CONDITIONALCOLUMN */ /* Flags for JET_CONDITIONALCOLUMN */
#define JET_bitIndexColumnMustBeNull 0x00000001 #define JET_bitIndexColumnMustBeNull 0x00000001
#define JET_bitIndexColumnMustBeNonNull 0x00000002 #define JET_bitIndexColumnMustBeNonNull 0x00000002
/* Flags for JET_INDEXRANGE */ /* Flags for JET_INDEXRANGE */
#define JET_bitRecordInIndex 0x00000001 #define JET_bitRecordInIndex 0x00000001
#define JET_bitRecordNotInIndex 0x00000002 #define JET_bitRecordNotInIndex 0x00000002
/* Flags for JetCreateIndex */ /* Flags for JetCreateIndex */
skipping to change at line 933 skipping to change at line 1307
#define JET_bitIndexPrimary 0x00000002 #define JET_bitIndexPrimary 0x00000002
#define JET_bitIndexDisallowNull 0x00000004 #define JET_bitIndexDisallowNull 0x00000004
#define JET_bitIndexIgnoreNull 0x00000008 #define JET_bitIndexIgnoreNull 0x00000008
#define JET_bitIndexIgnoreAnyNull 0x00000020 #define JET_bitIndexIgnoreAnyNull 0x00000020
#define JET_bitIndexIgnoreFirstNull 0x00000040 #define JET_bitIndexIgnoreFirstNull 0x00000040
#define JET_bitIndexLazyFlush 0x00000080 #define JET_bitIndexLazyFlush 0x00000080
#define JET_bitIndexEmpty 0x00000100 // don't attempt to build index, because all entries would evaluate to NULL (MUST also sp ecify JET_bitIgnoreAnyNull) #define JET_bitIndexEmpty 0x00000100 // don't attempt to build index, because all entries would evaluate to NULL (MUST also sp ecify JET_bitIgnoreAnyNull)
#define JET_bitIndexUnversioned 0x00000200 #define JET_bitIndexUnversioned 0x00000200
#define JET_bitIndexSortNullsHigh 0x00000400 // NULL sorts aft er data for all columns in the index #define JET_bitIndexSortNullsHigh 0x00000400 // NULL sorts aft er data for all columns in the index
#define JET_bitIndexUnicode 0x00000800 // LCID f ield of JET_INDEXCREATE actually points to a JET_UNICODEINDEX struct to allow us er-defined LCMapString() flags #define JET_bitIndexUnicode 0x00000800 // LCID f ield of JET_INDEXCREATE actually points to a JET_UNICODEINDEX struct to allow us er-defined LCMapString() flags
#ifdef JET_VERSION_XP #if ( JET_VERSION >= 0x0501 )
#define JET_bitIndexTuples 0x00001000 // index on substring tuples (text columns only) #define JET_bitIndexTuples 0x00001000 // index on substring tuples (text columns only)
#endif // JET_VERSION_XP #endif // JET_VERSION >= 0x0501
#ifdef JET_VERSION_SERVER2003 #if ( JET_VERSION >= 0x0502 )
#define JET_bitIndexTupleLimits 0x00002000 // cbVarS egMac field of JET_INDEXCREATE actually points to a JET_TUPLELIMITS struct to al low custom tuple index limits (implies JET_bitIndexTuples) #define JET_bitIndexTupleLimits 0x00002000 // cbVarS egMac field of JET_INDEXCREATE actually points to a JET_TUPLELIMITS struct to al low custom tuple index limits (implies JET_bitIndexTuples)
#endif // JET_VERSION_SERVER2003 #endif // JET_VERSION >= 0x0502
#if ( JET_VERSION >= 0x0600 )
#define JET_bitIndexCrossProduct 0x00004000 // index over mul
tiple multi-valued columns has full cross product
#define JET_bitIndexKeyMost 0x00008000 // custom
index key size set instead of default of 255 bytes
#define JET_bitIndexDisallowTruncation 0x00010000 // fail update rather tha
n truncate index keys
#endif // JET_VERSION >= 0x0600
/* Flags for index key definition */ /* Flags for index key definition */
#define JET_bitKeyAscending 0x00000000 #define JET_bitKeyAscending 0x00000000
#define JET_bitKeyDescending 0x00000001 #define JET_bitKeyDescending 0x00000001
/* Flags for JetOpenTable */ /* Flags for JetOpenTable */
#define JET_bitTableDenyWrite 0x00000001 #define JET_bitTableDenyWrite 0x00000001
#define JET_bitTableDenyRead 0x00000002 #define JET_bitTableDenyRead 0x00000002
#define JET_bitTableReadOnly 0x00000004 #define JET_bitTableReadOnly 0x00000004
#define JET_bitTableUpdatable 0x00000008 #define JET_bitTableUpdatable 0x00000008
#define JET_bitTablePermitDDL 0x00000010 /* override table flagge #define JET_bitTablePermitDDL 0x00000010 /* override tabl
d as FixedDDL (must be used with DenyRead) */ e flagged as FixedDDL (must be used with DenyRead) */
#define JET_bitTableNoCache 0x00000020 /* don't cac he the pages for this table */ #define JET_bitTableNoCache 0x00000020 /* don't cac he the pages for this table */
#define JET_bitTablePreread 0x00000040 /* assume th e table is probably not in the buffer cache */ #define JET_bitTablePreread 0x00000040 /* assume th e table is probably not in the buffer cache */
#define JET_bitTableOpportuneRead 0x00000080 /* attempt to opportunely
read physically adjacent leaf pages using larger physical IOs */
#define JET_bitTableSequential 0x00008000 /* assume the table
will be scanned sequentially */
#define JET_bitTableClassMask 0x000F0000 /* table stats class mas k */ #define JET_bitTableClassMask 0x000F0000 /* table stats class mas k */
#define JET_bitTableClassNone 0x00000000 /* table belongs to no stats class (default) */ #define JET_bitTableClassNone 0x00000000 /* table belongs to no stats class (default) */
#define JET_bitTableClass1 0x00010000 /* table belongs to stats class 1 */ #define JET_bitTableClass1 0x00010000 /* table belongs to stats class 1 */
#define JET_bitTableClass2 0x00020000 /* table belongs to stats class 2 */ #define JET_bitTableClass2 0x00020000 /* table belongs to stats class 2 */
#define JET_bitTableClass3 0x00030000 /* table belongs to stats class 3 */ #define JET_bitTableClass3 0x00030000 /* table belongs to stats class 3 */
#define JET_bitTableClass4 0x00040000 /* table belongs to stats class 4 */ #define JET_bitTableClass4 0x00040000 /* table belongs to stats class 4 */
#define JET_bitTableClass5 0x00050000 /* table belongs to stats class 5 */ #define JET_bitTableClass5 0x00050000 /* table belongs to stats class 5 */
#define JET_bitTableClass6 0x00060000 /* table belongs to stats class 6 */ #define JET_bitTableClass6 0x00060000 /* table belongs to stats class 6 */
#define JET_bitTableClass7 0x00070000 /* table belongs to stats class 7 */ #define JET_bitTableClass7 0x00070000 /* table belongs to stats class 7 */
#define JET_bitTableClass8 0x00080000 /* table belongs to stats class 8 */ #define JET_bitTableClass8 0x00080000 /* table belongs to stats class 8 */
#define JET_bitTableClass9 0x00090000 /* table belongs to stats class 9 */ #define JET_bitTableClass9 0x00090000 /* table belongs to stats class 9 */
#define JET_bitTableClass10 0x000A0000 /* table belongs to stats class 10 */ #define JET_bitTableClass10 0x000A0000 /* table belongs to stats class 10 */
#define JET_bitTableClass11 0x000B0000 /* table belongs to stats class 11 */ #define JET_bitTableClass11 0x000B0000 /* table belongs to stats class 11 */
#define JET_bitTableClass12 0x000C0000 /* table belongs to stats class 12 */ #define JET_bitTableClass12 0x000C0000 /* table belongs to stats class 12 */
#define JET_bitTableClass13 0x000D0000 /* table belongs to stats class 13 */ #define JET_bitTableClass13 0x000D0000 /* table belongs to stats class 13 */
#define JET_bitTableClass14 0x000E0000 /* table belongs to stats class 14 */ #define JET_bitTableClass14 0x000E0000 /* table belongs to stats class 14 */
#define JET_bitTableClass15 0x000F0000 /* table belongs to stats class 15 */ #define JET_bitTableClass15 0x000F0000 /* table belongs to stats class 15 */
#ifdef JET_VERSION_XP #if ( JET_VERSION >= 0x0501 )
#define JET_bitLSReset 0x00000001 /* reset LS value */ #define JET_bitLSReset 0x00000001 /* reset LS value */
#define JET_bitLSCursor 0x00000002 /* s et/retrieve LS of table cursor */ #define JET_bitLSCursor 0x00000002 /* s et/retrieve LS of table cursor */
#define JET_bitLSTable 0x00000004 /* set/retri eve LS of table */ #define JET_bitLSTable 0x00000004 /* set/retri eve LS of table */
#define JET_LSNil (~(JET_LS)0) #define JET_LSNil (~(JET_LS)0)
#endif // JET_VERSION_XP #endif // JET_VERSION >= 0x0501
/* Flags for JetOpenTempTable */ /* Flags for JetOpenTempTable */
#define JET_bitTTIndexed 0x00000001 /* Allow seek */ #define JET_bitTTIndexed 0x00000001 /* Allow seek */
#define JET_bitTTUnique 0x00000002 /* Remove duplica tes */ #define JET_bitTTUnique 0x00000002 /* Remove duplica tes */
#define JET_bitTTUpdatable 0x00000004 /* Allow updates */ #define JET_bitTTUpdatable 0x00000004 /* Allow updates */
#define JET_bitTTScrollable 0x00000008 /* Allow backward s scrolling */ #define JET_bitTTScrollable 0x00000008 /* Allow backward s scrolling */
#define JET_bitTTSortNullsHigh 0x00000010 /* NULL sorts after data for all columns in the index */ #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 (al lows for duplicate detection) */ #define JET_bitTTForceMaterialization 0x00000020 /* Forces temp. table to be materialized into a btree (al lows for duplicate detection) */
#ifdef JET_VERSION_XP #if ( JET_VERSION >= 0x0501 )
#define JET_bitTTErrorOnDuplicateInsertion JET_bitTTForceMaterialization / * Error always returned when duplicate is inserted (instead of dupe being silent ly removed) */ #define JET_bitTTErrorOnDuplicateInsertion JET_bitTTForceMaterialization / * Error always returned when duplicate is inserted (instead of dupe being silent ly removed) */
#endif // JET_VERSION_XP #endif // JET_VERSION >= 0x0501
#ifdef JET_VERSION_SERVER2003 #if ( JET_VERSION >= 0x0502 )
#define JET_bitTTForwardOnly 0x00000040 /* Prevents temp. table f rom being materialized into a btree (and enables duplicate keys) */ #define JET_bitTTForwardOnly 0x00000040 /* Prevents temp. table f rom being materialized into a btree (and enables duplicate keys) */
#endif // JET_VERSION_SERVER2003 #endif // JET_VERSION >= 0x0502
/* Flags for JetSetColumn */ /* Flags for JetSetColumn */
#define JET_bitSetAppendLV 0x00000001 #define JET_bitSetAppendLV 0x00000001
#define JET_bitSetOverwriteLV 0x00000004 /* overwrite J ET_coltypLong* byte range */ #define JET_bitSetOverwriteLV 0x00000004 /* overwrite J ET_coltypLong* byte range */
#define JET_bitSetSizeLV 0x00000008 /* set JET_coltypLong* size */ #define JET_bitSetSizeLV 0x00000008 /* set JET_coltypLong* size */
#define JET_bitSetZeroLength 0x00000020 #define JET_bitSetZeroLength 0x00000020
#define JET_bitSetSeparateLV 0x00000040 /* force LV se paration */ #define JET_bitSetSeparateLV 0x00000040 /* force LV se paration */
#define JET_bitSetUniqueMultiValues 0x00000080 /* prevent dup licate multi-values */ #define JET_bitSetUniqueMultiValues 0x00000080 /* prevent dup licate multi-values */
#define JET_bitSetUniqueNormalizedMultiValues 0x00000100 /* prevent duplicate m ulti-values, normalizing all data before performing comparisons */ #define JET_bitSetUniqueNormalizedMultiValues 0x00000100 /* prevent duplicate m ulti-values, normalizing all data before performing comparisons */
#ifdef JET_VERSION_XP #if ( JET_VERSION >= 0x0501 )
#define JET_bitSetRevertToDefaultValue 0x00000200 /* if setting last tag ged instance to NULL, revert to default value instead if one exists */ #define JET_bitSetRevertToDefaultValue 0x00000200 /* if setting last tag ged instance to NULL, revert to default value instead if one exists */
#endif // JET_VERSION_XP #endif // JET_VERSION >= 0x0501
/* Set column parameter structure for JetSetColumns */ /* Set column parameter structure for JetSetColumns */
typedef struct { typedef struct {
JET_COLUMNID columnid; JET_COLUMNID columnid;
const void *pvData; const void *pvData;
unsigned long cbData; unsigned long cbData;
JET_GRBIT grbit; JET_GRBIT grbit;
unsigned long ibLongValue; unsigned long ibLongValue;
unsigned long itagSequence; unsigned long itagSequence;
JET_ERR err; JET_ERR err;
} JET_SETCOLUMN; } JET_SETCOLUMN;
#ifdef JET_VERSION_XP #if ( JET_VERSION >= 0x0501 )
typedef struct { typedef struct {
unsigned long paramid; unsigned long paramid;
JET_API_PTR lParam; JET_API_PTR lParam;
const char *sz; const char *sz;
JET_ERR err; JET_ERR err;
} JET_SETSYSPARAM; } JET_SETSYSPARAM_A;
#endif // JET_VERSION_XP
typedef struct {
unsigned long paramid;
JET_API_PTR lParam;
const WCHAR *sz;
JET_ERR err;
} JET_SETSYSPARAM_W;
#ifdef JET_UNICODE
#define JET_SETSYSPARAM JET_SETSYSPARAM_W
#else
#define JET_SETSYSPARAM JET_SETSYSPARAM_A
#endif
#endif // JET_VERSION >= 0x0501
/* Options for JetPrepareUpdate */ /* Options for JetPrepareUpdate */
#define JET_prepInsert 0 #define JET_prepInsert 0
#define JET_prepReplace 2 #define JET_prepReplace 2
#define JET_prepCancel 3 #define JET_prepCancel 3
#define JET_prepReplaceNoLock 4 #define JET_prepReplaceNoLock 4
#define JET_prepInsertCopy 5 #define JET_prepInsertCopy 5
#ifdef JET_VERSION_XP #if ( JET_VERSION >= 0x0501 )
#define JET_prepInsertCopyDeleteOriginal 7 // used for updating a record in the primary key; avoids the delete/insert process */ #define JET_prepInsertCopyDeleteOriginal 7 // used for updating a record in the primary key; avoids the delete/insert process */
#endif // JET_VERSION_XP #endif // JET_VERSION >= 0x0501
// Flags for JetUpdate // Flags for JetUpdate
#ifdef JET_VERSION_SERVER2003 #if ( JET_VERSION >= 0x0502 )
#define JET_bitUpdateCheckESE97Compatibility 0x00000001 // check whe ther record fits if represented in ESE97 database format #define JET_bitUpdateCheckESE97Compatibility 0x00000001 // check whe ther record fits if represented in ESE97 database format
#endif // JET_VERSION_SERVER2003 #endif // JET_VERSION >= 0x0502
/* Flags for JetEscrowUpdate */ /* Flags for JetEscrowUpdate */
#define JET_bitEscrowNoRollback 0x0001 #define JET_bitEscrowNoRollback 0x0001
/* Flags for JetRetrieveColumn */ /* Flags for JetRetrieveColumn */
#define JET_bitRetrieveCopy 0x00000001 #define JET_bitRetrieveCopy 0x00000001
#define JET_bitRetrieveFromIndex 0x00000002 #define JET_bitRetrieveFromIndex 0x00000002
#define JET_bitRetrieveFromPrimaryBookmark 0x00000004 #define JET_bitRetrieveFromPrimaryBookmark 0x00000004
#define JET_bitRetrieveTag 0x00000008 #define JET_bitRetrieveTag 0x00000008
#define JET_bitRetrieveNull 0x00000010 / * for columnid 0 only */ #define JET_bitRetrieveNull 0x00000010 / * for columnid 0 only */
#define JET_bitRetrieveIgnoreDefault 0x00000020 /* for colum nid 0 only */ #define JET_bitRetrieveIgnoreDefault 0x00000020 /* for colum nid 0 only */
#define JET_bitRetrieveLongId 0x00000040 #define JET_bitRetrieveLongId 0x00000040
#define JET_bitRetrieveLongValueRefCount 0x00000080 /* for testing u se only */ #define JET_bitRetrieveLongValueRefCount 0x00000080 /* for testing u se only */
#if ( JET_VERSION >= 0x0600 )
#define JET_bitRetrieveTuple 0x00000800 /* retrieve tu
ple fragment from index */
#endif // JET_VERSION >= 0x0600
/* Retrieve column parameter structure for JetRetrieveColumns */ /* Retrieve column parameter structure for JetRetrieveColumns */
typedef struct { typedef struct {
JET_COLUMNID columnid; JET_COLUMNID columnid;
void *pvData; void *pvData;
unsigned long cbData; unsigned long cbData;
unsigned long cbActual; unsigned long cbActual;
JET_GRBIT grbit; JET_GRBIT grbit;
unsigned long ibLongValue; unsigned long ibLongValue;
unsigned long itagSequence; unsigned long itagSequence;
JET_COLUMNID columnidNextTagged; JET_COLUMNID columnidNextTagged;
JET_ERR err; JET_ERR err;
} JET_RETRIEVECOLUMN; } JET_RETRIEVECOLUMN;
#ifdef JET_VERSION_XP #if ( JET_VERSION >= 0x0501 )
/* Flags for JetEnumerateColumns */ /* Flags for JetEnumerateColumns */
#define JET_bitEnumerateCopy JET_bitRe #define JET_bitEnumerateCopy JET_bitRetrieveCopy
trieveCopy #define JET_bitEnumerateIgnoreDefault JET_bitRetrieveIgnoreDefault
#define JET_bitEnumerateIgnoreDefault JET_bitRetrieveIg #define JET_bitEnumeratePresenceOnly 0x00020000
noreDefault #define JET_bitEnumerateTaggedOnly 0x00040000
#define JET_bitEnumeratePresenceOnly 0x00020000 #define JET_bitEnumerateCompressOutput 0x00080000
#define JET_bitEnumerateTaggedOnly 0x0004000 #if ( JET_VERSION >= 0x0502 )
0
#define JET_bitEnumerateCompressOutput 0x00080000
#ifdef JET_VERSION_SERVER2003
// Available on Server 2003 SP1 // Available on Server 2003 SP1
#define JET_bitEnumerateIgnoreUserDefinedDefault 0x00100000 #define JET_bitEnumerateIgnoreUserDefinedDefault 0x00100000
#endif // JET_VERSION_SERVER2003 #endif // JET_VERSION >= 0x0502
/* Parameter structures for JetEnumerateColumns */ /* Parameter structures for JetEnumerateColumns */
typedef struct { typedef struct {
JET_COLUMNID columnid; JET_COLUMNID columnid;
unsigned long ctagSequence; unsigned long ctagSequence;
unsigned long* rgtagSequence; unsigned long* rgtagSequence;
} JET_ENUMCOLUMNID; } JET_ENUMCOLUMNID;
typedef struct { typedef struct {
skipping to change at line 1119 skipping to change at line 1517
}; };
struct { /* err == JET_wrnColumnSingleValue */ struct { /* err == JET_wrnColumnSingleValue */
unsigned long cbData; unsigned long cbData;
void* pvData; void* pvData;
}; };
}; };
} JET_ENUMCOLUMN; } JET_ENUMCOLUMN;
/* Realloc callback for JetEnumerateColumns */ /* Realloc callback for JetEnumerateColumns */
typedef void* (JET_API *JET_PFNREALLOC)( void* pvContext, void* pv, unsigned lon typedef void* (JET_API *JET_PFNREALLOC)(
g cb ); __in_opt void * pvContext,
#endif // JET_VERSION_XP __in_opt void * pv,
__in unsigned long cb );
#endif // JET_VERSION >= 0x0501
#if ( JET_VERSION >= 0x0600 )
/* Flags for JetGetRecordSize */
#define JET_bitRecordSizeInCopyBuffer 0x00000001 // u
se record in copy buffer
#define JET_bitRecordSizeRunningTotal 0x00000002 // i
ncrement totals in output buffer instead of setting them
#define JET_bitRecordSizeLocal 0x00000004 /
/ ignore Long Values (and other data otherwise not in the same page as the
record)
/* parameter structures for JetGetRecordSize */
typedef struct {
unsigned __int64 cbData; // u
ser data in record
unsigned __int64 cbLongValueData; // user data
associated with the record but stored in the long-value tree (NOTE: does NOT co
unt intrinsic long-values)
unsigned __int64 cbOverhead; // r
ecord overhead
unsigned __int64 cbLongValueOverhead; // overhead of long-
value data (NOTE: does not count intrinsic long-values)
unsigned __int64 cNonTaggedColumns; // total num
ber of fixed/variable columns
unsigned __int64 cTaggedColumns; // total num
ber of tagged columns
unsigned __int64 cLongValues; // total num
ber of values stored in the long-value tree for this record (NOTE: does NOT coun
t intrinsic long-values)
unsigned __int64 cMultiValues; // total num
ber of values beyond the first for each column in the record
} JET_RECSIZE;
#endif // JET_VERSION >= 0x0600
#pragma warning(pop) // nonstandard extension used : nameless str uct/union #pragma warning(pop) // nonstandard extension used : nameless str uct/union
/* Flags for JetBeginTransaction2 */ /* Flags for JetBeginTransaction2 */
#ifdef JET_VERSION_XP #if ( JET_VERSION >= 0x0501 )
#define JET_bitTransactionReadOnly 0x00000001 /* transaction wi ll not modify the database */ #define JET_bitTransactionReadOnly 0x00000001 /* transaction wi ll not modify the database */
#endif // JET_VERSION_XP #endif // JET_VERSION >= 0x0501
/* Flags for JetCommitTransaction */ /* Flags for JetCommitTransaction */
#define JET_bitCommitLazyFlush 0x00000001 /* lazy flush log buffers #define JET_bitCommitLazyFlush 0x00000001 /* lazy flush log
. */ buffers. */
#define JET_bitWaitLastLevel0Commit 0x00000002 /* wait for last level 0 #define JET_bitWaitLastLevel0Commit 0x00000002 /* wait for last
commit record flushed */ level 0 commit record flushed */
#ifdef JET_VERSION_SERVER2003 #if ( JET_VERSION >= 0x0502 )
#define JET_bitWaitAllLevel0Commit 0x00000008 /* wait for all level 0 c #define JET_bitWaitAllLevel0Commit 0x00000008 /* wait for all l
ommits to be flushed */ evel 0 commits to be flushed */
#endif // JET_VERSION_SERVER2003 #endif // JET_VERSION >= 0x0502
/* Flags for JetRollback */ /* Flags for JetRollback */
#define JET_bitRollbackAll 0x00000001 #define JET_bitRollbackAll 0x00000001
#if ( JET_VERSION >= 0x0600 )
/* Flags for JetOSSnapshot APIs */
/* Flags for JetOSSnapshotPrepare */
#define JET_bitIncrementalSnapshot 0x00000001 /* bit 0: full (0
) or incremental (1) snapshot */
#define JET_bitCopySnapshot 0x00000002 /* bit 1:
normal (0) or copy (1) snapshot */
#define JET_bitContinueAfterThaw 0x00000004 /* bit 2: end on
thaw (0) or wait for [truncate +] end snapshot */
/* Flags for JetOSSnapshotTruncateLog & JetOSSnapshotTruncateLogInstance
*/
#define JET_bitAllDatabasesSnapshot 0x00000001 /* bit 0: there a
re detached dbs in the instance (i.e. can't truncate logs) */
/* Flags for JetOSSnapshotEnd */
#define JET_bitAbortSnapshot 0x00000001 /* snapshot process f
ailed */
#endif // JET_VERSION >= 0x0600
/* Info parameter for JetGetDatabaseInfo */ /* Info parameter for JetGetDatabaseInfo */
#define JET_DbInfoFilename 0 #define JET_DbInfoFilename 0
#define JET_DbInfoConnect 1 #define JET_DbInfoConnect 1
#define JET_DbInfoCountry 2 #define JET_DbInfoCountry 2
#ifdef JET_VERSION_XP #if ( JET_VERSION >= 0x0501 )
#define JET_DbInfoLCID 3 #define JET_DbInfoLCID 3
#endif // JET_VERSION_XP #endif // JET_VERSION >= 0x0501
#define JET_DbInfoLangid 3 // OBSOLETE: use JET_DbInfoLCID instead #define JET_DbInfoLangid 3 // OBSOLETE: use JET_DbInfoLCID instead
#define JET_DbInfoCp 4 #define JET_DbInfoCp 4
#define JET_DbInfoCollate 5 #define JET_DbInfoCollate 5
#define JET_DbInfoOptions 6 #define JET_DbInfoOptions 6
#define JET_DbInfoTransactions 7 #define JET_DbInfoTransactions 7
#define JET_DbInfoVersion 8 #define JET_DbInfoVersion 8
#define JET_DbInfoIsam 9 #define JET_DbInfoIsam 9
#define JET_DbInfoFilesize 10 #define JET_DbInfoFilesize 10
#define JET_DbInfoSpaceOwned 11 #define JET_DbInfoSpaceOwned 11
#define JET_DbInfoSpaceAvailable 12 #define JET_DbInfoSpaceAvailable 12
#define JET_DbInfoUpgrade 13 #define JET_DbInfoUpgrade 13
#define JET_DbInfoMisc 14 #define JET_DbInfoMisc 14
#ifdef JET_VERSION_XP #if ( JET_VERSION >= 0x0501 )
#define JET_DbInfoDBInUse 15 #define JET_DbInfoDBInUse 15
#define JET_DbInfoPageSize 17 #define JET_DbInfoPageSize 17
#endif // JET_VERSION_XP #endif // JET_VERSION >= 0x0501
#if ( JET_VERSION >= 0x0600 )
#define JET_DbInfoFileType 19
#endif // JET_VERSION >= 0x0600
/* Dbstates from JetGetDatabaseFileInfo */ /* Dbstates from JetGetDatabaseFileInfo */
#define JET_dbstateJustCreated 1 #define JET_dbstateJustCreated 1
#define JET_dbstateDirtyShutdown 2 #define JET_dbstateDirtyShutdown 2
#define JET_dbstateCleanShutdown 3 #define JET_dbstateCleanShutdown 3
#define JET_dbstateBeingConverted 4 #define JET_dbstateBeingConverted 4
#ifdef JET_VERSION_XP #if ( JET_VERSION >= 0x0501 )
#define JET_dbstateForceDetach 5 #define JET_dbstateForceDetach 5
#endif // JET_VERSION_XP #endif // JET_VERSION >= 0x0501
#if ( JET_VERSION >= 0x0600 )
// supported file types (returned from JetGetDatabaseFileInfo with J
ET_DbInfoFileType)
#define JET_filetypeUnknown 0
#define JET_filetypeDatabase 1
#define JET_filetypeLog 3
#define JET_filetypeCheckpoint 4
#define JET_filetypeTempDatabase 5
#endif // JET_VERSION >= 0x0600
/* Column data types */ /* Column data types */
#define JET_coltypNil 0 #define JET_coltypNil 0
#define JET_coltypBit 1 /* True or False, Never NU #define JET_coltypBit 1 /* True, False, o
LL */ r NULL */
#define JET_coltypUnsignedByte 2 /* 1-byte integer, unsigned */ #define JET_coltypUnsignedByte 2 /* 1-byte integer, unsigned */
#define JET_coltypShort 3 /* 2-byte integer, signed #define JET_coltypShort 3 /* 2-byte integer
*/ , signed */
#define JET_coltypLong 4 /* 4-byte integer, signed #define JET_coltypLong 4 /* 4-byte integer, signed
*/ */
#define JET_coltypCurrency 5 /* 8 byte integer, signed #define JET_coltypCurrency 5 /* 8 byte integer, signed
*/ */
#define JET_coltypIEEESingle 6 /* 4-byte IEEE single precision */ #define JET_coltypIEEESingle 6 /* 4-byte IEEE single pre
#define JET_coltypIEEEDouble 7 /* 8-byte IEEE double precision */ cision */
#define JET_coltypDateTime 8 /* Integral date, fraction #define JET_coltypIEEEDouble 7 /* 8-byte IEEE double pre
al time */ cision */
#define JET_coltypBinary 9 /* Binary data, < 255 byte #define JET_coltypDateTime 8 /* Integral date, fractio
s */ nal time */
#define JET_coltypText 10 /* ANSI text, case insensi #define JET_coltypBinary 9 /* Binary data, <
tive, < 255 bytes */ 255 bytes */
#define JET_coltypLongBinary 11 /* Binary data, long value */ #define JET_coltypText 10 /* ANSI text, case insens
#define JET_coltypLongText 12 /* ANSI text, long value * itive, < 255 bytes */
/ #define JET_coltypLongBinary 11 /* Binary data, long valu
#ifdef JET_VERSION_XP e */
#define JET_coltypSLV 13 /* SLV's. Reserved. */ #define JET_coltypLongText 12 /* ANSI text, long value
*/
#if ( JET_VERSION >= 0x0600 )
#define JET_coltypSLV 13 /* SLV's */
#define JET_coltypUnsignedLong 14 /* 4-byte unsigned integer */
#define JET_coltypLongLong 15 /* 8-byte signed integer
*/
#define JET_coltypGUID 16 /* 16-byte globally uniqu
e identifier */
#define JET_coltypUnsignedShort 17 /* 2-byte unsigned intege
r */
#define JET_coltypMax 18 /* the number of column t
ypes */
/
* used for validity tests and */
/
* array declarations. */
#elif ( JET_VERSION >= 0x0501 )
#define JET_coltypSLV 13 /* SLV's */
#define JET_coltypMax 14 /* the number of column types */ #define JET_coltypMax 14 /* the number of column types */
/* used for validity tests and */ /* used for validity tests and */
/* array declarations. */ /* array declarations. */
#else // !JET_VERSION_XP #else // !JET_VERSION >= 0x0501
#define JET_coltypMax 13 /* the number of column types */ #define JET_coltypMax 13 /* the number of column types */
/* used for validity tests and */ /* used for validity tests and */
/* array declarations. */ /* array declarations. */
#endif // !JET_VERSION_XP #endif // !JET_VERSION >= 0x0501
/* Info levels for JetGetObjectInfo */ /* Info levels for JetGetObjectInfo */
#define JET_ObjInfo 0U #define JET_ObjInfo 0U
#define JET_ObjInfoListNoStats 1U #define JET_ObjInfoListNoStats 1U
#define JET_ObjInfoList 2U #define JET_ObjInfoList 2U
#define JET_ObjInfoSysTabCursor 3U #define JET_ObjInfoSysTabCursor 3U
#define JET_ObjInfoListACM 4U /* Blocked by JetGetObjectInfo */ #define JET_ObjInfoListACM 4U /* Blocked by JetGetObjectInfo */
#define JET_ObjInfoNoStats 5U #define JET_ObjInfoNoStats 5U
#define JET_ObjInfoSysTabReadOnly 6U #define JET_ObjInfoSysTabReadOnly 6U
skipping to change at line 1239 skipping to change at line 1702
#define JET_TblInfoTemplateTableName 12U #define JET_TblInfoTemplateTableName 12U
/* Info levels for JetGetIndexInfo and JetGetTableIndexInfo */ /* Info levels for JetGetIndexInfo and JetGetTableIndexInfo */
#define JET_IdxInfo 0U #define JET_IdxInfo 0U
#define JET_IdxInfoList 1U #define JET_IdxInfoList 1U
#define JET_IdxInfoSysTabCursor 2U #define JET_IdxInfoSysTabCursor 2U
#define JET_IdxInfoOLC 3U #define JET_IdxInfoOLC 3U
#define JET_IdxInfoResetOLC 4U #define JET_IdxInfoResetOLC 4U
#define JET_IdxInfoSpaceAlloc 5U #define JET_IdxInfoSpaceAlloc 5U
#ifdef JET_VERSION_XP #if ( JET_VERSION >= 0x0501 )
#define JET_IdxInfoLCID 6U #define JET_IdxInfoLCID 6U
#endif // JET_VERSION_XP #endif // JET_VERSION >= 0x0501
#define JET_IdxInfoLangid 6U // OBSOLETE: use JET_IdxInfoLCID instead #define JET_IdxInfoLangid 6U // OBSOLETE: use JET_IdxInfoLCID instead
#define JET_IdxInfoCount 7U #define JET_IdxInfoCount 7U
#define JET_IdxInfoVarSegMac 8U #define JET_IdxInfoVarSegMac 8U
#define JET_IdxInfoIndexId 9U #define JET_IdxInfoIndexId 9U
#if ( JET_VERSION >= 0x0600 )
#define JET_IdxInfoKeyMost 10U
#endif // JET_VERSION >= 0x0600
/* Info levels for JetGetColumnInfo and JetGetTableColumnInfo */ /* Info levels for JetGetColumnInfo and JetGetTableColumnInfo */
#define JET_ColInfo 0U #define JET_ColInfo 0U
#define JET_ColInfoList 1U #define JET_ColInfoList 1U
#define JET_ColInfoSysTabCursor 3U #define JET_ColInfoSysTabCursor 3U
#define JET_ColInfoBase 4U #define JET_ColInfoBase 4U
#define JET_ColInfoListCompact 5U #define JET_ColInfoListCompact 5U // INTERNAL
#ifdef JET_VERSION_XP USE ONLY
#if ( JET_VERSION >= 0x0501 )
#define JET_ColInfoByColid 6U #define JET_ColInfoByColid 6U
#define JET_ColInfoListSortColumnid 7U // same as JET_ColInfoList e #define JET_ColInfoListSortColumnid 7U // OBSOLETE: use grb
xcept PresentationOrder is set to columnid it instead
#endif // JET_VERSION >= 0x0501
// to force sorting by columnid #if ( JET_VERSION >= 0x0600 )
#endif // JET_VERSION_XP #define JET_ColInfoBaseByColid 8U
#endif // JET_VERSION >= 0x0600
#if ( JET_VERSION >= 0x0600 )
// Grbits for JET_GetColumnInfo and JetGetTableColumnInfo (OR tog
ether with the info level)
#define JET_ColInfoGrbitNonDerivedColumnsOnly 0x80000000 // for lists
, only return non-derived columns (if the table is derived from a template)
#define JET_ColInfoGrbitMinimalInfo 0x40000000 /
/ for lists, only return the column name and columnid of each column
#define JET_ColInfoGrbitSortByColumnid 0x20000000 // f
or lists, sort returned column list by columnid (default is to sort list by colu
mn name)
#endif // JET_VERSION >= 0x0600
#if ( JET_VERSION >= 0x0600 )
/* Info levels for JetGetInstanceMiscInfo, which is very different than J
etGetInstanceInfo, as that retrieves a list of all instances */
#define JET_InstanceMiscInfoLogSignature 0U
#endif // JET_VERSION >= 0x0600
/* Engine Object Types */ /* Engine Object Types */
#define JET_objtypNil 0 #define JET_objtypNil 0
#define JET_objtypTable 1 #define JET_objtypTable 1
/* Compact Options */ /* Compact Options */
#define JET_bitCompactStats 0x00000020 /* Dump o ff-line compaction stats (only when progress meter also specified) */ #define JET_bitCompactStats 0x00000020 /* Dump o ff-line compaction stats (only when progress meter also specified) */
#define JET_bitCompactRepair 0x00000040 /* Don't preread and ignore duplicate keys */ #define JET_bitCompactRepair 0x00000040 /* Don't preread and ignore duplicate keys */
/* Status Notification Processes */ /* Status Notification Processes */
#define JET_snpRepair 2 #define JET_snpRepair 2
#define JET_snpCompact 4 #define JET_snpCompact 4
#define JET_snpRestore 8 #define JET_snpRestore 8
#define JET_snpBackup 9 #define JET_snpBackup 9
#define JET_snpUpgrade 10 #define JET_snpUpgrade 10
#ifdef JET_VERSION_XP #if ( JET_VERSION >= 0x0501 )
#define JET_snpScrub 11 #define JET_snpScrub 11
#define JET_snpUpgradeRecordFormat 12 #define JET_snpUpgradeRecordFormat 12
#endif // JET_VERSION_XP #endif // JET_VERSION >= 0x0501
/* Status Notification Types */ /* Status Notification Types */
#define JET_sntBegin 5 /* callback for beginning of oper ation */ #define JET_sntBegin 5 /* callback for beginning of oper ation */
#define JET_sntRequirements 7 /* callback for returning operati on requirements */ #define JET_sntRequirements 7 /* callback for returning operati on requirements */
#define JET_sntProgress 0 /* callback for progress */ #define JET_sntProgress 0 /* callback for progress */
#define JET_sntComplete 6 /* callback for completion of ope ration */ #define JET_sntComplete 6 /* callback for completion of ope ration */
#define JET_sntFail 3 /* callback for failure d uring progress */ #define JET_sntFail 3 /* callback for failure d uring progress */
/* Exception action */ /* Exception action */
#define JET_ExceptionMsgBox 0x0001 /* Display message box on exception */ #define JET_ExceptionMsgBox 0x0001 /* Display message box on exception */
#define JET_ExceptionNone 0x0002 /* Do nothing on exceptio ns */ #define JET_ExceptionNone 0x0002 /* Do nothing on exceptio ns */
#ifdef JET_VERSION_XP #if ( JET_VERSION >= 0x0501 )
// Online defragmentation options // Online defragmentation options
#define JET_OnlineDefragDisable 0x0000 // d isable online defrag #define JET_OnlineDefragDisable 0x0000 // d isable online defrag
#define JET_OnlineDefragAllOBSOLETE 0x0001 // enable on line defrag for everything (must be 1 for backward compatibility) #define JET_OnlineDefragAllOBSOLETE 0x0001 // enable on line defrag for everything (must be 1 for backward compatibility)
#define JET_OnlineDefragDatabases 0x0002 // enable on line defrag of databases #define JET_OnlineDefragDatabases 0x0002 // enable on line defrag of databases
#define JET_OnlineDefragSpaceTrees 0x0004 // enable on line defrag of space trees #define JET_OnlineDefragSpaceTrees 0x0004 // enable on line defrag of space trees
#define JET_OnlineDefragAll 0xffff // e nable online defrag for everything #define JET_OnlineDefragAll 0xffff // e nable online defrag for everything
#endif // JET_VERSION_XP #endif // JET_VERSION >= 0x0501
/**********************************************************************/ /**********************************************************************/
/*********************** ERROR CODES **************************/ /*********************** ERROR CODES **************************/
/**********************************************************************/ /**********************************************************************/
/* The Error codes are not versioned with WINVER. */ /* The Error codes are not versioned with WINVER. */
/* SUCCESS */ /* SUCCESS */
#define JET_errSuccess 0 /* Successf ul Operation */ #define JET_errSuccess 0 /* Successf ul Operation */
skipping to change at line 1341 skipping to change at line 1826
#define JET_errDatabaseBufferDependenciesCorrupted -255 /* Buffer depende ncies improperly set. Recovery failure */ #define JET_errDatabaseBufferDependenciesCorrupted -255 /* Buffer depende ncies improperly set. Recovery failure */
/* DIRECTORY MANAGER errors /* DIRECTORY MANAGER errors
/**/ /**/
#define JET_wrnRemainingVersions 321 /* The version stor e is still active */ #define JET_wrnRemainingVersions 321 /* The version stor e is still active */
#define JET_errPreviousVersion -322 /* Version already existed. Recovery failure */ #define JET_errPreviousVersion -322 /* Version already existed. Recovery failure */
#define JET_errPageBoundary -323 /* Reached Page Boundary */ #define JET_errPageBoundary -323 /* Reached Page Boundary */
#define JET_errKeyBoundary -324 /* Reached Key Boundary */ #define JET_errKeyBoundary -324 /* Reached Key Boundary */
#define JET_errBadPageLink -327 /* Database corrupted */ #define JET_errBadPageLink -327 /* Database corrupted */
#define JET_errBadBookmark -328 /* Bookmark has no corresponding address in database */ #define JET_errBadBookmark -328 /* Bookmark has no corresponding address in database */
#define JET_errNTSystemCallFailed -334 /* A call to the op #define JET_errNTSystemCallFailed -334 // A call to the op
erating system failed */ erating system failed
#define JET_errBadParentPageLink -338 /* Database corrupt #define JET_errBadParentPageLink -338 // Database
ed */ corrupted
#define JET_errSPAvailExtCacheOutOfSync -340 // AvailExt cache d oesn't match btree #define JET_errSPAvailExtCacheOutOfSync -340 // AvailExt cache d oesn't match btree
#define JET_errSPAvailExtCorrupted -341 // AvailExt space t ree is corrupt #define JET_errSPAvailExtCorrupted -341 // AvailExt space t ree is corrupt
#define JET_errSPAvailExtCacheOutOfMemory -342 // Out of memory allocating an AvailExt cache node #define JET_errSPAvailExtCacheOutOfMemory -342 // Out of memory allocating an AvailExt cache node
#define JET_errSPOwnExtCorrupted -343 // OwnExt space tre e is corrupt #define JET_errSPOwnExtCorrupted -343 // OwnExt space tre e is corrupt
#define JET_errDbTimeCorrupted -344 // Dbtime on curren t page is greater than global database dbtime #define JET_errDbTimeCorrupted -344 // Dbtime on curren t page is greater than global database dbtime
#define JET_wrnUniqueKey 345 // seek on non-unique index yielded a unique key #define JET_wrnUniqueKey 345 // seek on non-unique index yielded a unique key
#define JET_errKeyTruncated -346 // key trun cated on index that disallows key truncation
/* RECORD MANAGER errors /* RECORD MANAGER errors
/**/ /**/
#define JET_wrnSeparateLongValue 406 /* Column is a sepa rated long-value */ #define JET_wrnSeparateLongValue 406 /* Column is a sepa rated long-value */
#define JET_wrnRecordFoundGreater JET_wrnSeekNotEqual #define JET_wrnRecordFoundGreater JET_wrnSeekNotEqual
#define JET_wrnRecordFoundLess JET_wrnSeekNotEqual #define JET_wrnRecordFoundLess JET_wrnSeekNotEqual
#define JET_errColumnIllegalNull JET_errNullInvalid #define JET_errColumnIllegalNull JET_errNullInvalid
#define JET_errKeyTooBig -408 /* Key is t oo large */ #define JET_errKeyTooBig -408 /* Key is t oo large */
/* LOGGING/RECOVERY errors /* LOGGING/RECOVERY errors
skipping to change at line 1439 skipping to change at line 1925
#define JET_errLogTornWriteDuringHardRestore -570 /* torn-write was detecte d in a backup set during hard restore */ #define JET_errLogTornWriteDuringHardRestore -570 /* torn-write was detecte d in a backup set during hard restore */
#define JET_errLogTornWriteDuringHardRecovery -571 /* torn-write was detecte d during hard recovery (log was not part of a backup set) */ #define JET_errLogTornWriteDuringHardRecovery -571 /* torn-write was detecte d during hard recovery (log was not part of a backup set) */
#define JET_errLogCorruptDuringHardRestore -573 /* corruption was detected in a backup set during hard restore */ #define JET_errLogCorruptDuringHardRestore -573 /* corruption was detected in a backup set during hard restore */
#define JET_errLogCorruptDuringHardRecovery -574 /* corruption was detected during hard recovery (log was not part of a backup set) */ #define JET_errLogCorruptDuringHardRecovery -574 /* corruption was detected during hard recovery (log was not part of a backup set) */
#define JET_errMustDisableLoggingForDbUpgrade -575 /* Cannot have logging en abled while attempting to upgrade db */ #define JET_errMustDisableLoggingForDbUpgrade -575 /* Cannot have logging en abled while attempting to upgrade db */
#define JET_errBadRestoreTargetInstance -577 /* Target Instance specified for restore is not found or log files don't match */ #define JET_errBadRestoreTargetInstance -577 /* Target Instance specified for restore is not found or log files don't match */
#define JET_wrnTargetInstanceRunning 578 /* TargetInstance specified for restore is running */ #define JET_wrnTargetInstanceRunning 578 /* TargetInstance specified for restore is running */
#define JET_errDatabasesNotFromSameSnapshot -580 /* Databases to b #define JET_errRecoveredWithoutUndo -579 /* Soft r
e restored are not from the same shadow copy backup */ ecovery successfully replayed all operations, but the Undo phase of recovery was
#define JET_errSoftRecoveryOnSnapshot -581 /* Soft recovery skipped */
on a database from a shadow copy backup set */
#define JET_errDatabasesNotFromSameSnapshot -580 /* Databa
ses to be restored are not from the same shadow copy backup */
#define JET_errSoftRecoveryOnSnapshot -581 /* Soft r
ecovery on a database from a shadow copy backup set */
#define JET_errSectorSizeNotSupported -583 /* The ph
ysical sector size reported by the disk subsystem, is unsupported by ESE for a s
pecific file type. */
#define JET_wrnDatabaseRepaired 595 / * Database corruption has been repaired */ #define JET_wrnDatabaseRepaired 595 / * Database corruption has been repaired */
#define JET_errUnicodeTranslationBufferTooSmall -601 /* Unicode transl ation buffer too small */ #define JET_errUnicodeTranslationBufferTooSmall -601 /* Unicode transl ation buffer too small */
#define JET_errUnicodeTranslationFail -602 /* Unicode normal ization failed */ #define JET_errUnicodeTranslationFail -602 /* Unicode normal ization failed */
#define JET_errUnicodeNormalizationNotSupported -603 /* OS does not pr ovide support for Unicode normalisation (and no normalisation callback was speci fied) */ #define JET_errUnicodeNormalizationNotSupported -603 /* OS does not pr ovide support for Unicode normalisation (and no normalisation callback was speci fied) */
#define JET_errExistingLogFileHasBadSignature -610 /* Existing log file has bad signature */ #define JET_errExistingLogFileHasBadSignature -610 /* Existing log file has bad signature */
#define JET_errExistingLogFileIsNotContiguous -611 /* Existing log file is n ot contiguous */ #define JET_errExistingLogFileIsNotContiguous -611 /* Existing log file is n ot contiguous */
#define JET_errLogReadVerifyFailure -612 /* Checksum error i n log file during backup */ #define JET_errLogReadVerifyFailure -612 /* Checksum error i n log file during backup */
#define JET_errSLVReadVerifyFailure -613 /* Checksum error i n SLV file during backup */ #define JET_errSLVReadVerifyFailure -613 /* Checksum error i n SLV file during backup */
#define JET_errCheckpointDepthTooDeep -614 // too many outstand ing generations between checkpoint and current generation #define JET_errCheckpointDepthTooDeep -614 // too many outstand ing generations between checkpoint and current generation
#define JET_errRestoreOfNonBackupDatabase -615 // hard recovery att empted on a database that wasn't a backup database #define JET_errRestoreOfNonBackupDatabase -615 // hard recovery att empted on a database that wasn't a backup database
#define JET_errLogFileNotCopied -616 // l og truncation attempted but not all required logs were copied
#define JET_errInvalidGrbit -900 /* Invalid parameter */ #define JET_errInvalidGrbit -900 /* Invalid parameter */
#define JET_errTermInProgress -1000 /* Termination in p rogress */ #define JET_errTermInProgress -1000 /* Termination in p rogress */
#define JET_errFeatureNotAvailable -1001 /* API not supporte d */ #define JET_errFeatureNotAvailable -1001 /* API not supporte d */
#define JET_errInvalidName -1002 /* Invalid name */ #define JET_errInvalidName -1002 /* Invalid name */
#define JET_errInvalidParameter -1003 /* Invalid API para meter */ #define JET_errInvalidParameter -1003 /* Invalid API para meter */
#define JET_wrnColumnNull 1004 /* Column i s NULL-valued */ #define JET_wrnColumnNull 1004 /* Column i s NULL-valued */
#define JET_wrnBufferTruncated 1006 /* Buffer too small for data */ #define JET_wrnBufferTruncated 1006 /* Buffer too small for data */
#define JET_wrnDatabaseAttached 1007 /* Database is alre ady attached */ #define JET_wrnDatabaseAttached 1007 /* Database is alre ady attached */
skipping to change at line 1551 skipping to change at line 2041
#define JET_errInvalidSesid -1104 /* Invalid session handle */ #define JET_errInvalidSesid -1104 /* Invalid session handle */
#define JET_errWriteConflictPrimaryIndex -1105 /* Update attempted on unco mmitted primary index */ #define JET_errWriteConflictPrimaryIndex -1105 /* Update attempted on unco mmitted primary index */
#define JET_errInTransaction -1108 /* Operation not al lowed within a transaction */ #define JET_errInTransaction -1108 /* Operation not al lowed within a transaction */
#define JET_errRollbackRequired -1109 /* Must rol lback current transaction -- cannot commit or begin a new one */ #define JET_errRollbackRequired -1109 /* Must rol lback current transaction -- cannot commit or begin a new one */
#define JET_errTransReadOnly -1110 /* Read-only transa ction tried to modify the database */ #define JET_errTransReadOnly -1110 /* Read-only transa ction tried to modify the database */
#define JET_errSessionWriteConflict -1111 /* Attempt to repla ce the same record by two diffrerent cursors in the same session */ #define JET_errSessionWriteConflict -1111 /* Attempt to repla ce the same record by two diffrerent cursors in the same session */
#define JET_errRecordTooBigForBackwardCompatibility - 1112 /* record would be too big if represented in a database format from a previ ous version of Jet */ #define JET_errRecordTooBigForBackwardCompatibility - 1112 /* record would be too big if represented in a database format from a previ ous version of Jet */
#define JET_errCannotMaterializeForwardOnlySort -1113 /* The temp table could not be created due to parameters that confl ict with JET_bitTTForwardOnly */ #define JET_errCannotMaterializeForwardOnlySort -1113 /* The temp table could not be created due to parameters that confl ict with JET_bitTTForwardOnly */
#define JET_errSesidTableIdMismatch -1114 /* This session han
dle can't be used with this table id */
#define JET_errInvalidInstance -1115 /* Invalid instance
handle */
#define JET_errDatabaseDuplicate -1201 /* Database already exists */ #define JET_errDatabaseDuplicate -1201 /* Database already exists */
#define JET_errDatabaseInUse -1202 /* Database in use */ #define JET_errDatabaseInUse -1202 /* Database in use */
#define JET_errDatabaseNotFound -1203 /* No such database */ #define JET_errDatabaseNotFound -1203 /* No such database */
#define JET_errDatabaseInvalidName -1204 /* Invalid database name */ #define JET_errDatabaseInvalidName -1204 /* Invalid database name */
#define JET_errDatabaseInvalidPages -1205 /* Invalid number o f pages */ #define JET_errDatabaseInvalidPages -1205 /* Invalid number o f pages */
#define JET_errDatabaseCorrupted -1206 /* Non database fil e or corrupted db */ #define JET_errDatabaseCorrupted -1206 /* Non database fil e or corrupted db */
#define JET_errDatabaseLocked -1207 /* Database exclusi vely locked */ #define JET_errDatabaseLocked -1207 /* Database exclusi vely locked */
#define JET_errCannotDisableVersioning -1208 /* Cannot disable versionin g for this database */ #define JET_errCannotDisableVersioning -1208 /* Cannot disable versionin g for this database */
#define JET_errInvalidDatabaseVersion -1209 /* Database engine is incom patible with database */ #define JET_errInvalidDatabaseVersion -1209 /* Database engine is incom patible with database */
skipping to change at line 1580 skipping to change at line 2073
#define JET_errDatabaseSharingViolation -1215 /* A different data base instance is using this database */ #define JET_errDatabaseSharingViolation -1215 /* A different data base instance is using this database */
#define JET_errAttachedDatabaseMismatch -1216 /* An outstanding d atabase attachment has been detected at the start or end of recovery, but databa se is missing or does not match attachment info */ #define JET_errAttachedDatabaseMismatch -1216 /* An outstanding d atabase attachment has been detected at the start or end of recovery, but databa se is missing or does not match attachment info */
#define JET_errDatabaseInvalidPath -1217 /* Specified path t o database file is illegal */ #define JET_errDatabaseInvalidPath -1217 /* Specified path t o database file is illegal */
#define JET_errDatabaseIdInUse -1218 /* A database is be ing assigned an id already in use */ #define JET_errDatabaseIdInUse -1218 /* A database is be ing assigned an id already in use */
#define JET_errForceDetachNotAllowed -1219 /* Force Detach allowed onl y after normal detach errored out */ #define JET_errForceDetachNotAllowed -1219 /* Force Detach allowed onl y after normal detach errored out */
#define JET_errCatalogCorrupted -1220 /* Corrupti on detected in catalog */ #define JET_errCatalogCorrupted -1220 /* Corrupti on detected in catalog */
#define JET_errPartiallyAttachedDB -1221 /* Database is part ially attached. Cannot complete attach operation */ #define JET_errPartiallyAttachedDB -1221 /* Database is part ially attached. Cannot complete attach operation */
#define JET_errDatabaseSignInUse -1222 /* Database with sa me signature in use */ #define JET_errDatabaseSignInUse -1222 /* Database with sa me signature in use */
#define JET_errDatabaseCorruptedNoRepair -1224 /* Corrupted db but repair not allowed */ #define JET_errDatabaseCorruptedNoRepair -1224 /* Corrupted db but repair not allowed */
#define JET_errInvalidCreateDbVersion -1225 /* recovery tried to replay a database creation, but the database was originally created with an incompatib le (likely older) version of the database engine */
#define JET_wrnTableEmpty 1301 /* Opened a n empty table */ #define JET_wrnTableEmpty 1301 /* Opened a n empty table */
#define JET_errTableLocked -1302 /* Table is exclusively locked */ #define JET_errTableLocked -1302 /* Table is exclusively locked */
#define JET_errTableDuplicate -1303 /* Table already ex ists */ #define JET_errTableDuplicate -1303 /* Table already ex ists */
#define JET_errTableInUse -1304 /* Table is in use, cannot lock */ #define JET_errTableInUse -1304 /* Table is in use, cannot lock */
#define JET_errObjectNotFound -1305 /* No such table or object */ #define JET_errObjectNotFound -1305 /* No such table or object */
#define JET_errDensityInvalid -1307 /* Bad file/index d ensity */ #define JET_errDensityInvalid -1307 /* Bad file/index d ensity */
#define JET_errTableNotEmpty -1308 /* Table is not emp ty */ #define JET_errTableNotEmpty -1308 /* Table is not emp ty */
#define JET_errInvalidTableId -1310 /* Invalid table id */ #define JET_errInvalidTableId -1310 /* Invalid table id */
#define JET_errTooManyOpenTables -1311 /* Cannot open any more tables (cleanup already attempted) */ #define JET_errTooManyOpenTables -1311 /* Cannot open any more tables (cleanup already attempted) */
skipping to change at line 1623 skipping to change at line 2117
#define JET_errInvalidCreateIndex -1409 /* Invalid create i ndex description */ #define JET_errInvalidCreateIndex -1409 /* Invalid create i ndex description */
#define JET_errTooManyOpenIndexes -1410 /* Out of index des cription blocks */ #define JET_errTooManyOpenIndexes -1410 /* Out of index des cription blocks */
#define JET_errMultiValuedIndexViolation -1411 /* Non-unique inter-record index keys generated for a multivalued index */ #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_errIndexBuildCorrupted -1412 /* Failed to build a secondary index that properly reflects primary index */
#define JET_errPrimaryIndexCorrupted -1413 /* Primary index is corrupt . The database must be defragmented */ #define JET_errPrimaryIndexCorrupted -1413 /* Primary index is corrupt . The database must be defragmented */
#define JET_errSecondaryIndexCorrupted -1414 /* Secondary index is corru pt. The database must be defragmented */ #define JET_errSecondaryIndexCorrupted -1414 /* Secondary index is corru pt. The database must be defragmented */
#define JET_wrnCorruptIndexDeleted 1415 /* Out of date inde x removed */ #define JET_wrnCorruptIndexDeleted 1415 /* Out of date inde x removed */
#define JET_errInvalidIndexId -1416 /* Illegal index id */ #define JET_errInvalidIndexId -1416 /* Illegal index id */
#define JET_errIndexTuplesSecondaryIndexOnly -1430 // tuple ind ex can only be on a secondary index #define JET_errIndexTuplesSecondaryIndexOnly -1430 // tuple ind ex can only be on a secondary index
#define JET_errIndexTuplesOneColumnOnly -1431 / #define JET_errIndexTuplesTooManyColumns -1431 // t
/ tuple index may only have one column in the index uple index may only have eleven columns in the index
#define JET_errIndexTuplesOneColumnOnly JET_errIn
dexTuplesTooManyColumns /* OBSOLETE */
#define JET_errIndexTuplesNonUniqueOnly -1432 / / tuple index must be a non-unique index #define JET_errIndexTuplesNonUniqueOnly -1432 / / tuple index must be a non-unique index
#define JET_errIndexTuplesTextColumnsOnly -1433 // t #define JET_errIndexTuplesTextBinaryColumnsOnly -1433 // t
uple index must be on a text column uple index must be on a text/binary column
#define JET_errIndexTuplesTextColumnsOnly JET_errIndexTuple
sTextBinaryColumnsOnly /* OBSOLETE */
#define JET_errIndexTuplesVarSegMacNotAllowed -1434 // tuple ind ex does not allow setting cbVarSegMac #define JET_errIndexTuplesVarSegMacNotAllowed -1434 // tuple ind ex does not allow setting cbVarSegMac
#define JET_errIndexTuplesInvalidLimits -1435 / / invalid min/max tuple length or max characters to index specified #define JET_errIndexTuplesInvalidLimits -1435 / / invalid min/max tuple length or max characters to index specified
#define JET_errIndexTuplesCannotRetrieveFromIndex -1436 // cannot ca ll RetrieveColumn() with RetrieveFromIndex on a tuple index #define JET_errIndexTuplesCannotRetrieveFromIndex -1436 // cannot ca ll RetrieveColumn() with RetrieveFromIndex on a tuple index
#define JET_errIndexTuplesKeyTooSmall -1437 // s pecified key does not meet minimum tuple length #define JET_errIndexTuplesKeyTooSmall -1437 // s pecified key does not meet minimum tuple length
#define JET_errColumnLong -1501 /* Column v alue is long */ #define JET_errColumnLong -1501 /* Column v alue is long */
#define JET_errColumnNoChunk -1502 /* No such chunk in long value */ #define JET_errColumnNoChunk -1502 /* No such chunk in long value */
#define JET_errColumnDoesNotFit -1503 /* Field will not f it in record */ #define JET_errColumnDoesNotFit -1503 /* Field will not f it in record */
#define JET_errNullInvalid -1504 /* Null not valid */ #define JET_errNullInvalid -1504 /* Null not valid */
#define JET_errColumnIndexed -1505 /* Column indexed, cannot delete */ #define JET_errColumnIndexed -1505 /* Column indexed, cannot delete */
skipping to change at line 1663 skipping to change at line 2159
#define JET_errLVCorrupted -1526 /* Corrupti on encountered in long-value tree */ #define JET_errLVCorrupted -1526 /* Corrupti on encountered in long-value tree */
#define JET_errMultiValuedDuplicateAfterTruncation -1528 /* Duplicate detect ed on a unique multi-valued column after data was normalized, and normalizing tr uncated the data before comparison */ #define JET_errMultiValuedDuplicateAfterTruncation -1528 /* Duplicate detect ed on a unique multi-valued column after data was normalized, and normalizing tr uncated the data before comparison */
#define JET_errDerivedColumnCorruption -1529 /* Invalid column in derive d table */ #define JET_errDerivedColumnCorruption -1529 /* Invalid column in derive d table */
#define JET_errInvalidPlaceholderColumn -1530 /* Tried to convert column to a primary index placeholder, but column doesn't meet necessary criter ia */ #define JET_errInvalidPlaceholderColumn -1530 /* Tried to convert column to a primary index placeholder, but column doesn't meet necessary criter ia */
#define JET_wrnColumnSkipped 1531 /* Column value(s) not returned because the corresponding column id or itagSequence requested for e numeration was null */ #define JET_wrnColumnSkipped 1531 /* Column value(s) not returned because the corresponding column id or itagSequence requested for e numeration was null */
#define JET_wrnColumnNotLocal 1532 /* Column value(s) not returned because they could not be reconstructed from the data at hand */ #define JET_wrnColumnNotLocal 1532 /* Column value(s) not returned because they could not be reconstructed from the data at hand */
#define JET_wrnColumnMoreTags 1533 /* Column values ex ist that were not requested for enumeration */ #define JET_wrnColumnMoreTags 1533 /* Column values ex ist that were not requested for enumeration */
#define JET_wrnColumnTruncated 1534 /* Column value tru ncated at the requested size limit during enumeration */ #define JET_wrnColumnTruncated 1534 /* Column value tru ncated at the requested size limit during enumeration */
#define JET_wrnColumnPresent 1535 /* Column values ex ist but were not returned by request */ #define JET_wrnColumnPresent 1535 /* Column values ex ist but were not returned by request */
#define JET_wrnColumnSingleValue 1536 /* Column value ret urned in JET_COLUMNENUM as a result of JET_bitEnumerateCompressOutput */ #define JET_wrnColumnSingleValue 1536 /* Column value ret urned in JET_COLUMNENUM as a result of JET_bitEnumerateCompressOutput */
#define JET_wrnColumnDefault 1537 /* Column value(s) not returned because they were set to their default value(s) and JET_bitEnumerat eIgnoreDefault was specified */
#define JET_errRecordNotFound -1601 /* The key was not found */ #define JET_errRecordNotFound -1601 /* The key was not found */
#define JET_errRecordNoCopy -1602 /* No worki ng buffer */ #define JET_errRecordNoCopy -1602 /* No worki ng buffer */
#define JET_errNoCurrentRecord -1603 /* Currency not on a record */ #define JET_errNoCurrentRecord -1603 /* Currency not on a record */
#define JET_errRecordPrimaryChanged -1604 /* Primary key may not change */ #define JET_errRecordPrimaryChanged -1604 /* Primary key may not change */
#define JET_errKeyDuplicate -1605 /* Illegal duplicate key */ #define JET_errKeyDuplicate -1605 /* Illegal duplicate key */
#define JET_errAlreadyPrepared -1607 /* Attempted to upd ate record when record update was already in progress */ #define JET_errAlreadyPrepared -1607 /* Attempted to upd ate record when record update was already in progress */
#define JET_errKeyNotMade -1608 /* No call to JetMakeKey */ #define JET_errKeyNotMade -1608 /* No call to JetMakeKey */
#define JET_errUpdateNotPrepared -1609 /* No call to JetPr epareUpdate */ #define JET_errUpdateNotPrepared -1609 /* No call to JetPr epareUpdate */
#define JET_wrnDataHasChanged 1610 /* Data has changed */ #define JET_wrnDataHasChanged 1610 /* Data has changed */
skipping to change at line 1712 skipping to change at line 2209
#define JET_wrnDefragAlreadyRunning 2000 /* Online defrag al ready running on specified database */ #define JET_wrnDefragAlreadyRunning 2000 /* Online defrag al ready running on specified database */
#define JET_wrnDefragNotRunning 2001 /* Online d efrag not running on specified database */ #define JET_wrnDefragNotRunning 2001 /* Online d efrag not running on specified database */
#define JET_wrnCallbackNotRegistered 2100 /* Unregistered a non-existant callback function */ #define JET_wrnCallbackNotRegistered 2100 /* Unregistered a non-existant callback function */
#define JET_errCallbackFailed -2101 /* A callback faile d */ #define JET_errCallbackFailed -2101 /* A callback faile d */
#define JET_errCallbackNotResolved -2102 /* A callback funct ion could not be found */ #define JET_errCallbackNotResolved -2102 /* A callback funct ion could not be found */
#define JET_errOSSnapshotInvalidSequence -2401 /* OS Shadow copy API used in an invalid sequence */ #define JET_errOSSnapshotInvalidSequence -2401 /* OS Shadow copy API used in an invalid sequence */
#define JET_errOSSnapshotTimeOut -2402 /* OS Shadow copy e nded with time-out */ #define JET_errOSSnapshotTimeOut -2402 /* OS Shadow copy e nded with time-out */
#define JET_errOSSnapshotNotAllowed -2403 /* OS Shadow copy n ot allowed (backup or recovery in progress) */ #define JET_errOSSnapshotNotAllowed -2403 /* OS Shadow copy n ot allowed (backup or recovery in progress) */
#define JET_errOSSnapshotInvalidSnapId -2404 /* invalid JET_OSSNAPID */
#define JET_errLSCallbackNotSpecified -3000 /* Attempted to use Local S torage without a callback function being specified */ #define JET_errLSCallbackNotSpecified -3000 /* Attempted to use Local S torage without a callback function being specified */
#define JET_errLSAlreadySet -3001 /* Attempte d to set Local Storage for an object which already had it set */ #define JET_errLSAlreadySet -3001 /* Attempte d to set Local Storage for an object which already had it set */
#define JET_errLSNotSet -3002 /* Attempted to retrieve Local Storage from an object which didn't have it set */ #define JET_errLSNotSet -3002 /* Attempted to retrieve Local Storage from an object which didn't have it set */
/** FILE ERRORS /** FILE ERRORS
**/ **/
//JET_errFileAccessDenied -1032 //JET_errFileAccessDenied -1032
//JET_errFileNotFound -1811 //JET_errFileNotFound -1811
//JET_errInvalidFilename -1044 //JET_errInvalidFilename -1044
#define JET_errFileIOSparse -4000 /* an I/O w as issued to a location that was sparse */
#define JET_errFileIOBeyondEOF -4001 /* a read was issue d to a location beyond EOF (writes will expand the file) */ #define JET_errFileIOBeyondEOF -4001 /* a read was issue d to a location beyond EOF (writes will expand the file) */
#define JET_errFileIOAbort -4002 /* instruct s the JET_ABORTRETRYFAILCALLBACK caller to abort the specified I/O */ #define JET_errFileIOAbort -4002 /* instruct s the JET_ABORTRETRYFAILCALLBACK caller to abort the specified I/O */
#define JET_errFileIORetry -4003 /* instruct s the JET_ABORTRETRYFAILCALLBACK caller to retry the specified I/O */ #define JET_errFileIORetry -4003 /* instruct s the JET_ABORTRETRYFAILCALLBACK caller to retry the specified I/O */
#define JET_errFileIOFail -4004 /* instruct s the JET_ABORTRETRYFAILCALLBACK caller to fail the specified I/O */ #define JET_errFileIOFail -4004 /* instruct s the JET_ABORTRETRYFAILCALLBACK caller to fail the specified I/O */
#define JET_errFileCompressed -4005 /* read/write acces s is not supported on compressed files */ #define JET_errFileCompressed -4005 /* read/write acces s is not supported on compressed files */
/**********************************************************************/ /**********************************************************************/
/*********************** PROTOTYPES **************************/ /*********************** PROTOTYPES **************************/
/**********************************************************************/ /**********************************************************************/
#if !defined(_JET_NOPROTOTYPES) #if !defined(_JET_NOPROTOTYPES)
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
JET_ERR JET_API JetInit( JET_INSTANCE *pinstance); JET_ERR JET_API
#ifdef JET_VERSION_XP JetInit(
JET_ERR JET_API JetInit2( JET_INSTANCE *pinstance, JET_GRBIT grbit ); __inout_opt JET_INSTANCE * pinstance );
#endif // JET_VERSION_XP
#ifdef JET_VERSION_XP #if ( JET_VERSION >= 0x0501 )
JET_ERR JET_API JetCreateInstance( JET_INSTANCE *pinstance, const char * szInsta JET_ERR JET_API
nceName ); JetInit2(
JET_ERR JET_API JetCreateInstance2( __inout_opt JET_INSTANCE * pinstance,
JET_INSTANCE *pinstance, __in JET_GRBIT grbit );
const char * szInstanceName,
const char * szDisplayName,
JET_GRBIT grbit );
#endif // JET_VERSION_XP
JET_ERR JET_API JetTerm( JET_INSTANCE instance ); #endif // JET_VERSION >= 0x0501
JET_ERR JET_API JetTerm2( JET_INSTANCE instance, JET_GRBIT grbit );
JET_ERR JET_API JetStopService(); #if ( JET_VERSION >= 0x0600 )
#ifdef JET_VERSION_XP #if ( JET_VERSION < 0x0600 )
JET_ERR JET_API JetStopServiceInstance( JET_INSTANCE instance ); #define JetInit3A JetInit3
#endif // JET_VERSION_XP #endif
JET_ERR JET_API JetStopBackup(); JET_ERR JET_API
#ifdef JET_VERSION_XP JetInit3A(
JET_ERR JET_API JetStopBackupInstance( JET_INSTANCE instance ); __inout_opt JET_INSTANCE * pinstance,
#endif // JET_VERSION_XP __in_opt JET_RSTINFO_A * prstInfo,
__in JET_GRBIT grbit );
JET_ERR JET_API JetSetSystemParameter( #if ( JET_VERSION >= 0x0600 )
JET_INSTANCE *pinstance,
JET_SESID sesid,
unsigned long paramid,
JET_API_PTR lParam,
const char *sz );
JET_ERR JET_API JetGetSystemParameter( JET_ERR JET_API
JET_INSTANCE instance, JetInit3W(
JET_SESID sesid, __inout_opt JET_INSTANCE * pinstance,
unsigned long paramid, __in_opt JET_RSTINFO_W * prstInfo,
JET_API_PTR *plParam, __in JET_GRBIT grbit );
char *sz,
unsigned long cbMax );
#ifdef JET_VERSION_XP #ifdef JET_UNICODE
JET_ERR JET_API JetEnableMultiInstance( JET_SETSYSPARAM * psetsyspa #define JetInit3 JetInit3W
ram, #else
#define JetInit3 JetInit3A
unsigned long csetsysparam, #endif
#endif
unsigned long * pcsetsucceed);
#endif // JET_VERSION_XP
JET_ERR JET_API JetBeginSession( #endif // JET_VERSION >= 0x0600
JET_INSTANCE instance,
JET_SESID *psesid,
const char *szUserName,
const char *szPassword );
JET_ERR JET_API JetDupSession( JET_SESID sesid, JET_SESID *psesid ); #if ( JET_VERSION >= 0x0501 )
#if ( JET_VERSION < 0x0600 )
#define JetCreateInstanceA JetCreateInstance
#endif
JET_ERR JET_API JetEndSession( JET_SESID sesid, JET_GRBIT grbit ); JET_ERR JET_API
JetCreateInstanceA(
__out JET_INSTANCE * pinstance,
__in_opt JET_PCSTR szInstanceName );
JET_ERR JET_API JetGetVersion( JET_SESID sesid, unsigned long *pwVersion ); #if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API JetIdle( JET_SESID sesid, JET_GRBIT grbit ); JET_ERR JET_API
JetCreateInstanceW(
__out JET_INSTANCE * pinstance,
__in_opt JET_PCWSTR szInstanceName );
JET_ERR JET_API JetCreateDatabase( #ifdef JET_UNICODE
JET_SESID sesid, #define JetCreateInstance JetCreateInstanceW
const char *szFilename, #else
const char *szConnect, #define JetCreateInstance JetCreateInstanceA
JET_DBID *pdbid, #endif
JET_GRBIT grbit ); #endif
JET_ERR JET_API JetCreateDatabase2( #if ( JET_VERSION < 0x0600 )
JET_SESID sesid, #define JetCreateInstance2A JetCreateInstance2
const char *szFilename, #endif
const unsigned long cpgDatabaseSizeMax,
JET_DBID *pdbid,
JET_GRBIT grbit );
JET_ERR JET_API JetAttachDatabase( JET_ERR JET_API
JET_SESID sesid, JetCreateInstance2A(
const char *szFilename, __out JET_INSTANCE * pinstance,
JET_GRBIT grbit ); __in_opt JET_PCSTR szInstanceName,
__in_opt JET_PCSTR szDisplayName,
__in JET_GRBIT grbit );
JET_ERR JET_API JetAttachDatabase2( #if ( JET_VERSION >= 0x0600 )
JET_SESID sesid,
const char *szFilename,
const unsigned long cpgDatabaseSizeMax,
JET_GRBIT grbit );
JET_ERR JET_API JetDetachDatabase( JET_ERR JET_API
JET_SESID sesid, JetCreateInstance2W(
const char *szFilename ); __out JET_INSTANCE * pinstance,
__in_opt JET_PCWSTR szInstanceName,
__in_opt JET_PCWSTR szDisplayName,
__in JET_GRBIT grbit );
#ifdef JET_VERSION_XP #ifdef JET_UNICODE
JET_ERR JET_API JetDetachDatabase2( #define JetCreateInstance2 JetCreateInstance2W
JET_SESID sesid, #else
const char *szFilename, #define JetCreateInstance2 JetCreateInstance2A
JET_GRBIT grbit); #endif
#endif // JET_VERSION_XP #endif
JET_ERR JET_API JetGetObjectInfo( #endif // JET_VERSION >= 0x0501
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( #if ( JET_VERSION >= 0x0600 )
JET_SESID sesid,
JET_TABLEID tableid,
void *pvResult,
unsigned long cbMax,
unsigned long InfoLevel );
JET_ERR JET_API JetCreateTable( JET_ERR JET_API
JET_SESID sesid, JetGetInstanceMiscInfo(
JET_DBID dbid, __in JET_INSTANCE instance,
const char *szTableName, __out_bcount( cbMax ) void * pvResult,
unsigned long lPages, __in unsigned long cbMax,
unsigned long lDensity, __in unsigned long InfoLevel );
JET_TABLEID *ptableid );
JET_ERR JET_API JetCreateTableColumnIndex( #endif // JET_VERSION >= 0x0600
JET_SESID sesid,
JET_DBID dbid,
JET_TABLECREATE *ptablecreate );
#ifdef JET_VERSION_XP JET_ERR JET_API
JET_ERR JET_API JetCreateTableColumnIndex2( JetTerm(
JET_SESID sesid, __in JET_INSTANCE instance );
JET_DBID dbid, JET_ERR JET_API
JET_TABLECREATE2 *ptablecreate ); JetTerm2(
#endif // JET_VERSION_XP __in JET_INSTANCE instance,
__in JET_GRBIT grbit );
JET_ERR JET_API JetDeleteTable( JET_ERR JET_API
JET_SESID sesid, JetStopService();
JET_DBID dbid, #if ( JET_VERSION >= 0x0501 )
const char *szTableName ); JET_ERR JET_API
JetStopServiceInstance(
__in JET_INSTANCE instance );
#endif // JET_VERSION >= 0x0501
JET_ERR JET_API JetRenameTable( JET_ERR JET_API
JET_SESID sesid, JetStopBackup();
JET_DBID dbid, #if ( JET_VERSION >= 0x0501 )
const char *szName, JET_ERR JET_API
const char *szNameNew ); JetStopBackupInstance(
__in JET_INSTANCE instance );
#endif // JET_VERSION >= 0x0501
JET_ERR JET_API JetGetTableColumnInfo( #if ( JET_VERSION < 0x0600 )
JET_SESID sesid, #define JetSetSystemParameterA JetSetSystemParameter
JET_TABLEID tableid, #endif
const char *szColumnName,
void *pvResult,
unsigned long cbMax,
unsigned long InfoLevel );
JET_ERR JET_API JetGetColumnInfo( JET_ERR JET_API
JET_SESID sesid, JetSetSystemParameterA(
JET_DBID dbid, __inout_opt JET_INSTANCE * pinstance,
const char *szTableName, __in JET_SESID sesid,
const char *szColumnName, __in unsigned long paramid,
void *pvResult, __in JET_API_PTR lParam,
unsigned long cbMax, __in_opt JET_PCSTR szParam );
unsigned long InfoLevel );
JET_ERR JET_API JetAddColumn( #if ( JET_VERSION >= 0x0600 )
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_ERR JET_API
JET_SESID sesid, JetSetSystemParameterW(
JET_TABLEID tableid, __inout_opt JET_INSTANCE * pinstance,
const char *szColumnName ); __in JET_SESID sesid,
#ifdef JET_VERSION_XP __in unsigned long paramid,
JET_ERR JET_API JetDeleteColumn2( __in JET_API_PTR lParam,
JET_SESID sesid, __in_opt JET_PCWSTR szParam );
JET_TABLEID tableid,
const char *szColumnName,
const JET_GRBIT grbit );
JET_ERR JET_API JetRenameColumn( #ifdef JET_UNICODE
JET_SESID sesid, #define JetSetSystemParameter JetSetSystemParameterW
JET_TABLEID tableid, #else
const char *szName, #define JetSetSystemParameter JetSetSystemParameterA
const char *szNameNew, #endif
JET_GRBIT grbit ); #endif
#endif // JET_VERSION_XP
JET_ERR JET_API JetSetColumnDefaultValue( #if ( JET_VERSION < 0x0600 )
JET_SESID sesid, #define JetGetSystemParameterA JetGetSystemParameter
JET_DBID dbid, #endif
const char *szTableName,
const char *szColumnName,
const void *pvData,
const unsigned long cbData,
const JET_GRBIT grbit );
JET_ERR JET_API JetGetTableIndexInfo( JET_ERR JET_API
JET_SESID sesid, JetGetSystemParameterA(
JET_TABLEID tableid, __in JET_INSTANCE instance,
const char *szIndexName, __in JET_SESID sesid,
void *pvResult, __in unsigned long paramid,
unsigned long cbResult, __inout_opt JET_API_PTR * plParam,
unsigned long InfoLevel ); __out_bcount_opt( cbMax ) JET_PSTR szParam,
__in unsigned long cbMax );
JET_ERR JET_API JetGetIndexInfo( #if ( JET_VERSION >= 0x0600 )
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_ERR JET_API
JET_SESID sesid, JetGetSystemParameterW(
JET_TABLEID tableid, __in JET_INSTANCE instance,
const char *szIndexName, __in JET_SESID sesid,
JET_GRBIT grbit, __in unsigned long paramid,
const char *szKey, __inout_opt JET_API_PTR * plParam,
unsigned long cbKey, __out_bcount_opt( cbMax ) JET_PWSTR szParam,
unsigned long lDensity ); __in unsigned long cbMax );
JET_ERR JET_API JetCreateIndex2( #ifdef JET_UNICODE
JET_SESID sesid, #define JetGetSystemParameter JetGetSystemParameterW
JET_TABLEID tableid, #else
JET_INDEXCREATE *pindexcreate, #define JetGetSystemParameter JetGetSystemParameterA
unsigned long cIndexCreate ); #endif
#endif
JET_ERR JET_API JetDeleteIndex( #if ( JET_VERSION >= 0x0501 )
JET_SESID sesid,
JET_TABLEID tableid,
const char *szIndexName );
JET_ERR JET_API JetBeginTransaction( JET_SESID sesid ); #if ( JET_VERSION < 0x0600 )
JET_ERR JET_API JetBeginTransaction2( JET_SESID sesid, JET_GRBIT grbit ); #define JetEnableMultiInstanceA JetEnableMultiInstance
#endif
JET_ERR JET_API JetCommitTransaction( JET_SESID sesid, JET_GRBIT grbit ); JET_ERR JET_API
JetEnableMultiInstanceA(
__in_ecount_opt( csetsysparam ) JET_SETSYSPARAM_A * psetsysparam,
__in unsigned long
csetsysparam,
__out_opt unsigned long *
pcsetsucceed );
JET_ERR JET_API JetRollback( JET_SESID sesid, JET_GRBIT grbit ); #if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API JetGetDatabaseInfo( JET_ERR JET_API
JET_SESID sesid, JetEnableMultiInstanceW(
JET_DBID dbid, __in_ecount_opt( csetsysparam ) JET_SETSYSPARAM_W * psetsysparam,
void *pvResult, __in unsigned long
unsigned long cbMax, csetsysparam,
unsigned long InfoLevel ); __out_opt unsigned long *
pcsetsucceed );
JET_ERR JET_API JetGetDatabaseFileInfo( #ifdef JET_UNICODE
const char *szDatabaseName, #define JetEnableMultiInstance JetEnableMultiInstanceW
void *pvResult, #else
unsigned long cbMax, #define JetEnableMultiInstance JetEnableMultiInstanceA
unsigned long InfoLevel ); #endif
#endif
JET_ERR JET_API JetOpenDatabase( #endif // JET_VERSION >= 0x0501
JET_SESID sesid,
const char *szFilename,
const char *szConnect,
JET_DBID *pdbid,
JET_GRBIT grbit );
JET_ERR JET_API JetCloseDatabase( #if ( JET_VERSION >= 0x0600 )
JET_SESID sesid, JET_ERR JET_API
JET_DBID dbid, JetGetThreadStats(
JET_GRBIT grbit ); __out_bcount( cbMax ) void * pvResult,
__in unsigned long cbMax );
#endif // JET_VERSION >= 0x0600
JET_ERR JET_API JetOpenTable( #if ( JET_VERSION < 0x0600 )
JET_SESID sesid, #define JetBeginSessionA JetBeginSession
JET_DBID dbid, #endif
const char *szTableName,
const void *pvParameters,
unsigned long cbParameters,
JET_GRBIT grbit,
JET_TABLEID *ptableid );
#ifdef JET_VERSION_XP JET_ERR JET_API JetBeginSessionA(
JET_ERR JET_API JetSetTableSequential( __in JET_INSTANCE instance,
JET_SESID sesid, __out JET_SESID * psesid,
JET_TABLEID tableid, __in_opt JET_PCSTR szUserName,
JET_GRBIT grbit ); __in_opt JET_PCSTR szPassword );
JET_ERR JET_API JetResetTableSequential( #if ( JET_VERSION >= 0x0600 )
JET_SESID sesid,
JET_TABLEID tableid,
JET_GRBIT grbit );
#endif // JET_VERSION_XP
JET_ERR JET_API JetCloseTable( JET_SESID sesid, JET_TABLEID tableid ); JET_ERR JET_API JetBeginSessionW(
__in JET_INSTANCE instance,
__out JET_SESID * psesid,
__in_opt JET_PCWSTR szUserName,
__in_opt JET_PCWSTR szPassword );
JET_ERR JET_API JetDelete( JET_SESID sesid, JET_TABLEID tableid ); #ifdef JET_UNICODE
#define JetBeginSession JetBeginSessionW
#else
#define JetBeginSession JetBeginSessionA
#endif
#endif
JET_ERR JET_API JetUpdate( JET_ERR JET_API
JET_SESID sesid, JetDupSession(
JET_TABLEID tableid, __in JET_SESID sesid,
void *pvBookmark, __out JET_SESID * psesid );
unsigned long cbBookmark,
unsigned long *pcbActual);
#ifdef JET_VERSION_SERVER2003 JET_ERR JET_API
JET_ERR JET_API JetUpdate2( JetEndSession(
JET_SESID sesid, __in JET_SESID sesid,
JET_TABLEID tableid, __in JET_GRBIT grbit );
void *pvBookmark,
unsigned long cbBookmark,
unsigned long *pcbActual,
const JET_GRBIT grbit );
#endif // JET_VERSION_SERVER2003
JET_ERR JET_API JetEscrowUpdate( JET_ERR JET_API
JET_SESID sesid, JetGetVersion(
JET_TABLEID tableid, __in JET_SESID sesid,
JET_COLUMNID columnid, __out unsigned long * pwVersion );
void *pv,
unsigned long cbMax,
void *pvOld,
unsigned long cbOldMax,
unsigned long *pcbOldActual,
JET_GRBIT grbit );
JET_ERR JET_API JetRetrieveColumn( JET_ERR JET_API
JET_SESID sesid, JetIdle(
JET_TABLEID tableid, __in JET_SESID sesid,
JET_COLUMNID columnid, __in JET_GRBIT grbit );
void *pvData,
unsigned long cbData,
unsigned long *pcbActual,
JET_GRBIT grbit,
JET_RETINFO *pretinfo );
JET_ERR JET_API JetRetrieveColumns( #if ( JET_VERSION < 0x0600 )
JET_SESID sesid, #define JetCreateDatabaseA JetCreateDatabase
JET_TABLEID tableid, #endif
JET_RETRIEVECOLUMN *pretrievecolumn,
unsigned long cretrievecolumn );
#ifdef JET_VERSION_XP JET_ERR JET_API
JET_ERR JET_API JetEnumerateColumns( JetCreateDatabaseA(
JET_SESID sesid, __in JET_SESID sesid,
JET_TABLEID tableid, __in JET_PCSTR szFilename,
unsigned long cEnumColumnId, __in_opt JET_PCSTR szConnect,
JET_ENUMCOLUMNID* rgEnumColumnId, __out JET_DBID * pdbid,
unsigned long* pcEnumColumn, __in JET_GRBIT grbit );
JET_ENUMCOLUMN** prgEnumColumn,
JET_PFNREALLOC pfnRealloc,
void* pvReallocContext,
unsigned long cbDataMost,
JET_GRBIT grbit );
#endif // JET_VERSION_XP
JET_ERR JET_API JetSetColumn( #if ( JET_VERSION >= 0x0600 )
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_ERR JET_API
JET_SESID sesid, JetCreateDatabaseW(
JET_TABLEID tableid, __in JET_SESID sesid,
JET_SETCOLUMN *psetcolumn, __in JET_PCWSTR szFilename,
unsigned long csetcolumn ); __in_opt JET_PCWSTR szConnect,
__out JET_DBID * pdbid,
__in JET_GRBIT grbit );
JET_ERR JET_API JetPrepareUpdate( #ifdef JET_UNICODE
JET_SESID sesid, #define JetCreateDatabase JetCreateDatabaseW
JET_TABLEID tableid, #else
unsigned long prep ); #define JetCreateDatabase JetCreateDatabaseA
#endif
#endif
JET_ERR JET_API JetGetRecordPosition( #if ( JET_VERSION < 0x0600 )
JET_SESID sesid, #define JetCreateDatabase2A JetCreateDatabase2
JET_TABLEID tableid, #endif
JET_RECPOS *precpos,
unsigned long cbRecpos );
JET_ERR JET_API JetGotoPosition( JET_ERR JET_API
JET_SESID sesid, JetCreateDatabase2A(
JET_TABLEID tableid, __in JET_SESID sesid,
JET_RECPOS *precpos ); __in JET_PCSTR szFilename,
__in const unsigned long cpgDatabaseSizeMax,
__out JET_DBID * pdbid,
__in JET_GRBIT grbit );
JET_ERR JET_API JetGetCursorInfo( #if ( JET_VERSION >= 0x0600 )
JET_SESID sesid,
JET_TABLEID tableid,
void *pvResult,
unsigned long cbMax,
unsigned long InfoLevel );
JET_ERR JET_API JetDupCursor( JET_ERR JET_API JetCreateDatabase2W(
JET_SESID sesid, __in JET_SESID sesid,
JET_TABLEID tableid, __in JET_PCWSTR szFilename,
JET_TABLEID *ptableid, __in const unsigned long cpgDatabaseSizeMax,
JET_GRBIT grbit ); __out JET_DBID * pdbid,
__in JET_GRBIT grbit );
JET_ERR JET_API JetGetCurrentIndex( #ifdef JET_UNICODE
JET_SESID sesid, #define JetCreateDatabase2 JetCreateDatabase2W
JET_TABLEID tableid, #else
char *szIndexName, #define JetCreateDatabase2 JetCreateDatabase2A
unsigned long cchIndexName ); #endif
#endif
JET_ERR JET_API JetSetCurrentIndex( #if ( JET_VERSION < 0x0600 )
JET_SESID sesid, #define JetAttachDatabaseA JetAttachDatabase
JET_TABLEID tableid, #endif
const char *szIndexName );
JET_ERR JET_API JetSetCurrentIndex2( JET_ERR JET_API
JET_SESID sesid, JetAttachDatabaseA(
JET_TABLEID tableid, __in JET_SESID sesid,
const char *szIndexName, __in JET_PCSTR szFilename,
JET_GRBIT grbit ); __in JET_GRBIT grbit );
JET_ERR JET_API JetSetCurrentIndex3( #if ( JET_VERSION >= 0x0600 )
JET_SESID sesid,
JET_TABLEID tableid,
const char *szIndexName,
JET_GRBIT grbit,
unsigned long itagSequence );
JET_ERR JET_API JetSetCurrentIndex4( JET_ERR JET_API
JET_SESID sesid, JetAttachDatabaseW(
JET_TABLEID tableid, __in JET_SESID sesid,
const char *szIndexName, __in JET_PCWSTR szFilename,
JET_INDEXID *pindexid, __in JET_GRBIT grbit );
JET_GRBIT grbit,
unsigned long itagSequence );
JET_ERR JET_API JetMove( #ifdef JET_UNICODE
JET_SESID sesid, #define JetAttachDatabase JetAttachDatabaseW
JET_TABLEID tableid, #else
long cRow, #define JetAttachDatabase JetAttachDatabaseA
JET_GRBIT grbit ); #endif
#endif
JET_ERR JET_API JetGetLock( #if ( JET_VERSION < 0x0600 )
JET_SESID sesid, #define JetAttachDatabase2A JetAttachDatabase2
JET_TABLEID tableid, #endif
JET_GRBIT grbit );
JET_ERR JET_API JetMakeKey( JET_ERR JET_API
JET_SESID sesid, JetAttachDatabase2A(
JET_TABLEID tableid, __in JET_SESID sesid,
const void *pvData, __in JET_PCSTR szFilename,
unsigned long cbData, __in const unsigned long cpgDatabaseSizeMax,
JET_GRBIT grbit ); __in JET_GRBIT grbit );
JET_ERR JET_API JetSeek( #if ( JET_VERSION >= 0x0600 )
JET_SESID sesid,
JET_TABLEID tableid,
JET_GRBIT grbit );
JET_ERR JET_API JetGetBookmark( JET_ERR JET_API
JET_SESID sesid, JetAttachDatabase2W(
JET_TABLEID tableid, __in JET_SESID sesid,
void * pvBookmark, __in JET_PCWSTR szFilename,
unsigned long cbMax, __in const unsigned long cpgDatabaseSizeMax,
unsigned long * pcbActual ); __in JET_GRBIT grbit );
#ifdef JET_VERSION_XP #ifdef JET_UNICODE
JET_ERR JET_API JetGetSecondaryIndexBookmark( #define JetAttachDatabase2 JetAttachDatabase2W
JET_SESID sesid, #else
JET_TABLEID tableid, #define JetAttachDatabase2 JetAttachDatabase2A
void * pvSecondaryKey, #endif
unsigned long cbSecondaryKeyMax, #endif
unsigned long * pcbSecondaryKeyActual,
void * pvPrimaryBookmark,
unsigned long cbPrimaryBookmarkMax,
unsigned long * pcbPrimaryKeyActual,
const JET_GRBIT grbit );
#endif // JET_VERSION_XP
JET_ERR JET_API JetCompact( #if ( JET_VERSION < 0x0600 )
JET_SESID sesid, #define JetDetachDatabaseA JetDetachDatabase
const char *szDatabaseSrc, #endif
const char *szDatabaseDest,
JET_PFNSTATUS pfnStatus,
JET_CONVERT *pconvert,
JET_GRBIT grbit );
JET_ERR JET_API JetDefragment( JET_ERR JET_API
JET_SESID sesid, JetDetachDatabaseA(
JET_DBID dbid, __in JET_SESID sesid,
const char *szTableName, __in JET_PCSTR szFilename );
unsigned long *pcPasses,
unsigned long *pcSeconds,
JET_GRBIT grbit );
#ifdef JET_VERSION_XP #if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API JetDefragment2(
JET_SESID sesid,
JET_DBID dbid,
const char *szTableName,
unsigned long *pcPasses,
unsigned long *pcSeconds,
JET_CALLBACK callback,
JET_GRBIT grbit );
JET_ERR JET_API JetDefragment3( JET_ERR JET_API
JET_SESID vsesid, JetDetachDatabaseW(
const char *szDatabaseName, __in JET_SESID sesid,
const char *szTableName, __in JET_PCWSTR szFilename );
unsigned long *pcPasses,
unsigned long *pcSeconds,
JET_CALLBACK callback,
void *pvContext,
JET_GRBIT grbit );
#endif // JET_VERSION_XP
JET_ERR JET_API JetSetDatabaseSize( #ifdef JET_UNICODE
JET_SESID sesid, #define JetDetachDatabase JetDetachDatabaseW
const char *szDatabaseName, #else
unsigned long cpg, #define JetDetachDatabase JetDetachDatabaseA
unsigned long *pcpgReal ); #endif
#endif
JET_ERR JET_API JetGrowDatabase( #if ( JET_VERSION >= 0x0501 )
JET_SESID sesid, #if ( JET_VERSION < 0x0600 )
JET_DBID dbid, #define JetDetachDatabase2A JetDetachDatabase2
unsigned long cpg, #endif
unsigned long *pcpgReal );
JET_ERR JET_API JetSetSessionContext( JET_ERR JET_API
JET_SESID sesid, JetDetachDatabase2A(
JET_API_PTR ulContext ); __in JET_SESID sesid,
__in JET_PCSTR szFilename,
__in JET_GRBIT grbit);
JET_ERR JET_API JetResetSessionContext( #if ( JET_VERSION >= 0x0600 )
JET_SESID sesid );
JET_ERR JET_API JetGotoBookmark( JET_ERR JET_API
JET_SESID sesid, JetDetachDatabase2W(
JET_TABLEID tableid, __in JET_SESID sesid,
void * pvBookmark, __in JET_PCWSTR szFilename,
unsigned long cbBookmark ); __in JET_GRBIT grbit);
#ifdef JET_VERSION_XP #ifdef JET_UNICODE
JET_ERR JET_API JetGotoSecondaryIndexBookmark( #define JetDetachDatabase2 JetDetachDatabase2W
JET_SESID sesid, #else
JET_TABLEID tableid, #define JetDetachDatabase2 JetDetachDatabase2A
void * pvSecondaryKey, #endif
unsigned long cbSecondaryKey, #endif
void * pvPrimaryBookmark,
unsigned long cbPrimaryBookmark,
const JET_GRBIT grbit );
#endif // JET_VERSION_XP
JET_ERR JET_API JetIntersectIndexes( #endif // JET_VERSION >= 0x0501
JET_SESID sesid,
JET_INDEXRANGE * rgindexrange,
unsigned long cindexrange,
JET_RECORDLIST * precordlist,
JET_GRBIT grbit );
JET_ERR JET_API JetComputeStats( JET_SESID sesid, JET_TABLEID tableid ); #if ( JET_VERSION < 0x0600 )
#define JetGetObjectInfoA JetGetObjectInfo
#endif
JET_ERR JET_API JetOpenTempTable(JET_SESID sesid, JET_ERR JET_API
const JET_COLUMNDEF *prgcolumndef, unsigned long ccolumn, JetGetObjectInfoA(
JET_GRBIT grbit, JET_TABLEID *ptableid, __in JET_SESID sesid,
JET_COLUMNID *prgcolumnid); __in JET_DBID dbid,
__in JET_OBJTYP objtyp,
__in_opt JET_PCSTR szContainerName,
__in_opt JET_PCSTR szObjectName,
__out_bcount( cbMax ) void * pvResult,
__in unsigned long cbMax,
__in unsigned long InfoLevel );
JET_ERR JET_API JetOpenTempTable2( #if ( JET_VERSION >= 0x0600 )
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 JetOpenTempTable3( JET_ERR JET_API
JET_SESID sesid, JetGetObjectInfoW(
const JET_COLUMNDEF *prgcolumndef, __in JET_SESID sesid,
unsigned long ccolumn, __in JET_DBID dbid,
JET_UNICODEINDEX *pidxunicode, __in JET_OBJTYP objtyp,
JET_GRBIT grbit, __in_opt JET_PCWSTR szContainerName,
JET_TABLEID *ptableid, __in_opt JET_PCWSTR szObjectName,
JET_COLUMNID *prgcolumnid ); __out_bcount( cbMax ) void * pvResult,
__in unsigned long cbMax,
__in unsigned long InfoLevel );
JET_ERR JET_API JetBackup( const char *szBackupPath, JET_GRBIT grbit, JET_PFNSTA #ifdef JET_UNICODE
TUS pfnStatus ); #define JetGetObjectInfo JetGetObjectInfoW
#ifdef JET_VERSION_XP #else
JET_ERR JET_API JetBackupInstance( JET_INSTANCE instance, #define JetGetObjectInfo JetGetObjectInfoA
const cha #endif
r *szBackupPath, #endif
JET_GRBIT
grbit,
JET_PFNST
ATUS pfnStatus );
#endif // JET_VERSION_XP
JET_ERR JET_API JetRestore(const char *sz, JET_PFNSTATUS pfn ); #if ( JET_VERSION < 0x0600 )
JET_ERR JET_API JetRestore2(const char *sz, const char *szDest, JET_PFNSTATUS pf #define JetGetTableInfoA JetGetTableInfo
n ); #endif
#ifdef JET_VERSION_XP JET_ERR JET_API
JET_ERR JET_API JetRestoreInstance( JET_INSTANCE instance, JetGetTableInfoA(
c __in JET_SESID sesid,
onst char *sz, __in JET_TABLEID tableid,
c __out_bcount( cbMax ) void * pvResult,
onst char *szDest, __in unsigned long cbMax,
J __in unsigned long InfoLevel );
ET_PFNSTATUS pfn );
#endif // JET_VERSION_XP
JET_ERR JET_API JetSetIndexRange(JET_SESID sesid, #if ( JET_VERSION >= 0x0600 )
JET_TABLEID tableidSrc, JET_GRBIT grbit);
JET_ERR JET_API JetIndexRecordCount(JET_SESID sesid, JET_ERR JET_API
JET_TABLEID tableid, unsigned long *pcrec, unsigned long crecMax ); JetGetTableInfoW(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__out_bcount( cbMax ) void * pvResult,
__in unsigned long cbMax,
__in unsigned long InfoLevel );
JET_ERR JET_API JetRetrieveKey(JET_SESID sesid, #ifdef JET_UNICODE
JET_TABLEID tableid, void *pvData, unsigned long cbMax, #define JetGetTableInfo JetGetTableInfoW
unsigned long *pcbActual, JET_GRBIT grbit ); #else
#define JetGetTableInfo JetGetTableInfoA
#endif
#endif
#if ( JET_VERSION < 0x0600 )
#define JetCreateTableA JetCreateTable
#endif
JET_ERR JET_API
JetCreateTableA(
__in JET_SESID sesid,
__in JET_DBID dbid,
__in JET_PCSTR szTableName,
__in unsigned long lPages,
__in unsigned long lDensity,
__out JET_TABLEID * ptableid );
#if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API
JetCreateTableW(
__in JET_SESID sesid,
__in JET_DBID dbid,
__in JET_PCWSTR szTableName,
__in unsigned long lPages,
__in unsigned long lDensity,
__out JET_TABLEID * ptableid );
#ifdef JET_UNICODE
#define JetCreateTable JetCreateTableW
#else
#define JetCreateTable JetCreateTableA
#endif
#endif
#if ( JET_VERSION < 0x0600 )
#define JetCreateTableColumnIndexA JetCreateTableColumnIndex
#endif
JET_ERR JET_API
JetCreateTableColumnIndexA(
__in JET_SESID sesid,
__in JET_DBID dbid,
__inout JET_TABLECREATE_A * ptablecreate );
#if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API
JetCreateTableColumnIndexW(
__in JET_SESID sesid,
__in JET_DBID dbid,
__inout JET_TABLECREATE_W * ptablecreate );
#ifdef JET_UNICODE
#define JetCreateTableColumnIndex JetCreateTableColumnIndexW
#else
#define JetCreateTableColumnIndex JetCreateTableColumnIndexA
#endif
#endif
#if ( JET_VERSION >= 0x0501 )
#if ( JET_VERSION < 0x0600 )
#define JetCreateTableColumnIndex2A JetCreateTableColumnIndex2
#endif
JET_ERR JET_API
JetCreateTableColumnIndex2A(
__in JET_SESID sesid,
__in JET_DBID dbid,
__inout JET_TABLECREATE2_A * ptablecreate );
#if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API
JetCreateTableColumnIndex2W(
__in JET_SESID sesid,
__in JET_DBID dbid,
__inout JET_TABLECREATE2_W * ptablecreate );
#ifdef JET_UNICODE
#define JetCreateTableColumnIndex2 JetCreateTableColumnIndex2W
#else
#define JetCreateTableColumnIndex2 JetCreateTableColumnIndex2A
#endif
#endif
#endif // JET_VERSION >= 0x0501
#if ( JET_VERSION < 0x0600 )
#define JetDeleteTableA JetDeleteTable
#endif
JET_ERR JET_API
JetDeleteTableA(
__in JET_SESID sesid,
__in JET_DBID dbid,
__in JET_PCSTR szTableName );
#if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API
JetDeleteTableW(
__in JET_SESID sesid,
__in JET_DBID dbid,
__in JET_PCWSTR szTableName );
#ifdef JET_UNICODE
#define JetDeleteTable JetDeleteTableW
#else
#define JetDeleteTable JetDeleteTableA
#endif
#endif
#if ( JET_VERSION < 0x0600 )
#define JetRenameTableA JetRenameTable
#endif
JET_ERR JET_API
JetRenameTableA(
__in JET_SESID sesid,
__in JET_DBID dbid,
__in JET_PCSTR szName,
__in JET_PCSTR szNameNew );
#if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API JetRenameTableW(
__in JET_SESID sesid,
__in JET_DBID dbid,
__in JET_PCWSTR szName,
__in JET_PCWSTR szNameNew );
#ifdef JET_UNICODE
#define JetRenameTable JetRenameTableW
#else
#define JetRenameTable JetRenameTableA
#endif
#endif
#if ( JET_VERSION < 0x0600 )
#define JetGetTableColumnInfoA JetGetTableColumnInfo
#endif
JET_ERR JET_API
JetGetTableColumnInfoA(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in JET_PCSTR szColumnName,
__out_bcount( cbMax ) void * pvResult,
__in unsigned long cbMax,
__in unsigned long InfoLevel );
#if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API JetGetTableColumnInfoW(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in JET_PCWSTR szColumnName,
__out_bcount( cbMax ) void * pvResult,
__in unsigned long cbMax,
__in unsigned long InfoLevel );
#ifdef JET_UNICODE
#define JetGetTableColumnInfo JetGetTableColumnInfoW
#else
#define JetGetTableColumnInfo JetGetTableColumnInfoA
#endif
#endif
#if ( JET_VERSION < 0x0600 )
#define JetGetColumnInfoA JetGetColumnInfo
#endif
JET_ERR JET_API
JetGetColumnInfoA(
__in JET_SESID sesid,
__in JET_DBID dbid,
__in JET_PCSTR szTableName,
__in JET_PCSTR szColumnName,
__out_bcount( cbMax ) void * pvResult,
__in unsigned long cbMax,
__in unsigned long InfoLevel );
#if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API JetGetColumnInfoW(
__in JET_SESID sesid,
__in JET_DBID dbid,
__in JET_PCWSTR szTableName,
__in JET_PCWSTR szColumnName,
__out_bcount( cbMax ) void * pvResult,
__in unsigned long cbMax,
__in unsigned long InfoLevel );
#ifdef JET_UNICODE
#define JetGetColumnInfo JetGetColumnInfoW
#else
#define JetGetColumnInfo JetGetColumnInfoA
#endif
#endif
#if ( JET_VERSION < 0x0600 )
#define JetAddColumnA JetAddColumn
#endif
JET_ERR JET_API
JetAddColumnA(
__in JET_SESID s
esid,
__in JET_TABLEID t
ableid,
__in JET_PCSTR s
zColumnName,
__in const JET_COLUMNDEF * pcolumnde
f,
__in_bcount_opt( cbDefault ) const void * pvDefault,
__in unsigned long c
bDefault,
__out_opt JET_COLUMNID * pcolumnid
);
#if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API JetAddColumnW(
__in JET_SESID s
esid,
__in JET_TABLEID t
ableid,
__in JET_PCWSTR s
zColumnName,
__in const JET_COLUMNDEF * pcolumnde
f,
__in_bcount_opt( cbDefault ) const void * pvDefault,
__in unsigned long c
bDefault,
__out_opt JET_COLUMNID * pcolumnid
);
#ifdef JET_UNICODE
#define JetAddColumn JetAddColumnW
#else
#define JetAddColumn JetAddColumnA
#endif
#endif
#if ( JET_VERSION < 0x0600 )
#define JetDeleteColumnA JetDeleteColumn
#endif
JET_ERR JET_API
JetDeleteColumnA(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in JET_PCSTR szColumnName );
#if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API
JetDeleteColumnW(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in JET_PCWSTR szColumnName );
#ifdef JET_UNICODE
#define JetDeleteColumn JetDeleteColumnW
#else
#define JetDeleteColumn JetDeleteColumnA
#endif
#endif
#if ( JET_VERSION >= 0x0501 )
#if ( JET_VERSION < 0x0600 )
#define JetDeleteColumn2A JetDeleteColumn2
#endif
JET_ERR JET_API
JetDeleteColumn2A(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in JET_PCSTR szColumnName,
__in const JET_GRBIT grbit );
#if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API
JetDeleteColumn2W(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in JET_PCWSTR szColumnName,
__in const JET_GRBIT grbit );
#ifdef JET_UNICODE
#define JetDeleteColumn2 JetDeleteColumn2W
#else
#define JetDeleteColumn2 JetDeleteColumn2A
#endif
#endif
#if ( JET_VERSION < 0x0600 )
#define JetRenameColumnA JetRenameColumn
#endif
JET_ERR JET_API
JetRenameColumnA(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in JET_PCSTR szName,
__in JET_PCSTR szNameNew,
__in JET_GRBIT grbit );
#if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API
JetRenameColumnW(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in JET_PCWSTR szName,
__in JET_PCWSTR szNameNew,
__in JET_GRBIT grbit );
#ifdef JET_UNICODE
#define JetRenameColumn JetRenameColumnW
#else
#define JetRenameColumn JetRenameColumnA
#endif
#endif
#endif // JET_VERSION >= 0x0501
#if ( JET_VERSION < 0x0600 )
#define JetSetColumnDefaultValueA JetSetColumnDefaultValue
#endif
JET_ERR JET_API
JetSetColumnDefaultValueA(
__in JET_SESID sesid,
__in JET_DBID dbid,
__in JET_PCSTR szTableName,
__in JET_PCSTR szColumnName,
__in_bcount( cbData ) const void * pvData,
__in const unsigned long cbData,
__in const JET_GRBIT grbit );
#if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API
JetSetColumnDefaultValueW(
__in JET_SESID sesid,
__in JET_DBID dbid,
__in JET_PCWSTR szTableName,
__in JET_PCWSTR szColumnName,
__in_bcount( cbData ) const void * pvData,
__in const unsigned long cbData,
__in const JET_GRBIT grbit );
#ifdef JET_UNICODE
#define JetSetColumnDefaultValue JetSetColumnDefaultValueW
#else
#define JetSetColumnDefaultValue JetSetColumnDefaultValueA
#endif
#endif
#if ( JET_VERSION < 0x0600 )
#define JetGetTableIndexInfoA JetGetTableIndexInfo
#endif
JET_ERR JET_API
JetGetTableIndexInfoA(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in JET_PCSTR szIndexName,
__out_bcount( cbResult ) void * pvResult,
__in unsigned long cbResult,
__in unsigned long InfoLevel );
#if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API
JetGetTableIndexInfoW(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in JET_PCWSTR szIndexName,
__out_bcount( cbResult ) void * pvResult,
__in unsigned long cbResult,
__in unsigned long InfoLevel );
#ifdef JET_UNICODE
#define JetGetTableIndexInfo JetGetTableIndexInfoW
#else
#define JetGetTableIndexInfo JetGetTableIndexInfoA
#endif
#endif
#if ( JET_VERSION < 0x0600 )
#define JetGetIndexInfoA JetGetIndexInfo
#endif
JET_ERR JET_API
JetGetIndexInfoA(
__in JET_SESID sesid,
__in JET_DBID dbid,
__in JET_PCSTR szTableName,
__in JET_PCSTR szIndexName,
__out_bcount( cbResult ) void * pvResult,
__in unsigned long cbResult,
__in unsigned long InfoLevel );
#if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API
JetGetIndexInfoW(
__in JET_SESID sesid,
__in JET_DBID dbid,
__in JET_PCWSTR szTableName,
__in JET_PCWSTR szIndexName,
__out_bcount( cbResult ) void * pvResult,
__in unsigned long cbResult,
__in unsigned long InfoLevel );
#ifdef JET_UNICODE
#define JetGetIndexInfo JetGetIndexInfoW
#else
#define JetGetIndexInfo JetGetIndexInfoA
#endif
#endif
#if ( JET_VERSION < 0x0600 )
#define JetCreateIndexA JetCreateIndex
#endif
JET_ERR JET_API
JetCreateIndexA(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in JET_PCSTR szIndexName,
__in JET_GRBIT grbit,
__in_bcount( cbKey ) const char * szKey,
__in unsigned long cbKey,
__in unsigned long lDensity );
#if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API
JetCreateIndexW(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in JET_PCWSTR szIndexName,
__in JET_GRBIT grbit,
__in_bcount( cbKey ) const WCHAR * szKey,
__in unsigned long cbKey,
__in unsigned long lDensity );
#ifdef JET_UNICODE
#define JetCreateIndex JetCreateIndexW
#else
#define JetCreateIndex JetCreateIndexA
#endif
#endif
#if ( JET_VERSION < 0x0600 )
#define JetCreateIndex2A JetCreateIndex2
#endif
JET_ERR JET_API
JetCreateIndex2A(
__in JET_SESID
sesid,
__in JET_TABLEID
tableid,
__in_ecount( cIndexCreate ) JET_INDEXCREATE_A * pindexcreate,
__in unsigned long c
IndexCreate );
#if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API
JetCreateIndex2W(
__in JET_SESID
sesid,
__in JET_TABLEID
tableid,
__in_ecount( cIndexCreate ) JET_INDEXCREATE_W * pindexcreate,
__in unsigned long c
IndexCreate );
#ifdef JET_UNICODE
#define JetCreateIndex2 JetCreateIndex2W
#else
#define JetCreateIndex2 JetCreateIndex2A
#endif
#endif
#if ( JET_VERSION < 0x0600 )
#define JetDeleteIndexA JetDeleteIndex
#endif
JET_ERR JET_API
JetDeleteIndexA(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in JET_PCSTR szIndexName );
#if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API
JetDeleteIndexW(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in JET_PCWSTR szIndexName );
#ifdef JET_UNICODE
#define JetDeleteIndex JetDeleteIndexW
#else
#define JetDeleteIndex JetDeleteIndexA
#endif
#endif
JET_ERR JET_API
JetBeginTransaction(
__in JET_SESID sesid );
JET_ERR JET_API
JetBeginTransaction2(
__in JET_SESID sesid,
__in JET_GRBIT grbit );
JET_ERR JET_API
JetCommitTransaction(
__in JET_SESID sesid,
__in JET_GRBIT grbit );
JET_ERR JET_API
JetRollback(
__in JET_SESID sesid,
__in JET_GRBIT grbit );
#if ( JET_VERSION < 0x0600 )
#define JetGetDatabaseInfoA JetGetDatabaseInfo
#endif
JET_ERR JET_API JetGetDatabaseInfoA(
__in JET_SESID sesid,
__in JET_DBID dbid,
__out_bcount( cbMax ) void * pvResult,
__in unsigned long cbMax,
__in unsigned long InfoLevel );
#if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API
JetGetDatabaseInfoW(
__in JET_SESID sesid,
__in JET_DBID dbid,
__out_bcount( cbMax ) void * pvResult,
__in unsigned long cbMax,
__in unsigned long InfoLevel );
#ifdef JET_UNICODE
#define JetGetDatabaseInfo JetGetDatabaseInfoW
#else
#define JetGetDatabaseInfo JetGetDatabaseInfoA
#endif
#endif
#if ( JET_VERSION < 0x0600 )
#define JetGetDatabaseFileInfoA JetGetDatabaseFileInfo
#endif
JET_ERR JET_API
JetGetDatabaseFileInfoA(
__in JET_PCSTR szDatabaseName,
__out_bcount( cbMax ) void * pvResult,
__in unsigned long cbMax,
__in unsigned long InfoLevel );
#if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API
JetGetDatabaseFileInfoW(
__in JET_PCWSTR szDatabaseName,
__out_bcount( cbMax ) void * pvResult,
__in unsigned long cbMax,
__in unsigned long InfoLevel );
#ifdef JET_UNICODE
#define JetGetDatabaseFileInfo JetGetDatabaseFileInfoW
#else
#define JetGetDatabaseFileInfo JetGetDatabaseFileInfoA
#endif
#endif
#if ( JET_VERSION < 0x0600 )
#define JetOpenDatabaseA JetOpenDatabase
#endif
JET_ERR JET_API
JetOpenDatabaseA(
__in JET_SESID sesid,
__in JET_PCSTR szFilename,
__in_opt JET_PCSTR szConnect,
__out JET_DBID* pdbid,
__in JET_GRBIT grbit );
#if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API
JetOpenDatabaseW(
__in JET_SESID sesid,
__in JET_PCWSTR szFilename,
__in_opt JET_PCWSTR szConnect,
__out JET_DBID* pdbid,
__in JET_GRBIT grbit );
#ifdef JET_UNICODE
#define JetOpenDatabase JetOpenDatabaseW
#else
#define JetOpenDatabase JetOpenDatabaseA
#endif
#endif
JET_ERR JET_API
JetCloseDatabase(
__in JET_SESID sesid,
__in JET_DBID dbid,
__in JET_GRBIT grbit );
#if ( JET_VERSION < 0x0600 )
#define JetOpenTableA JetOpenTable
#endif
JET_ERR JET_API
JetOpenTableA(
__in JET_SESID
sesid,
__in JET_DBID
dbid,
__in JET_PCSTR
szTableName,
__in_bcount_opt( cbParameters ) const void * pvParameters,
__in unsigned long
cbParameters,
__in JET_GRBIT
grbit,
__out JET_TABLEID *
ptableid );
#if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API
JetOpenTableW(
__in JET_SESID
sesid,
__in JET_DBID
dbid,
__in JET_PCWSTR
szTableName,
__in_bcount_opt( cbParameters ) const void * pvParameters,
__in unsigned long
cbParameters,
__in JET_GRBIT
grbit,
__out JET_TABLEID *
ptableid );
#ifdef JET_UNICODE
#define JetOpenTable JetOpenTableW
#else
#define JetOpenTable JetOpenTableA
#endif
#endif
#if ( JET_VERSION >= 0x0501 )
JET_ERR JET_API
JetSetTableSequential(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in JET_GRBIT grbit );
JET_ERR JET_API
JetResetTableSequential(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in JET_GRBIT grbit );
#endif // JET_VERSION >= 0x0501
JET_ERR JET_API
JetCloseTable(
__in JET_SESID sesid,
__in JET_TABLEID tableid );
JET_ERR JET_API
JetDelete(
__in JET_SESID sesid,
__in JET_TABLEID tableid );
JET_ERR JET_API
JetUpdate(
__in JET_SESID
sesid,
__in JET_TABLEID
tableid,
__out_bcount_part_opt( cbBookmark, *pcbActual ) void * pvBookmark,
__in unsigned long
cbBookmark,
__out_opt unsigned long *
pcbActual );
#if ( JET_VERSION >= 0x0502 )
JET_ERR JET_API
JetUpdate2(
__in JET_SESID
sesid,
__in JET_TABLEID
tableid,
__out_bcount_part_opt( cbBookmark, *pcbActual ) void * pvBookmark,
__in unsigned long
cbBookmark,
__out_opt unsigned long *
pcbActual,
__in const JET_GRBIT
grbit );
#endif // JET_VERSION >= 0x0502
JET_ERR JET_API
JetEscrowUpdate(
__in JET_SESID
sesid,
__in JET_TABLEID
tableid,
__in JET_COLUMNID
columnid,
__in_bcount( cbMax ) void *
pv,
__in unsigned long
cbMax,
__out_bcount_part_opt( cbOldMax, *pcbOldActual ) void * pvOld,
__in unsigned long
cbOldMax,
__out_opt unsigned long *
pcbOldActual,
__in JET_GRBIT
grbit );
JET_ERR JET_API
JetRetrieveColumn(
__in JET_SESID
sesid,
__in JET_TABLEID
tableid,
__in JET_COLUMNID
columnid,
__out_bcount_part_opt( cbData, *pcbActual ) void * pvData,
__in unsigned long
cbData,
__out_opt unsigned long *
pcbActual,
__in JET_GRBIT
grbit,
__inout_opt JET_RETINFO *
pretinfo );
JET_ERR JET_API
JetRetrieveColumns(
__in JET_SESID
sesid,
__in JET_TABLEID
tableid,
__inout_ecount_opt( cretrievecolumn ) JET_RETRIEVECOLUMN * pretrieve
column,
__in unsigned long
cretrievecolumn );
#if ( JET_VERSION >= 0x0501 )
JET_ERR JET_API
JetEnumerateColumns(
__in JET_SESID
sesid,
__in JET_TABLEID
tableid,
__in unsigned long
cEnumColumnId,
__in_ecount_opt( cEnumColumnId ) JET_ENUMCOLUMNID * rgEnumCol
umnId,
__out unsigned long *
pcEnumColumn,
__deref_out_ecount( *pcEnumColumn ) JET_ENUMCOLUMN ** prgEnumColumn,
__in JET_PFNREALLOC
pfnRealloc,
__in void *
pvReallocContext,
__in unsigned long
cbDataMost,
__in JET_GRBIT
grbit );
#endif // JET_VERSION >= 0x0501
#if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API
JetGetRecordSize(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__out JET_RECSIZE * precsize,
__in const JET_GRBIT grbit );
#endif // JET_VERSION >= 0x0600
JET_ERR JET_API
JetSetColumn(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in JET_COLUMNID columnid,
__in_bcount_opt( cbData ) const void * pvData,
__in unsigned long cbData,
__in JET_GRBIT grbit,
__in_opt JET_SETINFO * psetinfo );
JET_ERR JET_API
JetSetColumns(
__in JET_SESID
sesid,
__in JET_TABLEID
tableid,
__in_ecount_opt( csetcolumn ) JET_SETCOLUMN * psetcolumn,
__in unsigned long
csetcolumn );
JET_ERR JET_API
JetPrepareUpdate(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in unsigned long prep );
JET_ERR JET_API
JetGetRecordPosition(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__out_bcount( cbRecpos ) JET_RECPOS * precpos,
__in unsigned long cbRecpos
);
JET_ERR JET_API
JetGotoPosition(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in JET_RECPOS * precpos );
JET_ERR JET_API
JetGetCursorInfo(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__out_bcount( cbMax ) void * pvResult,
__in unsigned long cbMax,
__in unsigned long InfoLevel );
JET_ERR JET_API
JetDupCursor(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__out JET_TABLEID * ptableid,
__in JET_GRBIT grbit );
#if ( JET_VERSION < 0x0600 )
#define JetGetCurrentIndexA JetGetCurrentIndex
#endif
JET_ERR JET_API
JetGetCurrentIndexA(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__out_bcount( ccbIndexName ) JET_PSTR szIndexName,
__in unsigned long ccbIndexN
ame );
#if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API
JetGetCurrentIndexW(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__out_bcount( ccbIndexName ) JET_PWSTR szIndexName,
__in unsigned long ccbIndexN
ame );
#ifdef JET_UNICODE
#define JetGetCurrentIndex JetGetCurrentIndexW
#else
#define JetGetCurrentIndex JetGetCurrentIndexA
#endif
#endif
#if ( JET_VERSION < 0x0600 )
#define JetSetCurrentIndexA JetSetCurrentIndex
#endif
JET_ERR JET_API
JetSetCurrentIndexA(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in_opt JET_PCSTR szIndexName );
#if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API
JetSetCurrentIndexW(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in_opt JET_PCWSTR szIndexName );
#ifdef JET_UNICODE
#define JetSetCurrentIndex JetSetCurrentIndexW
#else
#define JetSetCurrentIndex JetSetCurrentIndexA
#endif
#endif
#if ( JET_VERSION < 0x0600 )
#define JetSetCurrentIndex2A JetSetCurrentIndex2
#endif
JET_ERR JET_API
JetSetCurrentIndex2A(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in_opt JET_PCSTR szIndexName,
__in JET_GRBIT grbit );
#if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API
JetSetCurrentIndex2W(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in_opt JET_PCWSTR szIndexName,
__in JET_GRBIT grbit );
#ifdef JET_UNICODE
#define JetSetCurrentIndex2 JetSetCurrentIndex2W
#else
#define JetSetCurrentIndex2 JetSetCurrentIndex2A
#endif
#endif
#if ( JET_VERSION < 0x0600 )
#define JetSetCurrentIndex3A JetSetCurrentIndex3
#endif
JET_ERR JET_API
JetSetCurrentIndex3A(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in_opt JET_PCSTR szIndexName,
__in JET_GRBIT grbit,
__in unsigned long itagSequence );
#if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API
JetSetCurrentIndex3W(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in_opt JET_PCWSTR szIndexName,
__in JET_GRBIT grbit,
__in unsigned long itagSequence );
#ifdef JET_UNICODE
#define JetSetCurrentIndex3 JetSetCurrentIndex3W
#else
#define JetSetCurrentIndex3 JetSetCurrentIndex3A
#endif
#endif
#if ( JET_VERSION < 0x0600 )
#define JetSetCurrentIndex4A JetSetCurrentIndex4
#endif
JET_ERR JET_API
JetSetCurrentIndex4A(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in_opt JET_PCSTR szIndexName,
__in_opt JET_INDEXID * pindexid,
__in JET_GRBIT grbit,
__in unsigned long itagSequence );
#if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API
JetSetCurrentIndex4W(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in_opt JET_PCWSTR szIndexName,
__in_opt JET_INDEXID * pindexid,
__in JET_GRBIT grbit,
__in unsigned long itagSequence );
#ifdef JET_UNICODE
#define JetSetCurrentIndex4 JetSetCurrentIndex4W
#else
#define JetSetCurrentIndex4 JetSetCurrentIndex4A
#endif
#endif
JET_ERR JET_API
JetMove(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in long cRow,
__in JET_GRBIT grbit );
JET_ERR JET_API
JetGetLock(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in JET_GRBIT grbit );
JET_ERR JET_API
JetMakeKey(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in_bcount_opt( cbData ) const void * pvData,
__in unsigned long cbData,
__in JET_GRBIT grbit );
JET_ERR JET_API
JetSeek(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in JET_GRBIT grbit );
JET_ERR JET_API
JetGetBookmark(
__in JET_SESID
sesid,
__in JET_TABLEID
tableid,
__out_bcount_part_opt( cbMax, *pcbActual ) void * pvBookmark,
__in unsigned long
cbMax,
__out_opt unsigned long *
pcbActual );
#if ( JET_VERSION >= 0x0501 )
JET_ERR JET_API
JetGetSecondaryIndexBookmark(
__in JET_SESID
sesid,
__in JET_TABLEID
tableid,
__out_bcount_part_opt( cbSecondaryKeyMax, *pcbSecondaryKeyActual ) void *
pvSecondaryKey,
__in unsigned long
cbSecondaryKeyMax
,
__out_opt unsigned long *
pcbSecondaryKeyActual,
__out_bcount_part_opt( cbPrimaryBookmarkMax, *pcbPrimaryKeyActual ) void
* pvPrimaryBookmark,
__in unsigned long
cbPrimaryBookmark
Max,
__out_opt unsigned long *
pcbPrimaryKeyActual,
__in const JET_GRBIT
grbit );
#endif // JET_VERSION >= 0x0501
#if ( JET_VERSION < 0x0600 )
#define JetCompactA JetCompact
#endif
JET_ERR JET_API
JetCompactA(
__in JET_SESID sesid,
__in JET_PCSTR szDatabaseSrc,
__in JET_PCSTR szDatabaseDest,
__in JET_PFNSTATUS pfnStatus,
__in_opt JET_CONVERT_A * pconvert,
__in JET_GRBIT grbit );
#if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API
JetCompactW(
__in JET_SESID sesid,
__in JET_PCWSTR szDatabaseSrc,
__in JET_PCWSTR szDatabaseDest,
__in JET_PFNSTATUS pfnStatus,
__in_opt JET_CONVERT_W * pconvert,
__in JET_GRBIT grbit );
#ifdef JET_UNICODE
#define JetCompact JetCompactW
#else
#define JetCompact JetCompactA
#endif
#endif
#if ( JET_VERSION < 0x0600 )
#define JetDefragmentA JetDefragment
#endif
JET_ERR JET_API
JetDefragmentA(
__in JET_SESID sesid,
__in JET_DBID dbid,
__in JET_PCSTR szTableName,
__out_opt unsigned long * pcPasses,
__out_opt unsigned long * pcSeconds,
__in JET_GRBIT grbit );
#if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API
JetDefragmentW(
__in JET_SESID sesid,
__in JET_DBID dbid,
__in JET_PCWSTR szTableName,
__out_opt unsigned long * pcPasses,
__out_opt unsigned long * pcSeconds,
__in JET_GRBIT grbit );
#ifdef JET_UNICODE
#define JetDefragment JetDefragmentW
#else
#define JetDefragment JetDefragmentA
#endif
#endif
#if ( JET_VERSION >= 0x0501 )
#if ( JET_VERSION < 0x0600 )
#define JetDefragment2A JetDefragment2
#endif
JET_ERR JET_API
JetDefragment2A(
__in JET_SESID sesid,
__in JET_DBID dbid,
__in JET_PCSTR szTableName,
__out_opt unsigned long * pcPasses,
__out_opt unsigned long * pcSeconds,
__in JET_CALLBACK callback,
__in JET_GRBIT grbit );
#if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API
JetDefragment2W(
__in JET_SESID sesid,
__in JET_DBID dbid,
__in JET_PCWSTR szTableName,
__out_opt unsigned long * pcPasses,
__out_opt unsigned long * pcSeconds,
__in JET_CALLBACK callback,
__in JET_GRBIT grbit );
#ifdef JET_UNICODE
#define JetDefragment2 JetDefragment2W
#else
#define JetDefragment2 JetDefragment2A
#endif
#endif
#if ( JET_VERSION < 0x0600 )
#define JetDefragment3A JetDefragment3
#endif
JET_ERR JET_API
JetDefragment3A(
__in JET_SESID sesid,
__in JET_PCSTR szDatabaseName,
__in JET_PCSTR szTableName,
__out_opt unsigned long * pcPasses,
__out_opt unsigned long * pcSeconds,
__in JET_CALLBACK callback,
__in void * pvContext,
__in JET_GRBIT grbit );
#if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API
JetDefragment3W(
__in JET_SESID sesid,
__in JET_PCWSTR szDatabaseName,
__in JET_PCWSTR szTableName,
__out_opt unsigned long * pcPasses,
__out_opt unsigned long * pcSeconds,
__in JET_CALLBACK callback,
__in void * pvContext,
__in JET_GRBIT grbit );
#ifdef JET_UNICODE
#define JetDefragment3 JetDefragment3W
#else
#define JetDefragment3 JetDefragment3A
#endif
#endif
#endif // JET_VERSION >= 0x0501
#if ( JET_VERSION < 0x0600 )
#define JetSetDatabaseSizeA JetSetDatabaseSize
#endif
JET_ERR JET_API
JetSetDatabaseSizeA(
__in JET_SESID sesid,
__in JET_PCSTR szDatabaseName,
__in unsigned long cpg,
__out unsigned long * pcpgReal );
#if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API
JetSetDatabaseSizeW(
__in JET_SESID sesid,
__in JET_PCWSTR szDatabaseName,
__in unsigned long cpg,
__out unsigned long * pcpgReal );
#ifdef JET_UNICODE
#define JetSetDatabaseSize JetSetDatabaseSizeW
#else
#define JetSetDatabaseSize JetSetDatabaseSizeA
#endif
#endif
JET_ERR JET_API
JetGrowDatabase(
__in JET_SESID sesid,
__in JET_DBID dbid,
__in unsigned long cpg,
__in unsigned long * pcpgReal );
JET_ERR JET_API
JetSetSessionContext(
__in JET_SESID sesid,
__in JET_API_PTR ulContext );
JET_ERR JET_API
JetResetSessionContext(
__in JET_SESID sesid );
JET_ERR JET_API
JetGotoBookmark(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in_bcount( cbBookmark ) void * pvBookmark,
__in unsigned long cbBookmark );
#if ( JET_VERSION >= 0x0501 )
JET_ERR JET_API
JetGotoSecondaryIndexBookmark(
__in JET_SESID s
esid,
__in JET_TABLEID t
ableid,
__in_bcount( cbSecondaryKey ) void * pvSecondaryKey,
__in unsigned long c
bSecondaryKey,
__in_bcount_opt( cbPrimaryBookmark ) void * pvPrimaryBookmark,
__in unsigned long c
bPrimaryBookmark,
__in const JET_GRBIT grbit );
#endif // JET_VERSION >= 0x0501
JET_ERR JET_API
JetIntersectIndexes(
__in JET_SESID s
esid,
__in_ecount( cindexrange ) JET_INDEXRANGE * rgindexrange,
__in unsigned long c
indexrange,
__inout JET_RECORDLIST * precordli
st,
__in JET_GRBIT g
rbit );
JET_ERR JET_API
JetComputeStats(
__in JET_SESID sesid,
__in JET_TABLEID tableid );
JET_ERR JET_API
JetOpenTempTable(
__in JET_SESID
sesid,
__in_ecount( ccolumn ) const JET_COLUMNDEF * prgcolumndef,
__in unsigned long
ccolumn,
__in JET_GRBIT
grbit,
__out JET_TABLEID *
ptableid,
__out_ecount( ccolumn ) JET_COLUMNID * prgcolumnid );
JET_ERR JET_API
JetOpenTempTable2(
__in JET_SESID
sesid,
__in_ecount( ccolumn ) const JET_COLUMNDEF * prgcolumndef,
__in unsigned long
lcid,
__in unsigned long
ccolumn,
__in JET_GRBIT
grbit,
__out JET_TABLEID *
ptableid,
__out_ecount( ccolumn ) JET_COLUMNID * prgcolumnid );
JET_ERR JET_API
JetOpenTempTable3(
__in JET_SESID
sesid,
__in_ecount( ccolumn ) const JET_COLUMNDEF * prgcolumndef,
__in unsigned long
ccolumn,
__in_opt JET_UNICODEINDEX * p
idxunicode,
__in JET_GRBIT
grbit,
__out JET_TABLEID *
ptableid,
__out_ecount( ccolumn ) JET_COLUMNID * prgcolumnid );
#if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API
JetOpenTemporaryTable(
__in JET_SESID sesid,
__in JET_OPENTEMPORARYTABLE * popentemporarytable );
#endif // JET_VERSION >= 0x0600
#if ( JET_VERSION < 0x0600 )
#define JetBackupA JetBackup
#endif
JET_ERR JET_API
JetBackupA(
__in JET_PCSTR szBackupPath,
__in JET_GRBIT grbit,
__in JET_PFNSTATUS pfnStatus );
#if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API
JetBackupW(
__in JET_PCWSTR szBackupPath,
__in JET_GRBIT grbit,
__in JET_PFNSTATUS pfnStatus );
#ifdef JET_UNICODE
#define JetBackup JetBackupW
#else
#define JetBackup JetBackupA
#endif
#endif
#if ( JET_VERSION >= 0x0501 )
#if ( JET_VERSION < 0x0600 )
#define JetBackupInstanceA JetBackupInstance
#endif
JET_ERR JET_API
JetBackupInstanceA(
__in JET_INSTANCE instance,
__in JET_PCSTR szBackupPath,
__in JET_GRBIT grbit,
__in JET_PFNSTATUS pfnStatus );
#if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API
JetBackupInstanceW(
__in JET_INSTANCE instance,
__in JET_PCWSTR szBackupPath,
__in JET_GRBIT grbit,
__in JET_PFNSTATUS pfnStatus );
#ifdef JET_UNICODE
#define JetBackupInstance JetBackupInstanceW
#else
#define JetBackupInstance JetBackupInstanceA
#endif
#endif
#endif // JET_VERSION >= 0x0501
#if ( JET_VERSION < 0x0600 )
#define JetRestoreA JetRestore
#endif
JET_ERR JET_API
JetRestoreA(
__in JET_PCSTR sz,
__in JET_PFNSTATUS pfn );
#if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API
JetRestoreW(
__in JET_PCWSTR sz,
__in JET_PFNSTATUS pfn );
#ifdef JET_UNICODE
#define JetRestore JetRestoreW
#else
#define JetRestore JetRestoreA
#endif
#endif
#if ( JET_VERSION < 0x0600 )
#define JetRestore2A JetRestore2
#endif
JET_ERR JET_API
JetRestore2A(
__in JET_PCSTR sz,
__in_opt JET_PCSTR szDest,
__in JET_PFNSTATUS pfn );
#if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API
JetRestore2W(
__in JET_PCWSTR sz,
__in_opt JET_PCWSTR szDest,
__in JET_PFNSTATUS pfn );
#ifdef JET_UNICODE
#define JetRestore2 JetRestore2W
#else
#define JetRestore2 JetRestore2A
#endif
#endif
#if ( JET_VERSION >= 0x0501 )
#if ( JET_VERSION < 0x0600 )
#define JetRestoreInstanceA JetRestoreInstanceA
#endif
JET_ERR JET_API
JetRestoreInstanceA(
__in JET_INSTANCE instance,
__in JET_PCSTR sz,
__in_opt JET_PCSTR szDest,
__in JET_PFNSTATUS pfn );
#if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API
JetRestoreInstanceW(
__in JET_INSTANCE instance,
__in JET_PCWSTR sz,
__in_opt JET_PCWSTR szDest,
__in JET_PFNSTATUS pfn );
#ifdef JET_UNICODE
#define JetRestoreInstance JetRestoreInstanceW
#else
#define JetRestoreInstance JetRestoreInstanceA
#endif
#endif
#endif // JET_VERSION >= 0x0501
JET_ERR JET_API
JetSetIndexRange(
__in JET_SESID sesid,
__in JET_TABLEID tableidSrc,
__in JET_GRBIT grbit );
JET_ERR JET_API
JetIndexRecordCount(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__out unsigned long * pcrec,
__in unsigned long crecMax );
JET_ERR JET_API
JetRetrieveKey(
__in JET_SESID
sesid,
__in JET_TABLEID
tableid,
__out_bcount_part_opt( cbMax, *pcbActual ) void * pvData,
__in unsigned long
cbMax,
__out_opt unsigned long *
pcbActual,
__in JET_GRBIT
grbit );
JET_ERR JET_API JetBeginExternalBackup( JET_GRBIT grbit ); JET_ERR JET_API JetBeginExternalBackup( JET_GRBIT grbit );
#ifdef JET_VERSION_XP #if ( JET_VERSION >= 0x0501 )
JET_ERR JET_API JetBeginExternalBackupInstance( JET_INSTANCE instance, JET_GRBIT grbit ); JET_ERR JET_API JetBeginExternalBackupInstance( JET_INSTANCE instance, JET_GRBIT grbit );
#endif // JET_VERSION_XP #endif // JET_VERSION >= 0x0501
JET_ERR JET_API JetGetAttachInfo( void *pv, #if ( JET_VERSION < 0x0600 )
unsigned long cbMax, #define JetGetAttachInfoA JetGetAttachInfo
unsigned long *pcbActual ); #endif
#ifdef JET_VERSION_XP
JET_ERR JET_API JetGetAttachInfoInstance( JET_INSTANCE instance,
void *pv,
unsigned long cbMax,
unsigned long *pcbActual );
#endif // JET_VERSION_XP
JET_ERR JET_API JetOpenFile( const char *szFileName, JET_ERR JET_API
JET_HANDLE *phfFile, JetGetAttachInfoA(
unsigned long *pulFileSizeLow, #if ( JET_VERSION < 0x0600 )
unsigned long *pulFileSizeHigh ); __out_bcount_part_opt( cbMax, *pcbActual ) void * pv,
#else
__out_bcount_part_opt( cbMax, *pcbActual ) JET_PSTR szz,
#endif
__in unsigned long
cbMax,
__out_opt unsigned long *
pcbActual );
#ifdef JET_VERSION_XP #if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API JetOpenFileInstance( JET_INSTANCE instance,
c
onst char *szFileName,
J
ET_HANDLE *phfFile,
u
nsigned long *pulFileSizeLow,
u
nsigned long *pulFileSizeHigh );
#endif // JET_VERSION_XP
JET_ERR JET_API JetReadFile( JET_HANDLE hfFile, JET_ERR JET_API
void *pv, JetGetAttachInfoW(
unsigned long cb, __out_bcount_part_opt( cbMax, *pcbActual ) JET_PWSTR szz,
unsigned long *pcb ); __in unsigned long
#ifdef JET_VERSION_XP cbMax,
JET_ERR JET_API JetReadFileInstance( JET_INSTANCE instance, __out_opt unsigned long *
J pcbActual );
ET_HANDLE hfFile,
v
oid *pv,
u
nsigned long cb,
u
nsigned long *pcb );
#endif // JET_VERSION_XP
JET_ERR JET_API JetCloseFile( JET_HANDLE hfFile ); #ifdef JET_UNICODE
#ifdef JET_VERSION_XP #define JetGetAttachInfo JetGetAttachInfoW
JET_ERR JET_API JetCloseFileInstance( JET_INSTANCE instance, JET_HANDLE hfFile ) #else
; #define JetGetAttachInfo JetGetAttachInfoA
#endif // JET_VERSION_XP #endif
#endif
JET_ERR JET_API JetGetLogInfo( void *pv, #if ( JET_VERSION >= 0x0501 )
unsigned long cbMax, #if ( JET_VERSION < 0x0600 )
unsigned long *pcbActual ); #define JetGetAttachInfoInstanceA JetGetAttachInfoInstance
#ifdef JET_VERSION_XP #endif
JET_ERR JET_API JetGetLogInfoInstance( JET_INSTANCE instance,
v JET_ERR JET_API
oid *pv, JetGetAttachInfoInstanceA(
u __in JET_INSTANCE
nsigned long cbMax, instance,
u #if ( JET_VERSION < 0x0600 )
nsigned long *pcbActual ); __out_bcount_part_opt( cbMax, *pcbActual ) void * pv,
#else
__out_bcount_part_opt( cbMax, *pcbActual ) JET_PSTR szz,
#endif
__in unsigned long
cbMax,
__out_opt unsigned long *
pcbActual );
#if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API
JetGetAttachInfoInstanceW(
__in JET_INSTANCE
instance,
__out_bcount_part_opt( cbMax, *pcbActual ) JET_PWSTR szz,
__in unsigned long
cbMax,
__out_opt unsigned long *
pcbActual );
#ifdef JET_UNICODE
#define JetGetAttachInfoInstance JetGetAttachInfoInstanceW
#else
#define JetGetAttachInfoInstance JetGetAttachInfoInstanceA
#endif
#endif
#endif // JET_VERSION >= 0x0501
#if ( JET_VERSION < 0x0600 )
#define JetOpenFileA JetOpenFile
#endif
JET_ERR JET_API
JetOpenFileA(
__in JET_PCSTR szFileName,
__out JET_HANDLE * phfFile,
__out unsigned long * pulFileSizeLow,
__out unsigned long * pulFileSizeHigh );
#if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API
JetOpenFileW(
__in JET_PCWSTR szFileName,
__out JET_HANDLE * phfFile,
__out unsigned long * pulFileSizeLow,
__out unsigned long * pulFileSizeHigh );
#ifdef JET_UNICODE
#define JetOpenFile JetOpenFileW
#else
#define JetOpenFile JetOpenFileA
#endif
#endif
#if ( JET_VERSION >= 0x0501 )
#if ( JET_VERSION < 0x0600 )
#define JetOpenFileInstanceA JetOpenFileInstance
#endif
JET_ERR JET_API
JetOpenFileInstanceA(
__in JET_INSTANCE instance,
__in JET_PCSTR szFileName,
__out JET_HANDLE * phfFile,
__out unsigned long * pulFileSizeLow,
__out unsigned long * pulFileSizeHigh );
#if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API
JetOpenFileInstanceW(
__in JET_INSTANCE instance,
__in JET_PCWSTR szFileName,
__out JET_HANDLE * phfFile,
__out unsigned long * pulFileSizeLow,
__out unsigned long * pulFileSizeHigh );
#ifdef JET_UNICODE
#define JetOpenFileInstance JetOpenFileInstanceW
#else
#define JetOpenFileInstance JetOpenFileInstanceA
#endif
#endif
#endif // JET_VERSION >= 0x0501
JET_ERR JET_API
JetReadFile(
__in JET_HANDLE h
fFile,
__out_bcount_part( cb, *pcbActual ) void * pv,
__in unsigned long c
b,
__out_opt unsigned long * pcbActual
);
#if ( JET_VERSION >= 0x0501 )
JET_ERR JET_API
JetReadFileInstance(
__in JET_INSTANCE i
nstance,
__in JET_HANDLE h
fFile,
__out_bcount_part( cb, *pcbActual ) void * pv,
__in unsigned long c
b,
__out_opt unsigned long * pcbActual
);
#endif // JET_VERSION >= 0x0501
JET_ERR JET_API
JetCloseFile(
__in JET_HANDLE hfFile );
#if ( JET_VERSION >= 0x0501 )
JET_ERR JET_API
JetCloseFileInstance(
__in JET_INSTANCE instance,
__in JET_HANDLE hfFile );
#endif // JET_VERSION >= 0x0501
#if ( JET_VERSION < 0x0600 )
#define JetGetLogInfoA JetGetLogInfo
#endif
JET_ERR JET_API
JetGetLogInfoA(
#if ( JET_VERSION < 0x0600 )
__out_bcount_part_opt( cbMax, *pcbActual ) void * pv,
#else
__out_bcount_part_opt( cbMax, *pcbActual ) JET_PSTR szz,
#endif
__in unsigned long
cbMax,
__out_opt unsigned long *
pcbActual );
#if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API
JetGetLogInfoW(
__out_bcount_part_opt( cbMax, *pcbActual ) JET_PWSTR szz,
__in unsigned long
cbMax,
__out_opt unsigned long *
pcbActual );
#ifdef JET_UNICODE
#define JetGetLogInfo JetGetLogInfoW
#else
#define JetGetLogInfo JetGetLogInfoA
#endif
#endif
#if ( JET_VERSION >= 0x0501 )
#if ( JET_VERSION < 0x0600 )
#define JetGetLogInfoInstanceA JetGetLogInfoInstance
#endif
JET_ERR JET_API
JetGetLogInfoInstanceA(
__in JET_INSTANCE
instance,
#if ( JET_VERSION < 0x0600 )
__out_bcount_part_opt( cbMax, *pcbActual ) void * pv,
#else
__out_bcount_part_opt( cbMax, *pcbActual ) JET_PSTR szz,
#endif
__in unsigned long
cbMax,
__out_opt unsigned long *
pcbActual );
#if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API
JetGetLogInfoInstanceW(
__in JET_INSTANCE
instance,
__out_bcount_part_opt( cbMax, *pcbActual ) JET_PWSTR szz,
__in unsigned long
cbMax,
__out_opt unsigned long *
pcbActual );
#ifdef JET_UNICODE
#define JetGetLogInfoInstance JetGetLogInfoInstanceW
#else
#define JetGetLogInfoInstance JetGetLogInfoInstanceA
#endif
#endif
#define JET_BASE_NAME_LENGTH 3 #define JET_BASE_NAME_LENGTH 3
typedef struct typedef struct
{ {
unsigned long cbSize; unsigned long cbSize;
unsigned long ulGenLow; unsigned long ulGenLow;
unsigned long ulGenHigh; unsigned long ulGenHigh;
char szBaseName[ JET_BASE_NAME_LENGTH + 1 ]; char szBaseName[ JET_BASE_NAME_LENGTH + 1 ];
} JET_LOGINFO; } JET_LOGINFO_A;
JET_ERR JET_API JetGetLogInfoInstance2( JET_INSTANCE instance, typedef struct
v {
oid *pv, unsigned long cbSize;
u unsigned long ulGenLow;
nsigned long cbMax, unsigned long ulGenHigh;
u WCHAR szBaseName[ JET_BASE_NAME_LENGTH + 1 ];
nsigned long *pcbActual, } JET_LOGINFO_W;
J
ET_LOGINFO * pLogInfo);
JET_ERR JET_API JetGetTruncateLogInfoInstance( JET_INSTANCE instance, #ifdef JET_UNICODE
#define JET_LOGINFO JET_LOGINFO_W
void *pv, #else
#define JET_LOGINFO JET_LOGINFO_A
unsigned long cbMax, #endif
unsigned long *pcbActual ); #if ( JET_VERSION < 0x0600 )
#endif // JET_VERSION_XP #define JetGetLogInfoInstance2A JetGetLogInfoInstance2
#endif
JET_ERR JET_API
JetGetLogInfoInstance2A(
__in JET_INSTANCE
instance,
#if ( JET_VERSION < 0x0600 )
__out_bcount_part_opt( cbMax, *pcbActual ) void * pv,
#else
__out_bcount_part_opt( cbMax, *pcbActual ) JET_PSTR szz,
#endif
__in unsigned long
cbMax,
__out_opt unsigned long *
pcbActual,
__inout_opt JET_LOGINFO_A *
pLogInfo );
#if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API
JetGetLogInfoInstance2W(
__in JET_INSTANCE
instance,
__out_bcount_part_opt( cbMax, *pcbActual ) JET_PWSTR szz,
__in unsigned long
cbMax,
__out_opt unsigned long *
pcbActual,
__inout_opt JET_LOGINFO_W *
pLogInfo );
#ifdef JET_UNICODE
#define JetGetLogInfoInstance2 JetGetLogInfoInstance2W
#else
#define JetGetLogInfoInstance2 JetGetLogInfoInstance2A
#endif
#endif
#if ( JET_VERSION < 0x0600 )
#define JetGetTruncateLogInfoInstanceA JetGetTruncateLogInfoInstance
#endif
JET_ERR JET_API
JetGetTruncateLogInfoInstanceA(
__in JET_INSTANCE
instance,
#if ( JET_VERSION < 0x0600 )
__out_bcount_part_opt( cbMax, *pcbActual ) void * pv,
#else
__out_bcount_part_opt( cbMax, *pcbActual ) JET_PSTR szz,
#endif
__in unsigned long
cbMax,
__out_opt unsigned long *
pcbActual );
#if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API
JetGetTruncateLogInfoInstanceW(
__in JET_INSTANCE
instance,
__out_bcount_part_opt( cbMax, *pcbActual ) JET_PWSTR szz,
__in unsigned long
cbMax,
__out_opt unsigned long *
pcbActual );
#ifdef JET_UNICODE
#define JetGetTruncateLogInfoInstance JetGetTruncateLogInfoInstanceW
#else
#define JetGetTruncateLogInfoInstance JetGetTruncateLogInfoInstanceA
#endif
#endif
#endif // JET_VERSION >= 0x0501
JET_ERR JET_API JetTruncateLog( void ); JET_ERR JET_API JetTruncateLog( void );
#ifdef JET_VERSION_XP #if ( JET_VERSION >= 0x0501 )
JET_ERR JET_API JetTruncateLogInstance( JET_INSTANCE instance ); JET_ERR JET_API
#endif // JET_VERSION_XP JetTruncateLogInstance(
__in JET_INSTANCE instance );
#endif // JET_VERSION >= 0x0501
JET_ERR JET_API JetEndExternalBackup( void ); JET_ERR JET_API JetEndExternalBackup( void );
#ifdef JET_VERSION_XP #if ( JET_VERSION >= 0x0501 )
JET_ERR JET_API JetEndExternalBackupInstance( JET_INSTANCE instance ); JET_ERR JET_API
JetEndExternalBackupInstance(
__in JET_INSTANCE instance );
/* Flags for JetEndExternalBackupInstance2 */ /* Flags for JetEndExternalBackupInstance2 */
#define JET_bitBackupEndNormal 0x0001 #define JET_bitBackupEndNormal 0x0001
#define JET_bitBackupEndAbort 0x0002 #define JET_bitBackupEndAbort 0x0002
#if ( JET_VERSION >= 0x0600 )
#define JET_bitBackupTruncateDone 0x0100
#endif // JET_VERSION >= 0x0600
JET_ERR JET_API JetEndExternalBackupInstance2( JET_INSTANCE instance, JET_GRBIT JET_ERR JET_API
grbit ); JetEndExternalBackupInstance2(
#endif // JET_VERSION_XP __in JET_INSTANCE instance,
__in JET_GRBIT grbit );
#endif // JET_VERSION >= 0x0501
JET_ERR JET_API JetExternalRestore( char *szCheckpointFilePath, #if ( JET_VERSION < 0x0600 )
c #define JetExternalRestoreA JetExternalRestore
har *szLogPath, #endif
J
ET_RSTMAP *rgstmap,
l
ong crstfilemap,
c
har *szBackupLogPath,
l
ong genLow,
l
ong genHigh,
J
ET_PFNSTATUS pfn );
#ifdef JET_VERSION_XP JET_ERR JET_API
JET_ERR JET_API JetExternalRestore2( char *szCheckpointFilePath, JetExternalRestoreA(
c __in JET_PSTR
har *szLogPath, szCheckpointFilePath,
J __in JET_PSTR
ET_RSTMAP *rgstmap, szLogPath,
l __in_ecount_opt( crstfilemap ) JET_RSTMAP_A * rgrstmap,
ong crstfilemap, __in long
c crstfilemap,
har *szBackupLogPath, __in JET_PSTR
J szBackupLogPath,
ET_LOGINFO * pLogInfo, __in long
c genLow,
har *szTargetInstanceName, __in long
c genHigh,
har *szTargetInstanceLogPath, __in JET_PFNSTATUS
c pfn );
har *szTargetInstanceCheckpointPath,
J
ET_PFNSTATUS pfn );
JET_ERR JET_API JetRegisterCallback( #if ( JET_VERSION >= 0x0600 )
JET_SESID sesid,
JET_TABLEID tableid,
JET_CBTYP cbtyp,
JET_CALLBACK pCallback,
void * pvContext,
JET_HANDLE *phCallbackId );
JET_ERR JET_API JetUnregisterCallback( JET_ERR JET_API
JET_SESID sesid, JetExternalRestoreW(
JET_TABLEID tableid, __in JET_PWSTR
JET_CBTYP cbtyp, szCheckpointFilePath,
JET_HANDLE hCallbackId ); __in JET_PWSTR
szLogPath,
__in_ecount_opt( crstfilemap ) JET_RSTMAP_W * rgrstmap,
__in long
crstfilemap,
__in JET_PWSTR
szBackupLogPath,
__in long
genLow,
__in long
genHigh,
__in JET_PFNSTATUS
pfn );
typedef struct _JET_INSTANCE_INFO #ifdef JET_UNICODE
#define JetExternalRestore JetExternalRestoreW
#else
#define JetExternalRestore JetExternalRestoreA
#endif
#endif
#if JET_VERSION >= 0x0501
#if ( JET_VERSION < 0x0600 )
#define JetExternalRestore2A JetExternalRestore2
#endif
JET_ERR JET_API
JetExternalRestore2A(
__in JET_PSTR
szCheckpointFilePath,
__in JET_PSTR
szLogPath,
__in_ecount_opt( crstfilemap ) JET_RSTMAP_A * rgrstmap,
__in long
crstfilemap,
__in JET_PSTR
szBackupLogPath,
__inout JET_LOGINFO_A * p
LogInfo,
__in_opt JET_PSTR
szTargetInstanceName,
__in_opt JET_PSTR
szTargetInstanceLogPath,
__in_opt JET_PSTR
szTargetInstanceCheckpointPath,
__in JET_PFNSTATUS
pfn );
#if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API
JetExternalRestore2W(
__in JET_PWSTR
szCheckpointFilePath,
__in JET_PWSTR
szLogPath,
__in_ecount_opt( crstfilemap ) JET_RSTMAP_W * rgrstmap,
__in long
crstfilemap,
__in JET_PWSTR
szBackupLogPath,
__inout JET_LOGINFO_W * p
LogInfo,
__in_opt JET_PWSTR
szTargetInstanceName,
__in_opt JET_PWSTR
szTargetInstanceLogPath,
__in_opt JET_PWSTR
szTargetInstanceCheckpointPath,
__in JET_PFNSTATUS
pfn );
#ifdef JET_UNICODE
#define JetExternalRestore2 JetExternalRestore2W
#else
#define JetExternalRestore2 JetExternalRestore2A
#endif
#endif
JET_ERR JET_API
JetRegisterCallback(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in JET_CBTYP cbtyp,
__in JET_CALLBACK pCallback,
__in void * pvContext,
__out JET_HANDLE * phCallbackId );
JET_ERR JET_API
JetUnregisterCallback(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in JET_CBTYP cbtyp,
__in JET_HANDLE hCallbackId );
typedef struct _JET_INSTANCE_INFO_A
{ {
JET_INSTANCE hInstanceId; JET_INSTANCE hInstanceId;
char * szInstanceName; char * szInstanceName;
JET_API_PTR cDatabases; JET_API_PTR cDatabases;
char ** szDatabaseFileName; char ** szDatabaseFileName;
char ** szDatabaseDisplayName; char ** szDatabaseDisplayName;
char ** szDatabaseSLVFileName; char ** szDatabaseSLVFileName;
} JET_INSTANCE_INFO; } JET_INSTANCE_INFO_A;
JET_ERR JET_API JetGetInstanceInfo( unsigned long *pcInstanceInfo, JET_INSTANCE_ typedef struct _JET_INSTANCE_INFO_W
INFO ** paInstanceInfo ); {
JET_INSTANCE hInstanceId;
WCHAR * szInstanceName;
JET_ERR JET_API JetFreeBuffer( char *pbBuf ); JET_API_PTR cDatabases;
WCHAR ** szDatabaseFileName;
WCHAR ** szDatabaseDisplayName;
WCHAR ** szDatabaseSLVFileName;
} JET_INSTANCE_INFO_W;
JET_ERR JET_API JetSetLS( #ifdef JET_UNICODE
JET_SESID sesid, #define JET_INSTANCE_INFO JET_INSTANCE_INFO_W
JET_TABLEID tableid, #else
JET_LS ls, #define JET_INSTANCE_INFO JET_INSTANCE_INFO_A
JET_GRBIT grbit ); #endif
JET_ERR JET_API JetGetLS( #if ( JET_VERSION < 0x0600 )
JET_SESID sesid, #define JetGetInstanceInfoA JetGetInstanceInfo
JET_TABLEID tableid, #endif
JET_LS *pls,
JET_GRBIT grbit ); JET_ERR JET_API
JetGetInstanceInfoA(
__out unsigned long *
pcInstanceInfo,
__deref_out_ecount( *pcInstanceInfo ) JET_INSTANCE_INFO_A ** paInstanc
eInfo );
#if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API
JetGetInstanceInfoW(
__out unsigned long *
pcInstanceInfo,
__deref_out_ecount( *pcInstanceInfo ) JET_INSTANCE_INFO_W ** paInstanc
eInfo );
#ifdef JET_UNICODE
#define JetGetInstanceInfo JetGetInstanceInfoW
#else
#define JetGetInstanceInfo JetGetInstanceInfoA
#endif
#endif
JET_ERR JET_API
JetFreeBuffer(
__notnull char * pbBuf );
JET_ERR JET_API
JetSetLS(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in JET_LS ls,
__in JET_GRBIT grbit );
JET_ERR JET_API
JetGetLS(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__out JET_LS * pls,
__in JET_GRBIT grbit );
typedef JET_API_PTR JET_OSSNAPID; /* Snapshot Session Identifier */ typedef JET_API_PTR JET_OSSNAPID; /* Snapshot Session Identifier */
JET_ERR JET_API JetOSSnapshotPrepare( JET_OSSNAPID * psnapId, const JET_GRBIT gr JET_ERR JET_API
bit ); JetOSSnapshotPrepare(
JET_ERR JET_API JetOSSnapshotFreeze( const JET_OSSNAPID snapId, unsigned long *p __out JET_OSSNAPID * psnapId,
cInstanceInfo, JET_INSTANCE_INFO ** paInstanceInfo, const JET_GRBIT grbit ); __in const JET_GRBIT grbit );
JET_ERR JET_API JetOSSnapshotThaw( const JET_OSSNAPID snapId, const JET_GRBIT gr #if ( JET_VERSION >= 0x0600 )
bit ); JET_ERR JET_API
#endif // JET_VERSION_XP JetOSSnapshotPrepareInstance(
__in JET_OSSNAPID snapId,
__in JET_INSTANCE instance,
__in const JET_GRBIT grbit );
#endif // JET_VERSION >= 0x0600
#if ( JET_VERSION < 0x0600 )
#define JetOSSnapshotFreezeA JetOSSnapshotFreeze
#endif
JET_ERR JET_API
JetOSSnapshotFreezeA(
__in const JET_OSSNAPID
snapId,
__out unsigned long *
pcInstanceInfo,
__deref_out_ecount( *pcInstanceInfo ) JET_INSTANCE_INFO_A ** paInstanc
eInfo,
__in const JET_GRBIT
grbit );
#if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API
JetOSSnapshotFreezeW(
__in const JET_OSSNAPID
snapId,
__out unsigned long *
pcInstanceInfo,
__deref_out_ecount( *pcInstanceInfo ) JET_INSTANCE_INFO_W ** paInstanc
eInfo,
__in const JET_GRBIT
grbit );
#ifdef JET_UNICODE
#define JetOSSnapshotFreeze JetOSSnapshotFreezeW
#else
#define JetOSSnapshotFreeze JetOSSnapshotFreezeA
#endif
#endif
#ifdef JET_VERSION_SERVER2003 JET_ERR JET_API
JET_ERR JET_API JetOSSnapshotAbort( const JET_OSSNAPID snapId, const JET_GRBIT g JetOSSnapshotThaw(
rbit ); __in const JET_OSSNAPID snapId,
#endif // JET_VERSION_SERVER2003 __in const JET_GRBIT grbit );
#endif // JET_VERSION >= 0x0501
#if ( JET_VERSION >= 0x0502 )
JET_ERR JET_API
JetOSSnapshotAbort(
__in const JET_OSSNAPID snapId,
__in const JET_GRBIT grbit );
#endif // JET_VERSION >= 0x0502
#if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API
JetOSSnapshotTruncateLog(
__in const JET_OSSNAPID snapId,
__in const JET_GRBIT grbit );
JET_ERR JET_API
JetOSSnapshotTruncateLogInstance(
__in const JET_OSSNAPID snapId,
__in JET_INSTANCE instance,
__in const JET_GRBIT grbit );
#if ( JET_VERSION < 0x0600 )
#define JetOSSnapshotGetFreezeInfoA JetOSSnapshotGetFreezeInfo
#endif
JET_ERR JET_API
JetOSSnapshotGetFreezeInfoA(
__in const JET_OSSNAPID
snapId,
__out unsigned long *
pcInstanceInfo,
__deref_out_ecount( *pcInstanceInfo ) JET_INSTANCE_INFO_A ** paInstanc
eInfo,
__in const JET_GRBIT
grbit );
#if ( JET_VERSION >= 0x0600 )
JET_ERR JET_API
JetOSSnapshotGetFreezeInfoW(
__in const JET_OSSNAPID
snapId,
__out unsigned long *
pcInstanceInfo,
__deref_out_ecount( *pcInstanceInfo ) JET_INSTANCE_INFO_W ** paInstanc
eInfo,
__in const JET_GRBIT
grbit );
#ifdef JET_UNICODE
#define JetOSSnapshotGetFreezeInfo JetOSSnapshotGetFreezeInfoW
#else
#define JetOSSnapshotGetFreezeInfo JetOSSnapshotGetFreezeInfoA
#endif
#endif
JET_ERR JET_API
JetOSSnapshotEnd(
__in const JET_OSSNAPID snapId,
__in const JET_GRBIT grbit );
#endif // JET_VERSION >= 0x0600
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif /* _JET_NOPROTOTYPES */ #endif /* _JET_NOPROTOTYPES */
#include <poppack.h> #include <poppack.h>
#ifdef __cplusplus #ifdef __cplusplus
 End of changes. 286 change blocks. 
1053 lines changed or deleted 3515 lines changed or added

This html diff was produced by rfcdiff 1.41.