Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

2395 lines
105 KiB

/***********************************************************************
* Microsoft Jet
*
* Microsoft Confidential. Copyright 1991-1993 Microsoft Corporation.
*
* Component:
*
* File: jet.h
*
* File Comments:
*
* Public header file with JET API definition.
*
* Revision History:
*
* [0] 04-Jan-92 richards Added this header
*
***********************************************************************/
//
// This __JET500 essentially creates two version of this file in this
// same file. All the jet500 stuff is in __JET500 macro
//
#if __JET500
#include "jet500.h"
//
// End of 500 series jet.h
#else
//
// Original jet.h starts here. i.e jet.h of 200 series db.
//
#if !defined(_JET_INCLUDED)
#define _JET_INCLUDED
#ifdef __cplusplus
extern "C" {
#endif
#pragma pack(4)
#if defined(_M_ALPHA) /* 0:32 Flat Model (Alpha AXP) */
#define _far
#define JET_API __stdcall
#define JET_NODSAPI __stdcall
#elif defined(M_MRX000) /* 0:32 Flat Model (MIPS Rx000) */
#define _far
#define JET_API __stdcall
#define JET_NODSAPI __stdcall
#else /* 0:32 flat model (Intel 32-bit ) */
#define _far
#define JET_API __stdcall /* CONSIDER: Switch to __stdcall */
#define JET_NODSAPI __stdcall /* CONSIDER: Switch to __stdcall */
#endif
typedef long JET_ERR;
typedef unsigned long JET_INSTANCE; /* Instance Identifier */
typedef ULONG_PTR JET_SESID; /* Session Identifier */
typedef ULONG_PTR JET_TABLEID; /* Table Identifier */
typedef unsigned long JET_COLUMNID; /* Column Identifier */
typedef ULONG_PTR JET_DBID; /* Database Identifier */
typedef unsigned long JET_OBJTYP; /* Object Type */
typedef unsigned long JET_COLTYP; /* Column Type */
typedef unsigned long JET_GRBIT; /* Group of Bits */
typedef unsigned long JET_ACM; /* Access Mask */
typedef unsigned long JET_RNT; /* Repair Notification Type */
typedef unsigned long JET_SNP; /* Status Notification Process */
typedef unsigned long JET_SNT; /* Status Notification Type */
typedef unsigned long JET_SNC; /* Status Notification Code */
typedef double JET_DATESERIAL; /* JET_coltypDateTime format */
#if defined(_M_ALPHA) /* 0:32 Flat Model (Intel 80x86) */
typedef JET_ERR (__stdcall *JET_PFNSTATUS)(JET_SESID sesid, JET_SNP snp, JET_SNT snt, void _far *pv);
#elif defined(M_MRX000) /* 0:32 Flat Model (MIPS Rx000) */
typedef JET_ERR (__stdcall *JET_PFNSTATUS)(JET_SESID sesid, JET_SNP snp, JET_SNT snt, void _far *pv);
#else /* 0:32 flat model (Alpha AXP ) */
typedef JET_ERR (__stdcall *JET_PFNSTATUS)(JET_SESID sesid, JET_SNP snp, JET_SNT snt, void _far *pv);
#endif
/* Session information bits */
#define JET_bitCIMCommitted 0x00000001
#define JET_bitCIMDirty 0x00000002
#define JET_bitAggregateTransaction 0x00000008
/* JetGetLastErrorInfo structure */
typedef struct
{
unsigned long cbStruct; /* Size of this structure */
JET_ERR err; /* Extended error code (if any) */
unsigned long ul1; /* First general purpose integer */
unsigned long ul2; /* Second general purpose integer */
unsigned long ul3; /* Third general purpose integer */
} JET_EXTERR;
/* Status Notification Structures */
typedef struct /* Status Notification Progress */
{
unsigned long cbStruct; /* Size of this structure */
unsigned long cunitDone; /* Number of units of work completed */
unsigned long cunitTotal; /* Total number of units of work */
} JET_SNPROG;
/* ErrCount Notification Structures */
typedef struct /* Status Notification Progress */
{
unsigned long cbStruct; /* Size of this structure */
unsigned long cRecUniqueKeyViolation;
unsigned long cRecTypeConversionFail;
unsigned long cRecRecordLocked;
unsigned long cRecTotal; /* Total number of units of work */
} JET_SNERRCNT;
typedef struct /* Status Notification Message */
{
unsigned long cbStruct; /* Size of this structure */
JET_SNC snc; /* Status Notification Code */
unsigned long ul; /* Numeric identifier */
char sz[256]; /* Identifier */
} JET_SNMSG;
typedef struct
{
unsigned long cbStruct;
JET_OBJTYP objtyp;
JET_DATESERIAL dtCreate;
JET_DATESERIAL dtUpdate;
JET_GRBIT grbit;
unsigned long flags;
unsigned long cRecord;
unsigned long cPage;
} JET_OBJECTINFO;
typedef struct
{
unsigned int dbid;
char szDatabaseName[256];
char szNewDatabaseName[256];
} JET_RSTMAP; /* restore map */
/* The following flags appear in the grbit field above */
#define JET_bitTableInfoUpdatable 0x00000001
#define JET_bitTableInfoBookmark 0x00000002
#define JET_bitTableInfoRollback 0x00000004
#define JET_bitTableInfoRestartable 0x00000008
#define JET_bitTableInfoNoInserts 0x00000010
/* The following flags occur in the flags field above */
#define JET_bitSaveUIDnPWD 0x20000000 /* this bit is only */
/* appropriate for rmt links */
#define JET_bitObjectExclusive 0x40000000 /* Open link exclusively */
#define JET_bitObjectSystem 0x80000000
typedef struct
{
unsigned long cbStruct;
JET_TABLEID tableid;
unsigned long cRecord;
JET_COLUMNID columnidcontainername;
JET_COLUMNID columnidobjectname;
JET_COLUMNID columnidobjtyp;
JET_COLUMNID columniddtCreate;
JET_COLUMNID columniddtUpdate;
JET_COLUMNID columnidgrbit;
JET_COLUMNID columnidflags;
JET_COLUMNID columnidcRecord; /* Level 2 info */
JET_COLUMNID columnidcPage; /* Level 2 info */
} JET_OBJECTLIST;
#define cObjectInfoCols 9 /* CONSIDER: Internal */
typedef struct
{
unsigned long cbStruct;
JET_TABLEID tableid;
unsigned long cRecord;
JET_COLUMNID columnidSid;
JET_COLUMNID columnidACM;
JET_COLUMNID columnidgrbit; /* grbit from JetSetAccess */
} JET_OBJECTACMLIST;
#define cObjectAcmCols 3 /* CONSIDER: Internal */
typedef struct
{
unsigned long cbStruct;
JET_TABLEID tableid;
unsigned long cRecord;
JET_COLUMNID columnidPresentationOrder;
JET_COLUMNID columnidcolumnname;
JET_COLUMNID columnidcolumnid;
JET_COLUMNID columnidcoltyp;
JET_COLUMNID columnidCountry;
JET_COLUMNID columnidLangid;
JET_COLUMNID columnidCp;
JET_COLUMNID columnidCollate;
JET_COLUMNID columnidcbMax;
JET_COLUMNID columnidgrbit;
JET_COLUMNID columnidDefault;
JET_COLUMNID columnidBaseTableName;
JET_COLUMNID columnidBaseColumnName;
JET_COLUMNID columnidDefinitionName;
} JET_COLUMNLIST;
#define cColumnInfoCols 14 /* CONSIDER: Internal */
typedef struct
{
unsigned long cbStruct;
JET_COLUMNID columnid;
JET_COLTYP coltyp;
unsigned short wCountry;
unsigned short langid;
unsigned short cp;
unsigned short wCollate; /* Must be 0 */
unsigned long cbMax;
JET_GRBIT grbit;
} JET_COLUMNDEF;
typedef struct
{
unsigned long cbStruct;
JET_COLUMNID columnid;
JET_COLTYP coltyp;
unsigned short wCountry;
unsigned short langid;
unsigned short cp;
unsigned short wFiller; /* Must be 0 */
unsigned long cbMax;
JET_GRBIT grbit;
char szBaseTableName[256]; /* CONSIDER: Too large? */
char szBaseColumnName[256]; /* CONSIDER: Too large? */
} JET_COLUMNBASE;
typedef struct
{
unsigned long cbStruct;
JET_TABLEID tableid;
unsigned long cRecord;
JET_COLUMNID columnidindexname;
JET_COLUMNID columnidgrbitIndex;
JET_COLUMNID columnidcKey;
JET_COLUMNID columnidcEntry;
JET_COLUMNID columnidcPage;
JET_COLUMNID columnidcColumn;
JET_COLUMNID columnidiColumn;
JET_COLUMNID columnidcolumnid;
JET_COLUMNID columnidcoltyp;
JET_COLUMNID columnidCountry;
JET_COLUMNID columnidLangid;
JET_COLUMNID columnidCp;
JET_COLUMNID columnidCollate;
JET_COLUMNID columnidgrbitColumn;
JET_COLUMNID columnidcolumnname;
} JET_INDEXLIST;
#define cIndexInfoCols 15 /* CONSIDER: Internal */
typedef struct
{
unsigned long cbStruct;
JET_TABLEID tableid;
unsigned long cRecord;
JET_COLUMNID columnidReferenceName;
JET_COLUMNID columnidgrbit;
JET_COLUMNID columnidcColumn;
JET_COLUMNID columnidiColumn;
JET_COLUMNID columnidReferencingTableName;
JET_COLUMNID columnidReferencingColumnName;
JET_COLUMNID columnidReferencedTableName;
JET_COLUMNID columnidReferencedColumnName;
} JET_RELATIONSHIPLIST;
/* for backward compatibility */
typedef JET_RELATIONSHIPLIST JET_REFERENCELIST;
#define cReferenceInfoCols 8 /* CONSIDER: Internal */
typedef struct
{
unsigned long cbStruct;
unsigned long ibLongValue;
unsigned long itagSequence;
JET_COLUMNID columnidNextTagged;
} JET_RETINFO;
typedef struct
{
unsigned long cbStruct;
unsigned long ibLongValue;
unsigned long itagSequence;
} JET_SETINFO;
typedef struct
{
unsigned long cbStruct;
unsigned long centriesLT;
unsigned long centriesInRange;
unsigned long centriesTotal;
} JET_RECPOS;
typedef struct
{
unsigned long cDiscont;
unsigned long cUnfixedMessyPage;
unsigned long centriesLT;
unsigned long centriesTotal;
} PERS_OLCSTAT;
typedef struct
{
unsigned long cDiscont;
unsigned long cUnfixedMessyPage;
unsigned long centriesLT;
unsigned long centriesTotal;
unsigned long cpgCompactFreed;
} JET_OLCSTAT;
typedef struct
{
unsigned long ctableid;
JET_TABLEID rgtableid[1];
} JET_MGBLIST;
/*** Property Manager Structure ***/
typedef struct
{
unsigned long cbStruct;
JET_TABLEID tableid;
JET_COLUMNID columnidColumnName;
JET_COLUMNID columnidPropertyName;
JET_COLUMNID columnidGrbit;
JET_COLUMNID columnidPropertyValue;
JET_COLUMNID columnidColtyp;
} JET_PROPERTYLIST;
/************************************************************************/
/************************* JET CONSTANTS ************************/
/************************************************************************/
#define JET_tableidNil ((JET_TABLEID) 0xFFFFFFFF)
#define JET_sesidNil ((JET_SESID) 0xFFFFFFFF)
/* Max size of a bookmark */
#define JET_cbBookmarkMost 256
/* Max length of a object/column/index/property name */
#define JET_cbNameMost 64
/* Max length of a "name.name.name..." construct */
#define JET_cbFullNameMost 255
/* Max size of non-long-value column data */
#define JET_cbColumnMost 255
/* Max size of a sort/index key */
#define JET_cbKeyMost 255
/* Max number of components in a sort/index key */
#define JET_ccolKeyMost 10
/* Max number of columns in a table/query */
#define JET_ccolTableMost 255
/* Max Length of a property in the property manager */
#define JET_cbPropertyMost 2048
/* Largest initial substring of a long value used in an expression */
#define JET_cbExprLVMost 0x8000L /*** 32 K ***/
/* Max size of returned (from SQLDriverConnect) conn string */
#define JET_cbConnectMost 255
/* Max number of levels in an MGB */
#define JET_wGroupLevelMax 12
/* Size restrictions for Pins */
#define JET_cchPINMax 20
#define JET_cchPINMin 4
/* System parameter codes for JetSetSystemParameter */
#define JET_paramSysDbPath 0 /* Path to the system database */
#define JET_paramTempPath 1 /* Path to the temporary file directory */
#define JET_paramPfnStatus 2 /* Status callback function */
#define JET_paramPfnError 3 /* Error callback function */
#define JET_paramHwndODBC 4 /* Window handle for ODBC use */
#define JET_paramIniPath 5 /* Path to the ini file */
#define JET_paramPageTimeout 6 /* Red ISAM page timeout value */
#define JET_paramODBCQueryTimeout 7 /* ODBC async query timeout value */
#define JET_paramMaxBuffers 8 /* Bytes to use for page buffers */
#define JET_paramMaxSessions 9 /* Maximum number of sessions */
#define JET_paramMaxOpenTables 10 /* Maximum number of open tables */
#define JET_paramMaxVerPages 11 /* Maximum number of modified pages */
#define JET_paramMaxCursors 12 /* Maximum number of open cursors */
#define JET_paramLogFilePath 13 /* Path to the log file directory */
#define JET_paramMaxOpenTableIndexes 14 /* Maximum open table indexes */
#define JET_paramMaxTemporaryTables 15 /* Maximum concurrent JetCreateIndex */
#define JET_paramLogBuffers 16 /* Maximum log buffers */
#define JET_paramLogFileSectors 17 /* Maximum log sectors per log file */
#define JET_paramLogFlushThreshold 18 /* Log buffer flush threshold */
#define JET_paramBfThrshldLowPrcnt 19 /* Low threshold ( % ) for buffers */
#define JET_paramBfThrshldHighPrcnt 20 /* High threshold ( % ) for buffers */
#define JET_paramWaitLogFlush 21 /* msec for waiting log flush */
#define JET_paramLogFlushPeriod 22 /* msec for waiting log flush */
#define JET_paramLogCheckpointPeriod 23 /* msec for waiting log flush */
#define JET_paramLogWaitingUserMax 24 /* Maximum # user waiting log flush */
#define JET_paramODBCLoginTimeout 25 /* ODBC connection attempt timeout value */
#define JET_paramExprObject 26 /* Expression Evaluation callback */
#define JET_paramGetTypeComp 27 /* Expression Evaluation callback */
#define JET_paramHostVersion 28 /* Host Version callback */
#define JET_paramSQLTraceMode 29 /* Enable/disable SQL tracing */
#define JET_paramRecovery 30 /* Switch for log on/off */
#define JET_paramRestorePath 31 /* Path to restoring directory */
#define JET_paramTransactionLevel 32 /* Transaction level of session */
#define JET_paramSessionInfo 33 /* Session info */
#define JET_paramPageFragment 34 /* Largest page extent considered fragment */
#define JET_paramJetInternal 35 /* Whether internal to JET; if set, allows ISAM to do things which are prevented in general */
#define JET_paramMaxOpenDatabases 36 /* Maximum number of open databases */
#define JET_paramOnLineCompact 37 /* Options for compact pages on-line */
#define JET_paramFullQJet 38 /* Allow full QJet functionality */
#define JET_paramRmtXactIsolation 39 /* Do not share connections with other sessions */
#define JET_paramBufLRUKCorrInterval 40
#define JET_paramBufBatchIOMax 41
#define JET_paramPageReadAheadMax 42
#define JET_paramAsynchIOMax 43
#define JET_paramAssertAction 44 /* debug only determines action on assert */
#define JET_paramEventSource 45 /* NT event log */
#define JET_paramEventId 46 /* NT event id */
#define JET_paramEventCategory 47 /* NT event category */
/* Flags for JetIdle */
#define JET_bitIdleRemoveReadLocks 0x00000001
#define JET_bitIdleFlushBuffers 0x00000002
#define JET_bitIdleCompact 0x00000004
/* Flags for JetEndSession */
#define JET_bitForceSessionClosed 0x00000001
/* Flags for JetOpenDatabase */
#define JET_bitDbReadOnly 0x00000001
#define JET_bitDbExclusive 0x00000002 /* multiple opens allowed */
#define JET_bitDbRemoteSilent 0x00000004
#define JET_bitDbSingleExclusive 0x00000008 /* opened exactly once */
/* Flags for JetCloseDatabase */
#define JET_bitDbForceClose 0x00000001
/* Flags for JetCreateDatabase */
#define JET_bitDbEncrypt 0x00000001
#define JET_bitDbVersion10 0x00000002
#define JET_bitDbVersion1x 0x00000004
#define JET_bitDbRecoveryOff 0x00000008 /* disable logging/recovery */
#define JET_bitDbNoLogging 0x00000010 /* no logging */
#define JET_bitDbCompleteConnstr 0x00000020
/* Flags for JetBackup */
#define JET_bitBackupIncremental 0x00000001
#define JET_bitKeepOldLogs 0x00000002
#define JET_bitOverwriteExisting 0x00000004
/* Database types */
#define JET_dbidNil ((JET_DBID) 0xFFFFFFFF)
#define JET_dbidNoValid ((JET_DBID) 0xFFFFFFFE) /* used as a flag to indicate that there is no valid dbid */
/* Flags for JetCreateLink */
/* Can use JET_bitObjectExclusive to cause linked to database to be opened */
/* exclusively. */
/* Flags for JetAddColumn, JetGetColumnInfo, JetOpenTempTable */
#define JET_bitColumnFixed 0x00000001
#define JET_bitColumnTagged 0x00000002
#define JET_bitColumnNotNULL 0x00000004
#define JET_bitColumnVersion 0x00000008
#define JET_bitColumnAutoincrement 0x00000010
#define JET_bitColumnUpdatable 0x00000020 /* JetGetColumnInfo only */
#define JET_bitColumnTTKey 0x00000040 /* JetOpenTempTable only */
#define JET_bitColumnTTDescending 0x00000080 /* JetOpenTempTable only */
#define JET_bitColumnNotLast 0x00000100 /* Installable ISAM option */
#define JET_bitColumnRmtGraphic 0x00000200 /* JetGetColumnInfo */
#define JET_bitColumnMultiValued 0x00000400
/* Flags for JetMakeKey */
#define JET_bitNewKey 0x00000001
#define JET_bitStrLimit 0x00000002
#define JET_bitSubStrLimit 0x00000004
#define JET_bitNormalizedKey 0x00000008
#define JET_bitKeyDataZeroLength 0x00000010
#ifdef DBCS /* johnta: LIKE "ABC" not converted to ="ABC" for Japanese */
#define JET_bitLikeExtra1 0x00000020
#endif /* DBCS */
/* Flags for ErrDispSetIndexRange */
#define JET_bitRangeInclusive 0x00000001 /* CONSIDER: Internal */
#define JET_bitRangeUpperLimit 0x00000002 /* CONSIDER: Internal */
/* Constants for JetMove */
#define JET_MoveFirst (0x80000000)
#define JET_MovePrevious (-1)
#define JET_MoveNext (+1)
#define JET_MoveLast (0x7fffffff)
/* Flags for JetMove */
#define JET_bitMoveKeyNE 0x00000001
#define JET_bitMoveCheckTS 0x00000002
#define JET_bitMoveInPage 0x00000004
/* Flags for JetSeek */
#define JET_bitSeekEQ 0x00000001
#define JET_bitSeekLT 0x00000002
#define JET_bitSeekLE 0x00000004
#define JET_bitSeekGE 0x00000008
#define JET_bitSeekGT 0x00000010
#define JET_bitSetIndexRange 0x00000020
/* Flags for JetFastFind */
#define JET_bitFFindBackwards 0x00000001
#define JET_bitFFindFromCursor 0x00000004
/* Flags for JetCreateIndex */
#define JET_bitIndexUnique 0x00000001
#define JET_bitIndexPrimary 0x00000002
#define JET_bitIndexDisallowNull 0x00000004
#define JET_bitIndexIgnoreNull 0x00000008
#define JET_bitIndexClustered 0x00000010
#define JET_bitIndexIgnoreAnyNull 0x00000020
#define JET_bitIndexReference 0x80000000 /* IndexInfo only */
/* Flags for index key definition */
#define JET_bitKeyAscending 0x00000000
#define JET_bitKeyDescending 0x00000001
/* Flags for JetCreateRelationship */
#define JET_bitRelationUnique 0x00000001
#define JET_bitRelationDontEnforce 0x00000002
#define JET_bitRelationInherited 0x00000004
#define JET_bitRelationTestLegal 0x00000008 /* don't create relationship */
#define JET_bitRelationshipMatchMask 0x000000F0
#define JET_bitRelationMatchDefault 0x00000000
#define JET_bitRelationMatchFull 0x00000010
#define JET_bitRelationUpdateActionMask 0x00000F00
#define JET_bitRelationUpdateDisallow 0x00000000
#define JET_bitRelationUpdateCascade 0x00000100
#define JET_bitRelationUpdateSetNull 0x00000200
#define JET_bitRelationUpdateSetDefault 0x00000300
#define JET_bitRelationDeleteActionMask 0x0000F000
#define JET_bitRelationDeleteDisallow 0x00000000
#define JET_bitRelationDeleteCascade 0x00001000
#define JET_bitRelationDeleteSetNull 0x00002000
#define JET_bitRelationDeleteSetDefault 0x00003000
#define JET_bitRelationUserMask 0xFF000000 /* non-enforced values */
#define JET_bitRelationJoinMask 0x03000000
#define JET_bitRelationInner 0x00000000
#define JET_bitRelationLeft 0x01000000
#define JET_bitRelationRight 0x02000000
/* Flags for JetCreateReference/JetCreateRelationship */
/* NOTE: use the bitRelationship flags instead! */
#define JET_ReferenceUnique JET_bitRelationUnique
#define JET_ReferenceDontEnforce JET_bitRelationDontEnforce
#define JET_ReferenceMatchTypeMask JET_bitRelationMatchMask
#define JET_ReferenceMatchDefault JET_bitRelationMatchDefault
#define JET_ReferenceMatchFull JET_bitRelationMatchFull
#define JET_ReferenceUpdateActionMask JET_bitRelationUpdateActionMask
#define JET_ReferenceUpdateDisallow JET_bitRelationUpdateDisallow
#define JET_ReferenceUpdateCascade JET_bitRelationUpdateCascade
#define JET_ReferenceUpdateSetNull JET_bitRelationUpdateSetNull
#define JET_ReferenceUpdateSetDefault JET_bitRelationUpdateSetDefault
#define JET_ReferenceDeleteActionMask JET_bitRelationDeleteActionMask
#define JET_ReferenceDeleteDisallow JET_bitRelationDeleteDisallow
#define JET_ReferenceDeleteCascade JET_bitRelationDeleteCascade
#define JET_ReferenceDeleteSetNull JET_bitRelationDeleteSetNull
#define JET_ReferenceDeleteSetDefault JET_bitRelationDeleteSetDefault
/* Flags for JetOpenTable */
#define JET_bitTableDenyWrite 0x00000001
#define JET_bitTableDenyRead 0x00000002
#define JET_bitTableReadOnly 0x00000004
#define JET_bitTableAppendOnly 0x00000008
#define JET_bitTableUpdatable 0x00000010
#define JET_bitTableScrollable 0x00000020
#define JET_bitTableFixedSet 0x00000040 /* Fixed working set */
#define JET_bitTableInconsistent 0x00000080
#define JET_bitTableBulk 0x00000100
#define JET_bitTableUsePrimaryIndex 0x00000200 /* Use with FixedSet */
#define JET_bitTableSampleData 0x00000400
#define JET_bitTableQuickBrowse 0x00000800 /* Bias optimizer toward index usage */
#define JET_bitTableDDL 0x00001000 /* similar to JET_bitTableBulk, for DDL */
#define JET_bitTablePassThrough 0x00002000 /* Remote DBs Only */
#define JET_bitTableRowReturning 0x00004000
/* Flags for JetSetQoSql/JetRetrieveQoSql */
#define JET_bitSqlPassThrough 0x00000001 /* Pass through Query returning records */
#define JET_bitSqlSPTBulkOp 0x00000002 /* SPT query returning no table */
/* Flags for JetOpenVtQbe */
#define JET_bitQBEAddBrackets 0x00000001
#define JET_bitQBERemoveEquals 0x00000002
/* Flags for JetOpenTempTable and ErrIsamOpenTempTable */
#define JET_bitTTIndexed 0x00000001 /* Allow seek */
#define JET_bitTTUnique 0x00000002 /* Remove duplicates */
#define JET_bitTTUpdatable 0x00000004 /* Allow updates */
#define JET_bitTTScrollable 0x00000008 /* Allow backwards scrolling */
/* Flags for JetSetColumn */
#define JET_bitSetAppendLV 0x00000001
#define JET_bitSetValidate 0x00000002
#define JET_bitSetOverwriteLV 0x00000004
#define JET_bitSetSizeLV 0x00000008
#define JET_bitSetValidateColumn 0x00000010
#define JET_bitSetZeroLength 0x00000020
/* Set column parameter structure for JetSetColumns */
typedef struct {
JET_COLUMNID columnid;
const void _far *pvData;
unsigned long cbData;
JET_GRBIT grbit;
unsigned long ibLongValue;
unsigned long itagSequence;
JET_ERR err;
} JET_SETCOLUMN;
/* Options for JetPrepareUpdate */
#define JET_prepInsert 0
#define JET_prepInsertBeforeCurrent 1
#define JET_prepReplace 2
#define JET_prepCancel 3
#define JET_prepReplaceNoLock 4
#define JET_prepInsertCopy 5
/* Flags for JetRetrieveColumn */
#define JET_bitRetrieveCopy 0x00000001
#define JET_bitRetrieveFromIndex 0x00000002
#define JET_bitRetrieveCase 0x00000004
#define JET_bitRetrieveTag 0x00000008
#define JET_bitRetrieveRecord 0x80000000
#define JET_bitRetrieveFDB 0x40000000
#define JET_bitRetrieveBookmarks 0x20000000
/* Retrieve column parameter structure for JetRetrieveColumns */
typedef struct {
JET_COLUMNID columnid;
void _far *pvData;
unsigned long cbData;
unsigned long cbActual;
JET_GRBIT grbit;
unsigned long ibLongValue;
unsigned long itagSequence;
JET_COLUMNID columnidNextTagged;
JET_ERR err;
} JET_RETRIEVECOLUMN;
/* Flags for JetFillFatCursor */
#define JET_bitFCFillRange 0x00000001
#define JET_bitFCRefreshRange 0x00000002
#define JET_bitFCFillMemos 0x00000004
/* Flags for JetCommitTransaction */
#define JET_bitCommitFlush 0x00000001
/* Flags for JetRollback */
#define JET_bitRollbackAll 0x00000001
/* Flags for JetSetAccess and JetGetAccess */
#define JET_bitACEInheritable 0x00000001
/* Flags for JetCreateSystemDatabase */
#define JET_bitSysDbOverwrite 0x00000001
/* Flags for Jet Property Management */
#define JET_bitPropDDL 0x00000001 /* also used for setting */
#define JET_bitPropInherited 0x00000002 /* not used for setting */
/* JPM Flags that are only used for setting properties */
#define JET_bitPropReplaceOnly 0x00000010
#define JET_bitPropInsertOnly 0x00000020
#define JET_bitPropDeleteOnly 0x00000040
/* InfoLevels for Jet Property Management */
#define JET_PropertyValue 0
#define JET_PropertyCount 1
#define JET_PropertySingleCollection 2
#define JET_PropertyAllCollections 3
/* Collate values for JetGetColumnInfo and JetGetIndexInfo */
#define JET_sortBinary 0x0000
#define JET_sortEFGPI 0x0100
#define JET_sortSNIFD 0x0101
#define JET_sortSpanish 0x0102
#define JET_sortDutch 0x0103
#define JET_sortSweFin 0x0104
#define JET_sortNorDan 0x0105
#define JET_sortIcelandic 0x0106
#define JET_sortCyrillic 0x0107
#define JET_sortCzech 0x0108
#define JET_sortHungarian 0x0109
#define JET_sortPolish 0x010A
#define JET_sortArabic 0x010B
#define JET_sortHebrew 0x010C
#define JET_sortMax 0x010C /* Max for nonDBCS sort orders */
#ifdef DBCS /* johnta: Add the new Japanese sorting order */
#define JET_sortJapanese 0x010D
#endif /* DBCS */
#define JET_sortUnknown 0xFFFF
/* Paradox ISAM specific collate values */
#define JET_sortPdxIntl 0x1000
#define JET_sortPdxSwedFin 0x1001
#define JET_sortPdxNorDan 0x1002
/* Info parameter for JetGetDatabaseInfo */
#define JET_DbInfoFilename 0
#define JET_DbInfoConnect 1
#define JET_DbInfoCountry 2
#define JET_DbInfoLangid 3
#define JET_DbInfoCp 4
#define JET_DbInfoCollate 5
#define JET_DbInfoOptions 6
#define JET_DbInfoTransactions 7
#define JET_DbInfoVersion 8
#define JET_DbInfoIsam 9
/* Database versions returned by JetGetDatabaseInfo */
#define JET_DbVersion10 0x00010000
#define JET_DbVersion11 0x00010001
#define JET_DbVersion20 0x00020000
/* Isam specific info returned by JetGetDatabaseInfo */
#define JET_IsamInvalid 0
#define JET_IsamBuiltinRed 1
#define JET_IsamBuiltinBlue 2
#define JET_IsamInstRed 21
#define JET_IsamInstBlue 22
#define JET_IsamInstFox 23
#define JET_IsamInstParadox 24
#define JET_IsamInstDbase 25
#define JET_IsamInstBtrieve 26
#define JET_IsamBuilinMost JET_BuiltinBlue
#define JET_IsamInstMin JET_IsamInstRed
#define JET_IsamInstMost JET_IsamInstBtrieve
/* Link specific info for link identification */
#define JET_bitLinkInvalid 0x00000000
#define JET_bitLinkRemote 0x00100000
#define JET_bitLinkBuiltinRed 0x00200000
#define JET_bitLinkBuiltinBlue 0x00300000
#define JET_bitLinkInstRed 0x00400000
#define JET_bitLinkInstBlue 0x00500000
#define JET_bitLinkInstFox 0x00600000
#define JET_bitLinkInstParadox 0x00700000
#define JET_bitLinkInstDbase 0x00800000
#define JET_bitLinkInstBtrieve 0x00900000
#define JET_bitFourByteBookmark 0x00000001
#define JET_bitContiguousBookmarks 0x00000002
/* Column data types */
/* the column types are represented with 4 bits */
/* make sure the choices below fit! */
/* NOTE: all comb of the 4 bits are now used! */
/* CONSIDER: to allow more datatypes, either */
/* CONSIDER: JET_coltypDatabase and JET_coltypTableid must */
/* CONSIDER: change or the 4 bit dependancy must be removed */
#define JET_coltypNil 0
#define JET_coltypBit 1 /* True or False, Never NULL */
#define JET_coltypUnsignedByte 2 /* 1-byte integer, unsigned */
#define JET_coltypShort 3 /* 2-byte integer, signed */
#define JET_coltypLong 4 /* 4-byte integer, signed */
#define JET_coltypCurrency 5 /* 8 byte integer, signed */
#define JET_coltypIEEESingle 6 /* 4-byte IEEE single precision */
#define JET_coltypIEEEDouble 7 /* 8-byte IEEE double precision */
#define JET_coltypDateTime 8 /* Integral date, fractional time */
#define JET_coltypBinary 9 /* Binary data, < 255 bytes */
#define JET_coltypText 10 /* ANSI text, case insensitive, < 255 bytes */
#define JET_coltypLongBinary 11 /* Binary data, long value */
#define JET_coltypLongText 12 /* ANSI text, long value */
/* The following are additional types used for query parameters */
/* NOTE: Code depends on these being contiguous with the normal coltyps */
/* CONSIDER: Remove the above dependency on contiguous coltyps in QJET */
#define JET_coltypDatabase 13 /* Database name parameter */
#define JET_coltypTableid 14 /* Tableid parameter */
#define JET_coltypOLE 15 /* OLE blob */
#define JET_coltypMax 16 /* the number of column types */
/* used for validity tests and */
/* array declarations. */
/* Info levels for JetGetObjectInfo */
#define JET_ObjInfo 0U
#define JET_ObjInfoListNoStats 1U
#define JET_ObjInfoList 2U
#define JET_ObjInfoSysTabCursor 3U
#define JET_ObjInfoListACM 4U /* Blocked by JetGetObjectInfo */
#define JET_ObjInfoNoStats 5U
#define JET_ObjInfoSysTabReadOnly 6U
#define JET_ObjInfoRulesLoaded 7U
#define JET_ObjInfoMax 8U
/* Info levels for JetGetTableInfo */
#define JET_TblInfo 0U
#define JET_TblInfoName 1U
#define JET_TblInfoDbid 2U
#define JET_TblInfoMostMany 3U
#define JET_TblInfoRvt 4U
#define JET_TblInfoOLC 5U
#define JET_TblInfoResetOLC 6U
#define JET_TblInfoSpaceUsage 7U
#define JET_TblInfoDumpTable 8U
/* Info levels for JetGetIndexInfo and JetGetTableIndexInfo */
#define JET_IdxInfo 0U
#define JET_IdxInfoList 1U
#define JET_IdxInfoSysTabCursor 2U
#define JET_IdxInfoOLC 3U
#define JET_IdxInfoResetOLC 4U
/* Info levels for JetGetReferenceInfo and JetGetTableReferenceInfo */
#define JET_ReferenceInfo 0U
#define JET_ReferenceInfoReferencing 1U
#define JET_ReferenceInfoReferenced 2U
#define JET_ReferenceInfoAll 3U
#define JET_ReferenceInfoCursor 4U
/* Info levels for JetGetColumnInfo and JetGetTableColumnInfo */
#define JET_ColInfo 0U
#define JET_ColInfoList 1U
/* CONSIDER: Info level 2 is valid */
#define JET_ColInfoSysTabCursor 3U
#define JET_ColInfoBase 4U
/* Attribute types for query definitions */
#define JET_qoaBeginDef 0
#define JET_qoaOperation 1
#define JET_qoaParameter 2
#define JET_qoaOptions 3
#define JET_qoaDatabase 4
#define JET_qoaInputTable 5
#define JET_qoaOutput 6
#define JET_qoaJoin 7
#define JET_qoaRestriction 8
#define JET_qoaGroup 9
#define JET_qoaGroupRstr 10
#define JET_qoaOrdering 11
#define JET_qoaEndDef 255
#define JET_qoaValidLeast JET_qoaOperation
#define JET_qoaValidMost JET_qoaOrdering
/* Query object options */
#define JET_bitFqoOutputAllCols 0x0001
#define JET_bitFqoRemoveDups 0x0002
#define JET_bitFqoOwnerAccess 0x0004
#define JET_bitFqoDistinctRow 0x0008
#define JET_bitFqoTop 0x0010
#define JET_bitFqoPercent 0x0020
#define JET_bitFqoCorresponding 0x0040 /* JET_qopSetOperation */
/* Query object join type */
#define JET_fjoinInner 1
#define JET_fjoinLeftOuter 2
#define JET_fjoinRightOuter 3
/* Query object operations */
#define JET_qopSelect 1
#define JET_qopSelectInto 2
#define JET_qopInsertSelection 3
#define JET_qopUpdate 4
#define JET_qopDelete 5
#define JET_qopTransform 6
#define JET_qopDDL 7
#define JET_qopSqlPassThrough 8
#define JET_qopSetOperation 9
#define JET_qopSPTBulk 10
#define JET_bitqopSelect 0x0000
#define JET_bitqopTransform 0x0010
#define JET_bitqopDelete 0x0020
#define JET_bitqopUpdate 0x0030
#define JET_bitqopInsertSelection 0x0040
#define JET_bitqopSelectInto 0x0050
#define JET_bitqopDDL 0x0060
#define JET_bitqopSqlPassThrough 0x0070
#define JET_bitqopSetOperation 0x0080
#define JET_bitqopSPTBulk 0x0090
/* Engine Object Types */
#define JET_objtypNil 0
#define JET_objtypTable 1
#define JET_objtypDb 2
#define JET_objtypContainer 3
#define JET_objtypSQLLink 4
#define JET_objtypQuery 5
#define JET_objtypLink 6
#define JET_objtypTemplate 7
#define JET_objtypRelationship 8
/* All types less than JET_objtypClientMin are reserved by JET */
#define JET_objtypClientMin 0x8000
/* Security Constant Values */
#define JET_cchUserNameMax 20
#define JET_cchPasswordMax 14
/* Security Access Masks */
#define JET_acmNoAccess 0x00000000L
#define JET_acmFullAccess 0x000FFFFFL
#define JET_acmSpecificMask 0x0000FFFFL
#define JET_acmSpecific_1 0x00000001L
#define JET_acmSpecific_2 0x00000002L
#define JET_acmSpecific_3 0x00000004L
#define JET_acmSpecific_4 0x00000008L
#define JET_acmSpecific_5 0x00000010L
#define JET_acmSpecific_6 0x00000020L
#define JET_acmSpecific_7 0x00000040L
#define JET_acmSpecific_8 0x00000080L
#define JET_acmSpecific_9 0x00000100L
#define JET_acmSpecific_10 0x00000200L
#define JET_acmSpecific_11 0x00000400L
#define JET_acmSpecific_12 0x00000800L
#define JET_acmSpecific_13 0x00001000L
#define JET_acmSpecific_14 0x00002000L
#define JET_acmSpecific_15 0x00004000L
#define JET_acmSpecific_16 0x00008000L
#define JET_acmStandardMask 0x00FF0000L
#define JET_acmDelete 0x00010000L
#define JET_acmReadControl 0x00020000L
#define JET_acmWriteDac 0x00040000L
#define JET_acmWriteOwner 0x00080000L
#define JET_acmTblCreate (JET_acmSpecific_1)
#define JET_acmTblAccessRcols (JET_acmSpecific_2)
#define JET_acmTblReadDef (JET_acmSpecific_3)
#define JET_acmTblWriteDef (JET_acmSpecific_4)
#define JET_acmTblRetrieveData (JET_acmSpecific_5)
#define JET_acmTblInsertData (JET_acmSpecific_6)
#define JET_acmTblReplaceData (JET_acmSpecific_7)
#define JET_acmTblDeleteData (JET_acmSpecific_8)
#define JET_acmDbCreate (JET_acmSpecific_1)
#define JET_acmDbOpen (JET_acmSpecific_2)
/* Compact Options */
#define JET_bitCompactEncrypt 0x00000001 /* Dest is encrypted */
#define JET_bitCompactDecrypt 0x00000002 /* Dest is not encrypted */
#define JET_bitCompactDontCopyLocale 0x00000004 /* Don't copy locale from source to dest */
#define JET_bitCompactVersion10 0x00000008 /* Destination is version 1.0 format */
#define JET_bitCompactVersion1x 0x00000010 /* Destination is version 1.x format */
/* On-line Compact Options */
#define JET_bitCompactOn 0x00000001 /* enable on-line compaction */
/* Repair Notification Types */
#define JET_rntSelfContained 0 /* CONSIDER: These are SNCs */
#define JET_rntDeletedIndex 1
#define JET_rntDeletedRec 2
#define JET_rntDeletedLv 3
#define JET_rntTruncated 4
/* Status Notification Processes */
#define JET_snpIndex 0
#define JET_snpQuery 1
#define JET_snpRepair 2
#define JET_snpImex 3
#define JET_snpCompact 4
#define JET_snpFastFind 5
#define JET_snpODBCNotReady 6
#define JET_snpQuerySort 7
#define JET_snpRestore 8
/* Status Notification Types */
#define JET_sntProgress 0 /* callback for progress */
#define JET_sntMessage 1
#define JET_sntBulkRecords 2 /* callback for # rec for bulk op */
#define JET_sntFail 3 /* callback for failure during progress */
#define JET_sntErrCount 4 /* callback for err count */
#define JET_sntBegin 5 /* callback for beginning of operation */
#define JET_sntComplete 6 /* callback for completion of operation */
#define JET_sntCantRollback 7 /* callback for no rollback */
#define JET_sntRestoreMap 8 /* callback for restore map */
/* Message codes for JET_snpCompact */
#define JET_sncCopyObject 0 /* Starting to copy object */
#define JET_sncCopyFailed 1 /* Copy of this object failed */
#define JET_sncYield 2 /* Client can yield/check for user interrupt */
#define JET_sncTransactionFull 3 /* Client can yield/check for user interrupt */
#define JET_sncAboutToWrap 4 /* Find find is about to wrap */
/* Message codes for JET_snpODBCNotReady */
#define JET_sncODBCNotReady 0 /* Waiting for results from ODBC */
/* Constants for the [ODBC] section of JET.INI */
#define JET_SQLTraceCanonical 0x0001 /* Output ODBC Generic SQL */
/* Constants for the [Debug] section of JET.INI */
/* APITrace */
#define JET_APITraceEnter 0x0001
#define JET_APITraceExit 0x0002
#define JET_APITraceExitError 0x0004
#define JET_APIBreakOnError 0x0008
#define JET_APITraceCount 0x0010
#define JET_APITraceNoIdle 0x0020
#define JET_APITraceParameters 0x0040
/* IdleTrace */
#define JET_IdleTraceCursor 0x0001
#define JET_IdleTraceBuffer 0x0002
#define JET_IdleTraceFlush 0x0004
/* AssertAction */
#define JET_AssertExit 0x0000 /* Exit the application */
#define JET_AssertBreak 0x0001 /* Break to debugger */
#define JET_AssertMsgBox 0x0002 /* Display message box */
#define JET_AssertStop 0x0004 /* Alert and stop */
/* IOTrace */
#define JET_IOTraceAlloc 0x0001 /* DB Page Allocation */
#define JET_IOTraceFree 0x0002 /* DB Page Free */
#define JET_IOTraceRead 0x0004 /* DB Page Read */
#define JET_IOTraceWrite 0x0008 /* DB Page Write */
#define JET_IOTraceError 0x0010 /* DB Page I/O Error */
/* MemTrace */
#define JET_MemTraceAlloc 0x0001 /* Memory allocation */
#define JET_MemTraceRealloc 0x0002 /* Memory reallocation */
#define JET_MemTraceFree 0x0004 /* Memory free */
/* RmtTrace */
#define JET_RmtTraceError 0x0001 /* Remote server error message */
#define JET_RmtTraceSql 0x0002 /* Remote SQL Prepares & Exec's */
#define JET_RmtTraceAPI 0x0004 /* Remote ODBC API calls */
#define JET_RmtTraceODBC 0x0008
#define JET_RmtSyncODBC 0x0010 /* Turn on ODBC Sync mode */
/**********************************************************************/
/*********************** ERROR CODES **************************/
/**********************************************************************/
/* SUCCESS */
#define JET_errSuccess 0 /* Successful Operation */
/* ERRORS */
#define JET_wrnNyi -1 /* Function Not Yet Implemented */
/* SYSTEM errors
/**/
#define JET_errRfsFailure -100 /* JET_errRfsFailure */
#define JET_errRfsNotArmed -101 /* JET_errRfsFailure */
#define JET_errFileClose -102 /* Could not close DOS file */
#define JET_errNoMoreThreads -103 /* Could not start thread */
#define JET_errNoComputerName -104 /* fail to get computername */
#define JET_errTooManyIO -105 /* System busy due to too many IOs */
/* BUFFER MANAGER errors
/**/
#define wrnBFNotSynchronous 200 /* Buffer page evicted */
#define wrnBFPageNotFound 201 /* Page not found */
#define errBFInUse -202 /* Cannot abandon buffer */
/* DIRECTORY MANAGER errors
/**/
#define errPMOutOfPageSpace -300 /* Out of page space */
#define errPMItagTooBig -301 /* Itag too big */
#define errPMRecDeleted -302 /* Record deleted */
#define errPMTagsUsedUp -303 /* Tags used up */
#define wrnBMConflict 304 /* conflict in BM Clean up */
#define errDIRNoShortCircuit -305 /* No Short Circuit Avail */
#define errDIRCannotSplit -306 /* Cannot horizontally split FDP */
#define errDIRTop -307 /* Cannot go up */
#define errDIRFDP 308 /* On an FDP Node */
#define errDIRNotSynchronous -309 /* May have left critical section */
#define wrnDIREmptyPage 310 /* Moved through empty page */
#define errSPConflict -311 /* Device extent being extended */
#define wrnNDFoundLess 312 /* Found Less */
#define wrnNDFoundGreater 313 /* Found Greater */
#define errNDOutSonRange -314 /* Son out of range */
#define errNDOutItemRange -315 /* Item out of range */
#define errNDGreaterThanAllItems -316 /* Greater than all items */
#define errNDLastItemNode -317 /* Last node of item list */
#define errNDFirstItemNode -318 /* First node of item list */
#define wrnNDDuplicateItem 319 /* Duplicated Item */
#define errNDNoItem -320 /* Item not there */
#define JET_wrnRemainingVersions 321 /* Some versions couldn't be cleaned */
#define JET_wrnPreviousVersion 322 /* Version already existed */
#define JET_errPageBoundary -323 /* Reached Page Boundary */
#define JET_errKeyBoundary -324 /* Reached Key Boundary */
#define errDIRInPageFather -325 /* sridFather in page to free
/* RECORD MANAGER errors
/**/
#define wrnFLDKeyTooBig 400 /* Key too big (truncated it) */
#define errFLDTooManySegments -401 /* Too many key segments */
#define wrnFLDNullKey 402 /* Key is entirely NULL */
#define wrnFLDOutOfKeys 403 /* No more keys to extract */
#define wrnFLDNullSeg 404 /* Null segment in key */
#define wrnRECLongField 405 /* Separated long field */
#define JET_wrnRecordFoundGreater JET_wrnSeekNotEqual
#define JET_wrnRecordFoundLess JET_wrnSeekNotEqual
#define JET_errColumnIllegalNull JET_errNullInvalid
/* LOGGING/RECOVERY errors
/**/
#define JET_errRestoreFailed -500 /* Restore failed */
#define JET_errLogFileCorrupt -501 /* Log file is corrupt */
#define errLGNoMoreRecords -502 /* Last log record read */
#define JET_errNoBackupDirectory -503 /* No backup directory given */
#define JET_errBackupDirectoryNotEmpty -504 /* The backup directory is not emtpy */
#define JET_errBackupInProgress -505 /* Backup is active already */
#define JET_errFailRestoreDatabase -506 /* Fail to restore (copy) database */
#define JET_errNoDatabasesForRestore -507 /* No databases for restor found */
#define JET_errMissingLogFile -508 /* jet.log for restore is missing */
#define JET_errMissingPreviousLogFile -509 /* Missing the log file for check point */
#define JET_errLogWriteFail -510 /* Fail when writing to log file */
#define JET_errLogNotContigous -511 /* Fail to incremental backup for non-contiguous generation number */
#define JET_errFailToMakeTempDirectory -512 /* Fail to make a temp directory */
#define JET_errFailToCleanTempDirectory -513 /* Fail to clean up temp directory */
#define JET_errBadLogVersion -514 /* Version of log file is not compatible with Jet version */
#define JET_errBadNextLogVersion -515 /* Version of next log file is not compatible with current one */
#define JET_errLoggingDisabled -516 /* Log is not active */
#define JET_errLogBufferTooSmall -517 /* Log buffer is too small for recovery */
#define errLGNotSynchronous -518 /* retry to LGLogRec */
#define JET_errFeatureNotAvailable -1001 /* API not supported */
#define JET_errInvalidName -1002 /* Invalid name */
#define JET_errInvalidParameter -1003 /* Invalid API parameter */
#define JET_wrnColumnNull 1004 /* Column is NULL-valued */
#define JET_errReferenceNotFound -1005 /* No such reference */
#define JET_wrnBufferTruncated 1006 /* Buf too short, data truncated */
#define JET_wrnDatabaseAttached 1007 /* Database is already attached */
#define JET_wrnOnEndPoint 1008 /* On end point */
#define JET_wrnSortOverflow 1009 /* Sort does not fit in memory */
#define JET_errInvalidDatabaseId -1010 /* Invalid database id */
#define JET_errOutOfMemory -1011 /* Out of Memory */
#define JET_errCantAllocatePage -1012 /* Couldn't allocate a page */
#define JET_errNoMoreCursors -1013 /* Max # of cursors allocated */
#define JET_errOutOfBuffers -1014 /* JET_errOutOfBuffers */
#define JET_errTooManyIndexes -1015 /* Too many indexes */
#define JET_errTooManyKeys -1016 /* Too many columns in an index */
#define JET_errRecordDeleted -1017 /* Record has been deleted */
#define JET_errReadVerifyFailure -1018 /* Read verification error */
#define JET_errFilesysVersion -1019 /* Obsolete database format */
#define JET_errNoMoreFiles -1020 /* No more file handles */
#define JET_errDiskNotReady -1021 /* Disk not ready */
#define JET_errDiskIO -1022 /* JET_errDiskIO */
#define JET_errInvalidPath -1023 /* JET_errInvalidPath */
#define JET_errFileShareViolation -1024 /* JET_errFileShareViolation */
#define JET_errFileLockViolation -1025 /* JET_errFileLockViolation */
#define JET_errRecordTooBig -1026 /* JET_errRecordTooBig */
#define JET_errTooManyOpenDatabases -1027 /* Database limit reached */
#define JET_errInvalidDatabase -1028 /* This isn't a database */
#define JET_errNotInitialized -1029 /* JetInit not yet called */
#define JET_errAlreadyInitialized -1030 /* JetInit already called */
#define JET_errFileLockingUnavailable -1031 /* JET_errFileLockingUnavailable */
#define JET_errFileAccessDenied -1032 /* JET_errFileAccessDenied */
#define JET_errSharingBufferExceeded -1033 /* OS sharing buffer exceeded */
#define JET_errQueryNotSupported -1034 /* Query support unavailable */
#define JET_errSQLLinkNotSupported -1035 /* SQL Link support unavailable */
#define JET_errTaskLimitExceeded -1036 /* Too many client tasks */
#define JET_errUnsupportedOSVersion -1037 /* Unsupported OS version */
#define JET_errBufferTooSmall -1038 /* Buffer is too small */
#define JET_wrnSeekNotEqual 1039 /* SeekLE or SeekGE didn't find exact match */
#define JET_errTooManyColumns -1040 /* Too many columns defined */
#define JET_errTooManyFixedColumns -1041 /* Too many fixed columns defined */
#define JET_errTooManyVariableColumns -1042 /* Too many variable columns defined */
#define JET_errContainerNotEmpty -1043 /* Container is not empty */
#define JET_errInvalidFilename -1044 /* Filename is invalid */
#define JET_errInvalidBookmark -1045 /* Invalid bookmark */
#define JET_errColumnInUse -1046 /* Column used in an index */
#define JET_errInvalidBufferSize -1047 /* Data buffer doesn't match column size */
#define JET_errColumnNotUpdatable -1048 /* Can't set column value */
#define JET_wrnCommitNotFlushed 1049 /* Commit did not flush to disk */
#define JET_errAbortSalvage -1050 /* Forced Salvager abort */
#define JET_errIndexInUse -1051 /* Index is in use */
#define JET_errLinkNotSupported -1052 /* Link support unavailable */
#define JET_errNullKeyDisallowed -1053 /* Null keys are disallowed on index */
#define JET_errNotInTransaction -1054 /* JET_errNotInTransaction */
#define JET_wrnNoErrorInfo 1055 /* No extended error information */
#define JET_errInstallableIsamNotFound -1056 /* Installable ISAM not found */
#define JET_errOperationCancelled -1057 /* Operation canceled by client */
#define JET_wrnNoIdleActivity 1058 /* No idle activity occured */
#define JET_errTooManyActiveUsers -1059 /* Too many active database users */
#define JET_errInvalidAppend -1060 /* Cannot append long value */
#define JET_errInvalidCountry -1061 /* Invalid or unknown country code */
#define JET_errInvalidLanguageId -1062 /* Invalid or unknown language id */
#define JET_errInvalidCodePage -1063 /* Invalid or unknown code page */
#define JET_errCantBuildKey -1064 /* Can't build key for this sort order. */
#define JET_errIllegalReentrancy -1065 /* Re-entrancy on same cursor family */
#define JET_errIllegalRelationship -1066 /* Can't create relationship */
#define JET_wrnNoWriteLock 1067 /* No write lock at transaction level 0 */
#define JET_errDBVerFeatureNotAvailable -1067 /* API not supported using old database format*/
#define JET_errCantBegin -1101 /* Cannot BeginSession */
#define JET_errWriteConflict -1102 /* Write lock failed due to outstanding write lock */
#define JET_errTransTooDeep -1103 /* Xactions nested too deeply */
#define JET_errInvalidSesid -1104 /* Invalid session handle */
#define JET_errReadConflict -1105 /* Commit lock failed due to outstanding read lock */
#define JET_errCommitConflict -1106 /* Read lock failed due to outstanding commit lock */
#define JET_errSessionWriteConflict -1107 /* Another session has private version of page */
#define JET_errInTransaction -1108 /* Operation not allowed within a transaction */
#define JET_errDatabaseDuplicate -1201 /* Database already exists */
#define JET_errDatabaseInUse -1202 /* Database in use */
#define JET_errDatabaseNotFound -1203 /* No such database */
#define JET_errDatabaseInvalidName -1204 /* Invalid database name */
#define JET_errDatabaseInvalidPages -1205 /* Invalid number of pages */
#define JET_errDatabaseCorrupted -1206 /* non-db file or corrupted db */
#define JET_errDatabaseLocked -1207 /* Database exclusively locked */
#define JET_wrnDatabaseEncrypted 1208 /* Database is encrypted */
#define JET_wrnTableEmpty 1301 /* Open an empty table */
#define JET_errTableLocked -1302 /* Table is exclusively locked */
#define JET_errTableDuplicate -1303 /* Table already exists */
#define JET_errTableInUse -1304 /* Table is in use, cannot lock */
#define JET_errObjectNotFound -1305 /* No such table or object */
#define JET_errCannotRename -1306 /* Cannot rename temporary file */
#define JET_errDensityInvalid -1307 /* Bad file/index density */
#define JET_errTableNotEmpty -1308 /* Cannot define clustered index */
#define JET_errTableNotLocked -1309 /* No DDLs w/o exclusive lock */
#define JET_errInvalidTableId -1310 /* Invalid table id */
#define JET_errTooManyOpenTables -1311 /* Cannot open any more tables */
#define JET_errIllegalOperation -1312 /* Oper. not supported on table */
#define JET_wrnExecSegReleased 1313 /* Query Execution segment is released */
#define JET_errObjectDuplicate -1314 /* Table or object name in use */
#define JET_errRulesLoaded -1315 /* Rules loaded, can't define more */
#define JET_errInvalidObject -1316 /* object is invalid for operation */
#define JET_errIndexCantBuild -1401 /* Cannot build clustered index */
#define JET_errIndexHasPrimary -1402 /* Primary index already defined */
#define JET_errIndexDuplicate -1403 /* Index is already defined */
#define JET_errIndexNotFound -1404 /* No such index */
#define JET_errIndexMustStay -1405 /* Cannot delete clustered index */
#define JET_errIndexInvalidDef -1406 /* Illegal index definition */
#define JET_errSelfReference -1407 /* Referencing/Referenced index is the same */
#define JET_errIndexHasClustered -1408 /* Clustered index already defined */
#define JET_errColumnLong -1501 /* column value is long */
#define JET_errColumnNoChunk -1502 /* no such chunk in field */
#define JET_errColumnDoesNotFit -1503 /* Field will not fit in record */
#define JET_errNullInvalid -1504 /* Null not valid */
#define JET_errColumnIndexed -1505 /* Column indexed, cannot delete */
#define JET_errColumnTooBig -1506 /* Field length is > maximum */
#define JET_errColumnNotFound -1507 /* No such column */
#define JET_errColumnDuplicate -1508 /* Field is already defined */
#define JET_errTaggedDefault -1509 /* No defaults on tagged fields */
#define JET_errColumn2ndSysMaint -1510 /* Second autoinc or version column */
#define JET_errInvalidColumnType -1511 /* Invalid column data type */
#define JET_wrnColumnMaxTruncated 1512 /* Max length too big, truncated */
#define JET_errColumnCannotIndex -1513 /* Cannot index Bit,LongText,LongBinary */
#define JET_errTaggedNotNULL -1514 /* No non-NULL tagged fields */
#define JET_errNoCurrentIndex -1515 /* Invalid w/o a current index */
#define JET_errKeyIsMade -1516 /* The key is completely made */
#define JET_errBadColumnId -1517 /* Column Id Incorrect */
#define JET_errBadItagSequence -1518 /* Bad itagSequence for tagged column */
#define JET_errColumnInRelationship -1519 /* Cannot delete, column participates in relationship */
#define JET_wrnCopyLongValue 1520 /* Single instance column bursted */
#define JET_errCannotBeTagged -1521 /* AutoIncrement and Version cannot be tagged */
#define JET_errRecordNotFound -1601 /* The key was not found */
#define JET_errRecordNoCopy -1602 /* No working buffer */
#define JET_errNoCurrentRecord -1603 /* Currency not on a record */
#define JET_errRecordClusteredChanged -1604 /* Primary key may not change */
#define JET_errKeyDuplicate -1605 /* Illegal duplicate key */
#define JET_errCannotInsertBefore -1606 /* Cannot insert before current */
#define JET_errAlreadyPrepared -1607 /* Already copy/clear current */
#define JET_errKeyNotMade -1608 /* No call to JetMakeKey */
#define JET_errUpdateNotPrepared -1609 /* No call to JetPrepareUpdate */
#define JET_wrnDataHasChanged 1610 /* Data has changed */
#define JET_errDataHasChanged -1611 /* Data has changed; operation aborted */
#define JET_errIntegrityViolationMaster -1612 /* References to key exist */
#define JET_errIntegrityViolationSlave -1613 /* No referenced key exists */
#define JET_wrnMuchDataChanged 1614 /* Repaint whole datasheet */
#define JET_errIncorrectJoinKey -1615 /* Master key does not match lookup key */
#define JET_wrnKeyChanged 1618 /* Moved to new key */
#define JET_wrnSyncedToDelRec 1699 /* CONSIDER: QJET INTERNAL */
#define JET_errRedoPrepUpdate 1698 /* CONSIDER: QJET INTERNAL(jpbulk.c)*/
#define JET_errTooManySorts -1701 /* Too many sort processes */
#define JET_errInvalidOnSort -1702 /* Invalid operation on Sort */
#define JET_errConfigOpenError -1801 /* Config. file can't be opened */
#define JET_errSysDatabaseOpenError -1802 /* System db could not be opened */
#define JET_errTempFileOpenError -1803 /* Temp file could not be opened */
#define JET_errDatabaseOpenError -1804 /* Database file can't be opened */
#define JET_errTooManyAttachedDatabases -1805 /* Too many open databases */
#define JET_errDatabaseCloseError -1806 /* Db file could not be closed */
#define JET_errTooManyOpenFiles -1807 /* Too many files open */
#define JET_errDiskFull -1808 /* No space left on disk */
#define JET_errPermissionDenied -1809 /* Permission denied */
#define JET_errSortFileOpenError -1810 /* Could not open sort file */
#define JET_errFileNotFound -1811 /* File not found */
#define JET_errTempDiskFull -1812 /* No space left on disk */
#define JET_wrnFileOpenReadOnly 1813 /* Database file is read only */
#define JET_errAfterInitialization -1850 /* Cannot Restore after init. */
#define JET_errSeriesTooLong -1851 /* New log generation id too big */
#define JET_errLogCorrupted -1852 /* Logs could not be interpreted */
#define JET_errCannotOpenSystemDb -1901 /* failed sysdb on beginsession */
#define JET_errInvalidLogon -1902 /* invalid logon at beginsession */
#define JET_errInvalidAccountName -1903 /* invalid account name */
#define JET_errInvalidSid -1904 /* invalid SID */
#define JET_errInvalidPassword -1905 /* invalid password */
#define JET_errInvalidOperation -1906 /* invalid operation */
#define JET_errAccessDenied -1907 /* access denied */
#define JET_errNoMSysAccounts -1908 /* Can't open MSysAccounts */
#define JET_errNoMSysGroups -1909 /* Can't open MSysGroups */
#define JET_errInvalidPin -1910 /* invalid pin */
#define JET_errRmtSqlError -2001 /* RMT: ODBC call failed */
#define JET_errRmtMissingOdbcDll -2006 /* RMT: Can't load ODBC DLL */
#define JET_errRmtInsertFailed -2007 /* RMT: Insert statement failed */
#define JET_errRmtDeleteFailed -2008 /* RMT: Delete statement failed */
#define JET_errRmtUpdateFailed -2009 /* RMT: Update statement failed */
#define JET_errRmtColDataTruncated -2010 /* RMT: data truncated */
#define JET_errRmtTypeIncompat -2011 /* RMT: Can't create JET type on server */
#define JET_errRmtCreateTableFailed -2012 /* RMT: Create table stmt failed */
#define JET_errRmtNotSupported -2014 /* RMT: Function not legal for rdb */
#define JET_errRmtValueOutOfRange -2020 /* RMT: Data value out of range */
#define JET_errRmtStillExec -2021 /* RMT INTERNAL: SQL_STILL_EXECUTING */
#define JET_errRmtQueryTimeout -2022 /* RMT: Server Not Responding */
#define JET_wrnRmtNeedLvData 2023 /* RMT: Internal only - need Lv data */
#define JET_wrnFatCursorUseless 2024 /* Fat cursor has no effect ***/
#define JET_errRmtWrongSPVer -2025 /* RMT: INTERNAL: wrong SProc ver ***/
#define JET_errRmtLinkOutOfSync -2026 /* RMT: the def for the rmt tbl has changed */
#define JET_errRmtDenyWriteIsInvalid -2027 /* RMT: Can't open DenyWrite */
#define JET_errRmtDriverCantConv -2029 /* RMT: INTERNAL: driver cannot convert */
#define JET_errRmtTableAmbiguous -2030 /* RMT: Table ambiguous: must specifier owner */
#define JET_errRmtBogusConnStr -2031 /* RMT: SPT: Bad connect string */
#define JET_errQueryInvalidAttribute -3001 /* Invalid query attribute */
#define JET_errQueryOnlyOneRow -3002 /* Only 1 such row allowed */
#define JET_errQueryIncompleteRow -3003 /* Missing value in row */
#define JET_errQueryInvalidFlag -3004 /* Invalid value in Flag field */
#define JET_errQueryCycle -3005 /* Cycle in query definition */
#define JET_errQueryInvalidJoinTable -3006 /* Invalid table in join */
#define JET_errQueryAmbigRef -3007 /* Ambiguous column reference */
#define JET_errQueryUnboundRef -3008 /* Cannot bind name */
#define JET_errQueryParmRedef -3009 /* Parm redefined with different type */
#define JET_errQueryMissingParms -3010 /* Too few parameters supplied */
#define JET_errQueryInvalidOutput -3011 /* Invalid query output */
#define JET_errQueryInvalidHaving -3012 /* HAVING clause without aggregation */
#define JET_errQueryDuplicateAlias -3013 /* Duplicate output alias */
#define JET_errQueryInvalidMGBInput -3014 /* Cannot input from MGB */
#define JET_errQueryInvalidOrder -3015 /* Invalid ORDER BY expression */
#define JET_errQueryTooManyLevels -3016 /* Too many levels on MGB */
#define JET_errQueryMissingLevel -3017 /* Missing intermediate MGB level */
#define JET_errQueryIllegalAggregate -3018 /* Aggregates not allowed */
#define JET_errQueryDuplicateOutput -3019 /* Duplicate destination output */
#define JET_errQueryIsBulkOp -3020 /* Grbit should be set for Bulk Operation */
#define JET_errQueryIsNotBulkOp -3021 /* Query is not a Bulk Operation */
#define JET_errQueryIllegalOuterJoin -3022 /* No inconsistent updates on outer joins */
#define JET_errQueryNullRequired -3023 /* Column must be NULL */
#define JET_errQueryNoOutputs -3024 /* Query must have an output */
#define JET_errQueryNoInputTables -3025 /* Query must have an input */
#define JET_wrnQueryNonUpdatableRvt 3026 /* Query is not updatable (but IS RVT) */
#define JET_errQueryInvalidAlias -3027 /* Bogus character in alias name */
#define JET_errQueryInvalidBulkInput -3028 /* Cannot input from bulk operation */
#define JET_errQueryNotDirectChild -3029 /* T.* must use direct child */
#define JET_errQueryExprEvaluation -3030 /* Expression evaluation error */
#define JET_errQueryIsNotRowReturning -3031 /* Query does not return rows */
#define JET_wrnQueryNonRvt 3032 /* Can't create RVT, query is static */
#define JET_errQueryParmTypeMismatch -3033 /* Wrong parameter type given */
#define JET_errQueryChanging -3034 /* Query Objects are being updated */
#define JET_errQueryNotUpdatable -3035 /* Operation must use an updatable query */
#define JET_errQueryMissingColumnName -3036 /* Missing destination column */
#define JET_errQueryTableDuplicate -3037 /* Repeated table name in FROM list */
#define JET_errQueryIsMGB -3038 /* Query is an MGB */
#define JET_errQueryInsIntoBulkMGB -3039 /* Cannot insert into Bulk/MGB */
#define JET_errQueryDistinctNotAllowed -3040 /* DISTINCT not allowed for MGB */
#define JET_errQueryDistinctRowNotAllow -3041 /* DISTINCTROW not allowed for MGB */
#define JET_errQueryNoDbForParmDestTbl -3045 /* Dest DB for VT parm not allowed */
#define JET_errQueryDuplicatedFixedSet -3047 /* Duplicated Fixed Value */
#define JET_errQueryNoDeleteTables -3048 /* Must specify tables to delete from */
#define JET_errQueryCannotDelete -3049 /* Cannot delete from specified tables */
#define JET_errQueryTooManyGroupExprs -3050 /* Too many GROUP BY expressions */
#define JET_errQueryTooManyOrderExprs -3051 /* Too many ORDER BY expressions */
#define JET_errQueryTooManyDistExprs -3052 /* Too many DISTINCT output expressions */
#define JET_errQueryBadValueList -3053 /* Malformed value list in Transform */
#define JET_errConnStrTooLong -3054 /* Connect string too long */
#define JET_errQueryInvalidParm -3055 /* Invalid Parmeter Name (>64 char) */
#define JET_errQueryContainsDbParm -3056 /* Can't get parameters with Db Parm */
#define JET_errQueryBadUpwardRefed -3057 /* Illegally Upward ref'ed */
#define JET_errQueryAmbiguousJoins -3058 /* Joins in a QO are ambiguous */
#define JET_errQueryIsNotDDL -3059 /* Not a DDL Operation */
#define JET_errNoDbInConnStr -3060 /* No database in connect string */
#define JET_wrnQueryIsNotRowReturning 3061 /* Not row returning */
#define JET_errTooManyFindSessions -3062 /* RVT already has a find session open */
#define JET_errSingleValueExpected -3063 /* At most one record with one column can be returned from a scalar subquery */
#define JET_errColumnCountMismatch -3064 /* Union Query: number of columns in children dont match */
#define JET_errQueryTopNotAllowed -3065 /* Top not allowed for MGB */
#define JET_errQueryIsDDL -3066 /* Must set JET_bitTableDDL */
#define JET_errQueryIsCorrupt -3067 /* Query is Corrupt */
#define JET_errQuerySPTBulkSucceeded -3068 /* INTERNAL only */
#define JET_errSPTReturnedNoRecords -3069 /* SPT marked as RowReturning did not return a table */
#define JET_errExprSyntax -3100 /* Syntax error in expression */
#define JET_errExprIllegalType -3101 /* Illegal type in expression */
#define JET_errExprUnknownFunction -3102 /* Unknown function in expression */
#define JET_errSQLSyntax -3500 /* Bogus SQL statement type */
#define JET_errSQLParameterSyntax -3501 /* Parameter clause syntax error */
#define JET_errSQLInsertSyntax -3502 /* INSERT clause syntax error */
#define JET_errSQLUpdateSyntax -3503 /* UPDATE clause syntax error */
#define JET_errSQLSelectSyntax -3504 /* SELECT clause syntax error */
#define JET_errSQLDeleteSyntax -3505 /* Expected 'FROM' after 'DELETE' */
#define JET_errSQLFromSyntax -3506 /* FROM clause syntax error */
#define JET_errSQLGroupBySyntax -3507 /* GROUP BY clause syntax error */
#define JET_errSQLOrderBySyntax -3508 /* ORDER BY clause syntax error */
#define JET_errSQLLevelSyntax -3509 /* LEVEL syntax error */
#define JET_errSQLJoinSyntax -3510 /* JOIN syntax error */
#define JET_errSQLTransformSyntax -3511 /* TRANSFORM syntax error */
#define JET_errSQLHavingSyntax -3512 /* HAVING clause syntax error */
#define JET_errSQLWhereSyntax -3513 /* WHERE clause syntax error */
#define JET_errSQLProcedureSyntax -3514 /* Expected query name after 'PROCEDURE' */
#define JET_errSQLNotEnoughBuf -3515 /* Buffer too small for SQL string */
#define JET_errSQLMissingSemicolon -3516 /* Missing ; at end of SQL statement */
#define JET_errSQLTooManyTokens -3517 /* Characters after end of SQL statement */
#define JET_errSQLOwnerAccessSyntax -3518 /* OWNERACCESS OPTION syntax error */
#define JET_errV11NotSupported -3519 /* not supported in V11 */
#define JET_errV10Format -3520 /* can be present in V10 format only */
#define JET_errSQLUnionSyntax -3521 /* UNION query syntax error */
#define JET_errSqlPassThrough -3523 /* Pass Through query Disallowed */
#define JET_wrnSqlPassThrough 3524 /* Pass Through query involved */
#define JET_errDDLConstraintSyntax -3550 /* constraint syntax error */
#define JET_errDDLCreateTableSyntax -3551 /* create table syntax error */
#define JET_errDDLCreateIndexSyntax -3552 /* create index syntax error */
#define JET_errDDLColumnDefSyntax -3553 /* column def syntax error */
#define JET_errDDLAlterTableSyntax -3554 /* alter table syntax error */
#define JET_errDDLDropIndexSyntax -3555 /* drop index syntax error */
#define JET_errDDLDropSyntax -3556 /* drop view/procedure syntax error */
#define JET_errDDLCreateViewSyntax -3557 /* create view syntax error */
#define JET_errNoSuchProperty -3600 /* Property was not found */
#define JET_errPropertyTooLarge -3601 /* Small Property larger than 2K */
#define JET_errJPMInvalidForV1x -3602 /* No JPM for V1.x databases */
#define JET_errPropertyExists -3603 /* Property already exists */
#define JET_errInvalidDelete -3604 /* DeleteOnly called with non-zero cbData */
#define JET_wrnFindWrapped 3700 /* Cursor wrapped during fast find */
#define JET_errTLVNativeUserTablesOnly -3700 /* TLVs can only be placed on native user tables/columns */
#define JET_errTLVNoNull -3701 /* This field cannot be null */
#define JET_errTLVNoBlank -3702 /* This column cannot be blank */
#define JET_errTLVRuleViolation -3703 /* This validation rule must be met */
#define JET_errTLVInvalidColumn -3704 /* This TLV property cannot be placed on this column */
#define JET_errTLVExprEvaluation -3705 /* Expression evaluation error */
#define JET_errTLVExprUnknownFunc -3706 /* Unknown function in TLV expression */
#define JET_errTLVExprSyntax -3707 /* Syntax error in TLV expression */
/* CONSIDER: Remove the following error. */
#define JET_errGeneral -5001 /* I-ISAM: assert failure */
#define JET_errRecordLocked -5002 /* I-ISAM: record locked */
#define JET_wrnColumnDataTruncated 5003 /* I-ISAM: data truncated */
#define JET_errTableNotOpen -5004 /* I-ISAM: table is not open */
#define JET_errDecryptFail -5005 /* I-ISAM: incorrect password */
#define JET_wrnCurrencyLost 5007 /* I-ISAM: currency lost - must first/last */
#define JET_errDateOutOfRange -5008 /* I-ISAM: invalid date */
#define JET_wrnOptionsIgnored 5011 /* I-ISAM: options were ignored */
#define JET_errTableNotComplete -5012 /* I-ISAM: incomplete table definition */
#define JET_errIllegalNetworkOption -5013 /* I-ISAM: illegal network option */
#define JET_errIllegalTimeoutOption -5014 /* I-ISAM: illegal timeout option */
#define JET_errNotExternalFormat -5015 /* I-ISAM: invalid file format */
#define JET_errUnexpectedEngineReturn -5016 /* I-ISAM: unexpected engine error code */
#define JET_errNumericFieldOverflow -5017 /* I-ISAM: can't convert to native type */
#define JET_errIndexHasNoPrimary -5020 /* Paradox: no primary index */
#define JET_errTableSortOrderMismatch -5021 /* Paradox: sort order mismatch */
#define JET_errNoConfigParameters -5023 /* Paradox: net path or user name missing */
#define JET_errCantAccessParadoxNetDir -5024 /* Paradox: bad Paradox net path */
#define JET_errObsoleteLockFile -5025 /* Paradox: obsolete lock file */
#define JET_errIllegalCollatingSequence -5026 /* Paradox: invalid sort sequence */
#define JET_errWrongCollatingSequence -5027 /* Paradox: wrong sort sequence */
#define JET_errCantUseUnkeyedTable -5028 /* Paradox: can't open unkeyed table */
#define JET_errINFFileError -5101 /* dBase: invalid .INF file */
#define JET_errCantMakeINFFile -5102 /* dBase: can't open .INF file */
#define JET_wrnCantMaintainIndex 5103 /* dBase: unmaintainable index */
#define JET_errMissingMemoFile -5104 /* dBase: missing memo file */
#define JET_errIllegalCenturyOption -5105 /* dBase: Illegal century option */
#define JET_errIllegalDeletedOption -5106 /* dBase: Illegal deleted option */
#define JET_errIllegalStatsOption -5107 /* dBase: Illegal statistics option */
#define JET_errIllegalDateOption -5108 /* dBase: Illegal date option */
#define JET_errIllegalMarkOption -5109 /* dBase: Illegal mark option */
#define JET_wrnDuplicateIndexes 5110 /* dBase: duplicate indexes in INF file */
#define JET_errINFIndexNotFound -5111 /* dBase: missing index in INF file */
#define JET_errWrongMemoFileType -5112 /* dBase: wrong memo file type */
#define JET_errIllegalExactOption -5113 /* dBase: Illegal exact option */
#define JET_errTooManyLongFields -5200 /* Btrieve: more than one memo field */
#define JET_errCantStartBtrieve -5201 /* Btrieve: wbtrcall.dll missing */
#define JET_errBadConfigParameters -5202 /* Btrieve: win.ini [btrieve] options wrong */
#define JET_errIndexesChanged -5203 /* Btrieve: need to GetIndexInfo */
#define JET_errNonModifiableKey -5204 /* Btrieve: can't modify record column */
#define JET_errOutOfBVResources -5205 /* Btrieve: out of resources */
#define JET_errBtrieveDeadlock -5206 /* Btrieve: locking deadlock */
#define JET_errBtrieveFailure -5207 /* Btrieve: Btrieve DLL failure */
#define JET_errBtrieveDDCorrupted -5208 /* Btrieve: data dictionary corrupted */
#define JET_errBtrieveTooManyTasks -5209 /* Btrieve: too many tasks */
#define JET_errIllegalIndexDDFOption -5210 /* Btrieve: Illegal IndexDDF option */
#define JET_errIllegalDataCodePage -5211 /* Btrieve: Illeagl DataCodePage option */
#define JET_errXtrieveEnvironmentError -5212 /* Btrieve: Xtrieve INI options bad */
#define JET_errMissingDDFFile -5213 /* Btrieve: Missing field.ddf */
#define JET_errIlleaglIndexNumberOption -5214 /* Btrieve: Illeagl IndexRenumber option */
/* Extended error codes must be in the following range. */
/* Major error codes may not be in this range. */
#define JET_errMinorLeast -8000
#define JET_errMinorMost -8999
#define JET_errFindExprSyntax -8001 /* Syntax error in FastFind expression */
#define JET_errQbeExprSyntax -8002 /* Syntax error in QBE expression */
#define JET_errInputTableNotFound -8003 /* Non-existant object in FROM list */
#define JET_errQueryExprSyntax -8004 /* Syntax error in some query expression */
#define JET_errQodefExprSyntax -8005 /* Syntax error in expression column */
#define JET_errExpAliasAfterAS -8006 /* Expected alias after 'AS' in FROM list */
#define JET_errExpBYAfterGROUP -8007 /* Expected 'BY' after 'GROUP' */
#define JET_errExpBYAfterORDER -8008 /* Expected 'BY' after 'ORDER' */
#define JET_errExpClsParenAfterColList -8009 /* Expected ')' after column list */
#define JET_errExpColNameAfterPIVOT -8010 /* Expected column name after 'PIVOT' */
#define JET_errExpDatabaseAfterIN -8011 /* Expected database name after 'IN' */
#define JET_errExpDatatypeAfterParmName -8012 /* Expected datatype after parameter name */
#define JET_errExpEqualAfterUpdColName -8013 /* Expected '=' after update column name */
#define JET_errExpExprAfterON -8014 /* Expected join expression after 'ON' */
#define JET_errExpExprAfterTRANSFORM -8015 /* Expected expression after 'TRANSFORM' */
#define JET_errExpExprAfterWHERE -8016 /* Expected expression after 'WHERE' */
#define JET_errExpGroupClauseInXform -8017 /* Transform expects GROUP BY clause */
#define JET_errExpGroupingExpr -8018 /* Expected grouping expression */
#define JET_errExpHavingExpr -8019 /* Expected HAVING expression */
#define JET_errExpINTOAfterINSERT -8020 /* Expected 'INTO' after 'INSERT' */
#define JET_errExpJOINAfterJoinType -8021 /* Expected 'JOIN' after INNER/LEFT/RIGHT */
#define JET_errExpLEVELAfterSelectList -8022 /* Expected LEVEL after select list */
#define JET_errExpNumberAfterLEVEL -8023 /* Expected number after 'LEVEL' */
#define JET_errExpONAfterRightTable -8024 /* Expected 'ON' after right join table */
#define JET_errExpOrderExpr -8025 /* Expected ordering expression */
#define JET_errExpOutputAliasAfterAS -8026 /* Expected output alias after 'AS' */
#define JET_errExpOutputExpr -8027 /* Expected output expression */
#define JET_errExpPIVOTAfterSelectStmt -8028 /* Expected 'PIVOT' after SELECT statement */
#define JET_errExpRightJoinTable -8029 /* Expected right join table after 'JOIN' */
#define JET_errExpSELECTAfterInsClause -8030 /* Expected 'SELECT' after INSERT clause */
#define JET_errExpSELECTAfterXformExpr -8031 /* Expected 'SELECT' after Transform fact */
#define JET_errExpSETAfterTableName -8032 /* Expected 'SET' after table name */
#define JET_errExpSemiAfterLevelNumber -8033 /* Expected ';' after level number */
#define JET_errExpSemiAfterParmList -8034 /* Expected ';' after parmeter list */
#define JET_errExpSemiAfterPivotClause -8035 /* Expected ';' after PIVOT clause */
#define JET_errExpSemiAtEndOfSQL -8036 /* Expected ';' at end of SQL statement */
#define JET_errExpTableName -8037 /* Expected table name */
#define JET_errExpTableNameAfterINTO -8038 /* Expected table name after 'INTO' */
#define JET_errExpUpdExprAfterEqual -8039 /* Expected update expression after '=' */
#define JET_errExpUpdateColName -8040 /* Expected update column name */
#define JET_errInvTokenAfterFromList -8041 /* Bogus token after FROM list */
#define JET_errInvTokenAfterGroupList -8042 /* Bogus token after GROUP BY list */
#define JET_errInvTokenAfterHavingCls -8043 /* Bogus token after HAVING clause */
#define JET_errInvTokenAfterOrderClause -8044 /* Bogus token after ORDER BY clause */
#define JET_errInvTokenAfterSelectCls -8045 /* Bogus token after SELECT clause */
#define JET_errInvTokenAfterWhereClause -8046 /* Bogus token after WHERE clause */
#define JET_errLevelNumberTooBig -8047 /* Number after 'LEVEL' too big */
#define JET_errLevelOnNonMGB -8048 /* LEVEL allowed only in MGB */
#define JET_errIllegalDetailReference -8049 /* Not group key or agg, but not MGB detail */
#define JET_errAggOverMixedLevels -8050 /* Agg. arg. uses outputs from > 1 level */
#define JET_errAggregatingHigherLevel -8051 /* Agg. over output of same/higher level */
#define JET_errNullInJoinKey -8052 /* Cannot set column in join key to NULL */
#define JET_errValueBreaksJoin -8053 /* Join is broken by column value(s) */
#define JET_errInsertIntoUnknownColumn -8054 /* INSERT INTO unknown column name */
#define JET_errNoSelectIntoColumnName -8055 /* No dest. col. name in SELECT INTO stmt */
#define JET_errNoInsertColumnName -8056 /* No dest. col. name in INSERT stmt */
#define JET_errColumnNotInJoinTable -8057 /* Join expr refers to non-join table */
#define JET_errAggregateInJoin -8058 /* Aggregate in JOIN clause */
#define JET_errAggregateInWhere -8059 /* Aggregate in WHERE clause */
#define JET_errAggregateInOrderBy -8060 /* Aggregate in ORDER BY clause */
#define JET_errAggregateInGroupBy -8061 /* Aggregate in GROUP BY clause */
#define JET_errAggregateInArgument -8062 /* Aggregate in argument expression */
#define JET_errHavingOnTransform -8063 /* HAVING clause on TRANSFORM query */
#define JET_errHavingWithoutGrouping -8064 /* HAVING clause w/o grouping/aggregation */
#define JET_errHavingOnMGB -8065 /* HAVING clause on MGB query */
#define JET_errOutputAliasCycle -8066 /* Cycle in SELECT list (via aliases) */
#define JET_errDotStarWithGrouping -8067 /* 'T.*' with grouping, but not MGB level 0 */
#define JET_errStarWithGrouping -8068 /* '*' with grouping, but not MGB detail */
#define JET_errQueryTreeCycle -8069 /* Cycle in tree of query objects */
#define JET_errTableRepeatInFromList -8072 /* Table appears twice in FROM list */
#define JET_errTooManyXformLevels -8073 /* Level > 2 in TRANSFORM query */
#define JET_errTooManyMGBLevels -8074 /* Too many levels in MGB */
#define JET_errNoUpdateColumnName -8075 /* No dest. column name in UPDATE stmt */
#define JET_errJoinTableNotInput -8076 /* Join table not in FROM list */
#define JET_errUnaliasedSelfJoin -8077 /* Join tables have same name */
#define JET_errOutputLevelTooBig -8078 /* Output w/ level > 1+max group level */
#define JET_errOrderVsGroup -8079 /* ORDER BY conflicts with GROUP BY */
#define JET_errOrderVsDistinct -8080 /* ORDER BY conflicts with DISTINCT */
#define JET_errExpLeftParenthesis -8082 /* Expected '(' */
#define JET_errExpRightParenthesis -8083 /* Expected ')' */
#define JET_errEvalEBESErr -8084 /* EB/ES error evaluating expression */
#define JET_errQueryExpCloseQuote -8085 /* Unmatched quote for database name */
#define JET_errQueryParmNotDatabase -8086 /* Parameter type should be database */
#define JET_errQueryParmNotTableid -8087 /* Parameter type should be tableid */
#define JET_errExpIdentifierM -8088 /* Expected identifier */
#define JET_errExpQueryName -8089 /* Expected query name after PROCEDURE */
#define JET_errExprUnknownFunctionM -8090 /* Unknown function in expression */
#define JET_errQueryAmbigRefM -8091 /* Ambiguous column reference */
#define JET_errQueryBadBracketing -8092 /* Bad bracketing of identifier */
#define JET_errQueryBadQodefName -8093 /* Invalid name in QODEF row */
#define JET_errQueryBulkColNotUpd -8094 /* Column not updatable (bulk op) */
#define JET_errQueryDistinctNotAllowedM -8095 /* DISTINCT not allowed for MGB */
#define JET_errQueryDuplicateAliasM -8096 /* Duplicate output alias */
#define JET_errQueryDuplicateOutputM -8097 /* Duplicate destination output */
#define JET_errQueryDuplicatedFixedSetM -8098 /* Duplicated Fixed Value */
#define JET_errQueryIllegalOuterJoinM -8099 /* No inconsistent updates on outer joins */
#define JET_errQueryIncompleteRowM -8100 /* Missing value in row */
#define JET_errQueryInvalidAttributeM -8101 /* Invalid query attribute */
#define JET_errQueryInvalidBulkInputM -8102 /* Cannot input from bulk operation */
#define JET_errQueryInvalidFlagM -8103 /* Invalid value in Flag field */
#define JET_errQueryInvalidMGBInputM -8104 /* Cannot input from MGB */
#define JET_errQueryLVInAggregate -8105 /* Illegal long value in aggregate */
#define JET_errQueryLVInDistinct -8106 /* Illegal long value in DISTINCT */
#define JET_errQueryLVInGroupBy -8107 /* Illegal long value in GROUP BY */
#define JET_errQueryLVInHaving -8108 /* Illegal long value in HAVING */
#define JET_errQueryLVInJoin -8109 /* Illegal long value in JOIN */
#define JET_errQueryLVInOrderBy -8110 /* Illegal long value in ORDER BY */
#define JET_errQueryMissingLevelM -8111 /* Missing intermediate MGB level */
#define JET_errQueryMissingParmsM -8112 /* Too few parameters supplied */
#define JET_errQueryNoDbForParmDestTblM -8113 /* Dest DB for VT parm not allowed */
#define JET_errQueryNoDeletePerm -8114 /* No delete permission on table/query */
#define JET_errQueryNoInputTablesM -8115 /* Query must have an input */
#define JET_errQueryNoInsertPerm -8116 /* No insert permission on table/query */
#define JET_errQueryNoOutputsM -8117 /* Query must have an output */
#define JET_errQueryNoReadDefPerm -8118 /* No permission to read query definition */
#define JET_errQueryNoReadPerm -8119 /* No read permission on table/query */
#define JET_errQueryNoReplacePerm -8120 /* No replace permission on table/query */
#define JET_errQueryNoTblCrtPerm -8121 /* No CreateTable permission (bulk op) */
#define JET_errQueryNotDirectChildM -8122 /* T.* must use direct child */
#define JET_errQueryNullRequiredM -8123 /* Column must be NULL */
#define JET_errQueryOnlyOneRowM -8124 /* Only 1 such row allowed */
#define JET_errQueryOutputColNotUpd -8125 /* Query output column not updatable */
#define JET_errQueryParmRedefM -8126 /* Parm redefined with different type */
#define JET_errQueryParmTypeMismatchM -8127 /* Wrong parameter type given */
#define JET_errQueryUnboundRefM -8128 /* Cannot bind name */
#define JET_errRmtConnectFailedM -8129 /* RMT: Connection attempt failed */
#define JET_errRmtDeleteFailedM -8130 /* RMT: Delete statement failed */
#define JET_errRmtInsertFailedM -8131 /* RMT: Insert statement failed */
#define JET_errRmtMissingOdbcDllM -8132 /* RMT: Can't load ODBC DLL */
#define JET_errRmtSqlErrorM -8133 /* RMT: ODBC call failed */
#define JET_errRmtUpdateFailedM -8134 /* RMT: Update statement failed */
#define JET_errSQLDeleteSyntaxM -8135 /* Expected 'FROM' after 'DELETE' */
#define JET_errSQLSyntaxM -8136 /* Bogus SQL statement type */
#define JET_errSQLTooManyTokensM -8137 /* Characters after end of SQL statement */
#define JET_errStarNotAtLevel0 -8138 /* '*' illegal above level 0 */
#define JET_errQueryParmTypeNotAllowed -8139 /* Parameter type not allowed for expression */
#define JET_errQueryTooManyDestColumn -8142 /* Too many destination column sepcified */
#define JET_errSQLNoInsertColumnName -8143 /* No dest. col. name in INSERT stmt */
#define JET_errRmtLinkNotFound -8144 /* RMT: link not found */
#define JET_errRmtTooManyColumns -8145 /* RMT: Too many columns on Select Into */
#define JET_errWriteConflictM -8146 /* Write lock failed due to outstanding write lock */
#define JET_errReadConflictM -8147 /* Commit lock failed due to outstanding read lock */
#define JET_errCommitConflictM -8148 /* Read lock failed due to outstanding commit lock */
#define JET_errTableLockedM -8149 /* Table is exclusively locked */
#define JET_errTableInUseM -8150 /* Table is in use, cannot lock */
#define JET_errQueryTooManyXvtColumn -8151 /* Too many cross table column headers */
#define JET_errOutputTableNotFound -8152 /* Non-existent table in Insert Into */
#define JET_errTableLockedQM -8153 /* Table is exclusively locked */
#define JET_errTableInUseQM -8154 /* Table is in use, cannot lock */
#define JET_errTableLockedMUQM -8155 /* Table is exclusively locked */
#define JET_errTableInUseMUQM -8156 /* Table is in use, cannot lock */
#define JET_errQueryInvalidParmM -8157 /* Invalid Parmeter Name (>64 char) */
#define JET_errFileNotFoundM -8158 /* File not found */
#define JET_errFileShareViolationM -8159 /* File sharing violation */
#define JET_errFileAccessDeniedM -8160 /* Access denied */
#define JET_errInvalidPathM -8161 /* Invalid Path */
#define JET_errTableDuplicateM -8162 /* Table already exists */
#define JET_errQueryBadUpwardRefedM -8163 /* Illegally Upward ref'ed */
#define JET_errIntegrityViolMasterM -8164 /* References to key exist */
#define JET_errIntegrityViolSlaveM -8165 /* No referenced key exists */
#define JET_errSQLUnexpectedWithM -8166 /* Unexpected 'with' in this place */
#define JET_errSQLOwnerAccessM -8167 /* Owner Access Option is defined Twice */
#define JET_errSQLOwnerAccessSyntaxM -8168 /* Owner Access Option Syntax Error */
#define JET_errSQLOwnerAccessDef -8169 /* Owner Access Option is defined more than once */
#define JET_errAccessDeniedM -8170 /* Generic Access Denied */
#define JET_errUnexpectedEngineReturnM -8171 /* I-ISAM: unexpected engine error code */
#define JET_errQueryTopNotAllowedM -8172 /* Top not allowed for MGB */
#define JET_errInvTokenAfterTableCls -8173 /* Bogus token after table clause */
#define JET_errInvTokenAfterRParen -8174 /* Unexpected tokens after a closing paren */
#define JET_errQueryBadValueListM -8175 /* Malformed value list in Transform */
#define JET_errQueryIsCorruptM -8176 /* Query is Corrupt */
#define JET_errInvalidTopArgumentM -8177 /* Select Top argument is invalid */
#define JET_errQueryIsSnapshot -8178 /* Query is a snapshot */
#define JET_errQueryExprOutput -8179 /* Output is a calculated column */
#define JET_errQueryTableRO -8180 /* Column comes from read-only table */
#define JET_errQueryRowDeleted -8181 /* Column comes from deleted row */
#define JET_errQueryRowLocked -8182 /* Column comes from locked row */
#define JET_errQueryFixupChanged -8183 /* Would row-fixup away from pending changes */
#define JET_errQueryCantFillIn -8184 /* Fill-in-the-blank only on most-many */
#define JET_errQueryWouldOrphan -8185 /* Would orphan joined records */
#define JET_errIncorrectJoinKeyM -8186 /* Must match join key in lookup table */
#define JET_errQueryLVInSubqueryM -8187 /* Illegal long value in subquery */
#define JET_errInvalidDatabaseM -8188 /* Unrecognized database format */
#define JET_errOrderVsUnion -8189 /* You can only order by an outputted column in a union */
#define JET_errTLVCouldNotBindRef -8190 /* Unknown token in TLV expression */
#define JET_errCouldNotBindRef -8191 /* Unknown token in FastFind expression */
#define JET_errQueryPKeyNotOutput -8192 /* Primary key not output */
#define JET_errQueryJKeyNotOutput -8193 /* Join key not output */
#define JET_errExclusiveDBConflict -8194 /* Conflict with exclusive user */
#define JET_errQueryNoJoinedRecord -8195 /* No F.I.T.B. insert if no joined record */
#define JET_errQueryLVInSetOp -8196 /* Illegal long value in set operation */
#define JET_errTLVExprUnknownFunctionM -8197 /* Unknown function in TLV expression */
#define JET_errInvalidNameM -8198 /* Invalid name */
#define JET_errDDLExpColName -8200 /* expect column name */
#define JET_errDDLExpLP -8201 /* expect '(' */
#define JET_errDDLExpRP -8202 /* expect ')' */
#define JET_errDDLExpIndex -8203 /* expect INDEX */
#define JET_errDDLExpIndexName -8204 /* expect index name */
#define JET_errDDLExpOn -8205 /* expect ON */
#define JET_errDDLExpKey -8206 /* expect KEY */
#define JET_errDDLExpReferences -8207 /* expect REFERENCES */
#define JET_errDDLExpTableName -8208 /* expect table name */
#define JET_errDDLExpFullOrPartial -8209 /* expect FULL or PARTIAL */
#define JET_errDDLExpCascadeOrSet -8210 /* expect CASCADE or SET */
#define JET_errDDLExpNull -8211 /* expect NULL */
#define JET_errDDLExpUpdateOrDelete -8212 /* expect UPDATE or DELETE */
#define JET_errDDLExpConstraintName -8213 /* expect constraint name */
#define JET_errDDLExpForeign -8214 /* expect FOREIGN */
#define JET_errDDLExpDatatype -8215 /* expect data type */
#define JET_errDDLExpIndexOpt -8216 /* expect index options */
#define JET_errDDLExpWith -8217 /* expect WITH */
#define JET_errDDLExpTable -8218 /* expect TABLE */
#define JET_errDDLExpEos -8219 /* expect End Of String */
#define JET_errDDLExpAddOrDrop -8220 /* expect ADD or Drop */
#define JET_errDDLCreateView -8221 /* Create view not supported */
#define JET_errDDLCreateProc -8222 /* Create proc not supported */
#define JET_errDDLExpObjectName -8223 /* expect object name */
#define JET_errDDLExpColumn -8224 /* expect COLUMN */
#define JET_errV11TableNameNotInScope -8250 /* referenced table not in join clause */
#define JET_errV11OnlyTwoTables -8251 /* exactly two tables should be referenced in join */
#define JET_errV11OneSided -8252 /* all tables come from one side of input */
#define JET_errV11Ambiguous -8253 /* Join clause is ambiguous when stored in V1 format */
#define JET_errTLVExprSyntaxM -8260 /* Syntax error in TLV expression */
#define JET_errTLVNoNullM -8261 /* This field cannot be null */
#define JET_errTLVNoBlankM -8262 /* This column cannot be blank */
#define JET_errTLVRuleViolationM -8263 /* This validation rule must be met */
#define JET_errDDLCreateViewSyntaxM -8264 /* create view syntax error */
/***********************
The following error code ranges are reserved for external use.
As is true for Jet error codes, these ranges cover the negative
as well as positive form of the numbers in the range.
30000 through 30999 for use by Vt Object as defined in jeteb.h
32000 through 32767 for use by Import/Export as defined in jetutil.h
***********************/
/**********************************************************************/
/*********************** PROTOTYPES **************************/
/**********************************************************************/
#if !defined(_JET_NOPROTOTYPES)
/****************************************************************************
ISAM API
*****************************************************************************/
JET_ERR JET_API JetInit(JET_INSTANCE _far *pinstance);
JET_ERR JET_API JetTerm(JET_INSTANCE instance);
JET_ERR JET_API JetSetSystemParameter(JET_INSTANCE _far *pinstance, JET_SESID sesid, unsigned long paramid,
ULONG_PTR lParam, const char _far *sz);
JET_ERR JET_API JetGetSystemParameter(JET_INSTANCE instance, JET_SESID sesid, unsigned long paramid,
ULONG_PTR _far *plParam, char _far *sz, unsigned long cbMax);
JET_ERR JET_API JetGetLastErrorInfo(JET_SESID sesid,
JET_EXTERR _far *pexterr, unsigned long cbexterrMax,
char _far *sz1, unsigned long cch1Max,
char _far *sz2, unsigned long cch2Max,
char _far *sz3, unsigned long cch3Max,
unsigned long _far *pcch3Actual);
JET_ERR JET_API JetBeginSession(JET_INSTANCE instance, JET_SESID _far *psesid,
const char _far *szUserName, const char _far *szPassword);
JET_ERR JET_API JetDupSession(JET_SESID sesid, JET_SESID _far *psesid);
JET_ERR JET_API JetEndSession(JET_SESID sesid, JET_GRBIT grbit);
JET_ERR JET_API JetGetVersion(JET_SESID sesid, unsigned long _far *pwVersion);
JET_ERR JET_API JetIdle(JET_SESID sesid, JET_GRBIT grbit);
JET_ERR JET_API JetCapability(JET_SESID sesid, JET_DBID dbid,
unsigned long lArea, unsigned long lFunction, JET_GRBIT _far *pgrbit);
JET_ERR JET_API JetCreateDatabase(JET_SESID sesid,
const char _far *szFilename, const char _far *szConnect,
JET_DBID _far *pdbid, JET_GRBIT grbit);
JET_ERR JET_API JetAttachDatabase(JET_SESID sesid, const char _far *szFilename, JET_GRBIT grbit );
JET_ERR JET_API JetDetachDatabase(JET_SESID sesid, const char _far *szFilename);
JET_ERR JET_API JetCreateTable(JET_SESID sesid, JET_DBID dbid,
const char _far *szTableName, unsigned long lPages, unsigned long lDensity,
JET_TABLEID _far *ptableid);
JET_ERR JET_API JetRenameTable(JET_SESID sesid, JET_DBID dbid,
const char _far *szTableName, const char _far *szTableNew);
JET_ERR JET_API JetDeleteTable(JET_SESID sesid, JET_DBID dbid,
const char _far *szTableName);
JET_ERR JET_API JetGetTableColumnInfo(JET_SESID sesid, JET_TABLEID tableid,
const char _far *szColumnName, void _far *pvResult, unsigned long cbMax,
unsigned long InfoLevel);
JET_ERR JET_API JetGetColumnInfo(JET_SESID sesid, JET_DBID dbid,
const char _far *szTableName, const char _far *szColumnName,
void _far *pvResult, unsigned long cbMax, unsigned long InfoLevel);
JET_ERR JET_API JetAddColumn(JET_SESID sesid, JET_TABLEID tableid,
const char _far *szColumn, const JET_COLUMNDEF _far *pcolumndef,
const void _far *pvDefault, unsigned long cbDefault,
JET_COLUMNID _far *pcolumnid);
JET_ERR JET_API JetRenameColumn(JET_SESID sesid, JET_TABLEID tableid,
const char _far *szColumn, const char _far *szColumnNew);
JET_ERR JET_API JetDeleteColumn(JET_SESID sesid, JET_TABLEID tableid,
const char _far *szColumn);
JET_ERR JET_API JetGetTableIndexInfo(JET_SESID sesid, JET_TABLEID tableid,
const char _far *szIndexName, void _far *pvResult, unsigned long cbResult,
unsigned long InfoLevel);
JET_ERR JET_API JetGetTableReferenceInfo(JET_SESID sesid, JET_TABLEID tableid,
const char _far *szReferenceName, void _far *pvResult,
unsigned long cbResult, unsigned long InfoLevel);
JET_ERR JET_API JetGetTableInfo(JET_SESID sesid, JET_TABLEID tableid,
void _far *pvResult, unsigned long cbMax, unsigned long InfoLevel);
JET_ERR JET_API JetGetIndexInfo(JET_SESID sesid, JET_DBID dbid,
const char _far *szTableName, const char _far *szIndexName,
void _far *pvResult, unsigned long cbResult, unsigned long InfoLevel);
JET_ERR JET_API JetGetReferenceInfo(JET_SESID sesid, JET_DBID dbid,
const char _far *szTableName, const char _far *szReference,
void _far *pvResult, unsigned long cbResult, unsigned long InfoLevel);
JET_ERR JET_API JetCreateIndex(JET_SESID sesid, JET_TABLEID tableid,
const char _far *szIndexName, JET_GRBIT grbit,
const char _far *szKey, unsigned long cbKey, unsigned long lDensity);
JET_ERR JET_API JetRenameIndex(JET_SESID sesid, JET_TABLEID tableid,
const char _far *szIndex, const char _far *szIndexNew);
JET_ERR JET_API JetDeleteIndex(JET_SESID sesid, JET_TABLEID tableid,
const char _far *szIndexName);
JET_ERR JET_API JetCreateReference(JET_SESID sesid, JET_TABLEID tableid,
const char _far *szReferenceName, const char _far *szColumns,
const char _far *szReferencedTable,
const char _far *szReferencedColumns, JET_GRBIT grbit);
JET_ERR JET_API JetRenameReference(JET_SESID sesid, JET_TABLEID tableid,
const char _far *szReference, const char _far *szReferenceNew);
JET_ERR JET_API JetDeleteReference(JET_SESID sesid, JET_TABLEID tableid,
const char _far *szReferenceName);
JET_ERR JET_API JetGetObjectInfo(JET_SESID sesid, JET_DBID dbid,
JET_OBJTYP objtyp, const char _far *szContainerName,
const char _far *szObjectName, void _far *pvResult, unsigned long cbMax,
unsigned long InfoLevel);
JET_ERR JET_API JetCreateObject(JET_SESID sesid, JET_DBID dbid,
const char _far *szContainerName, const char _far *szObjectName,
JET_OBJTYP objtyp);
JET_ERR JET_API JetDeleteObject(JET_SESID sesid, JET_DBID dbid,
const char _far *szContainerName, const char _far *szObjectName);
JET_ERR JET_API JetRenameObject(JET_SESID sesid, JET_DBID dbid,
const char _far *szContainerName, const char _far *szObjectName,
const char _far *szObjectNew);
JET_ERR JET_API JetBeginTransaction(JET_SESID sesid);
JET_ERR JET_API JetCommitTransaction(JET_SESID sesid, JET_GRBIT grbit);
JET_ERR JET_API JetRollback(JET_SESID sesid, JET_GRBIT grbit);
JET_ERR JET_API JetUpdateUserFunctions(JET_SESID sesid);
JET_ERR JET_API JetGetDatabaseInfo(JET_SESID sesid, JET_DBID dbid,
void _far *pvResult, unsigned long cbMax, unsigned long InfoLevel);
JET_ERR JET_API JetCloseDatabase(JET_SESID sesid, JET_DBID dbid,
JET_GRBIT grbit);
JET_ERR JET_API JetCloseTable(JET_SESID sesid, JET_TABLEID tableid);
JET_ERR JET_API JetOpenDatabase(JET_SESID sesid, const char _far *szFilename,
const char _far *szConnect, JET_DBID _far *pdbid, JET_GRBIT grbit);
JET_ERR JET_API JetOpenTable(JET_SESID sesid, JET_DBID dbid,
const char _far *szTableName, const void _far *pvParameters,
unsigned long cbParameters, JET_GRBIT grbit, JET_TABLEID _far *ptableid);
JET_ERR JET_API JetDelete(JET_SESID sesid, JET_TABLEID tableid);
JET_ERR JET_API JetUpdate(JET_SESID sesid, JET_TABLEID tableid,
void _far *pvBookmark, unsigned long cbBookmark,
unsigned long _far *pcbActual);
JET_ERR JET_API JetRetrieveColumn(JET_SESID sesid, JET_TABLEID tableid,
JET_COLUMNID columnid, void _far *pvData, unsigned long cbData,
unsigned long _far *pcbActual, JET_GRBIT grbit, JET_RETINFO _far *pretinfo);
JET_ERR JET_API JetRetrieveColumns( JET_SESID sesid, JET_TABLEID tableid,
JET_RETRIEVECOLUMN *pretrievecolumn, unsigned long cretrievecolumn );
JET_ERR JET_API JetSetColumn(JET_SESID sesid, JET_TABLEID tableid,
JET_COLUMNID columnid, const void _far *pvData, unsigned long cbData,
JET_GRBIT grbit, JET_SETINFO _far *psetinfo);
JET_ERR JET_API JetSetColumns(JET_SESID sesid, JET_TABLEID tableid,
JET_SETCOLUMN *psetcolumn, unsigned long csetcolumn );
JET_ERR JET_API JetPrepareUpdate(JET_SESID sesid, JET_TABLEID tableid,
unsigned long prep);
JET_ERR JET_API JetGetRecordPosition(JET_SESID sesid, JET_TABLEID tableid,
JET_RECPOS _far *precpos, unsigned long cbRecpos);
JET_ERR JET_API JetGotoPosition(JET_SESID sesid, JET_TABLEID tableid,
JET_RECPOS *precpos );
JET_ERR JET_API JetGetCursorInfo(JET_SESID sesid, JET_TABLEID tableid,
void _far *pvResult, unsigned long cbMax, unsigned long InfoLevel);
JET_ERR JET_API JetDupCursor(JET_SESID sesid, JET_TABLEID tableid,
JET_TABLEID _far *ptableid, JET_GRBIT grbit);
JET_ERR JET_API JetGetCurrentIndex(JET_SESID sesid, JET_TABLEID tableid,
char _far *szIndexName, unsigned long cchIndexName);
JET_ERR JET_API JetSetCurrentIndex(JET_SESID sesid, JET_TABLEID tableid,
const char _far *szIndexName);
JET_ERR JET_API JetMove(JET_SESID sesid, JET_TABLEID tableid,
long cRow, JET_GRBIT grbit);
JET_ERR JET_API JetMakeKey(JET_SESID sesid, JET_TABLEID tableid,
const void _far *pvData, unsigned long cbData, JET_GRBIT grbit);
JET_ERR JET_API JetSeek(JET_SESID sesid, JET_TABLEID tableid,
JET_GRBIT grbit);
JET_ERR JET_API JetFastFind(JET_SESID sesid, JET_DBID dbid,
JET_TABLEID tableid, const char _far *szExpr, JET_GRBIT grbit,
signed long _far *pcrow);
JET_ERR JET_API JetFastFindBegin(JET_SESID sesid, JET_DBID dbid,
JET_TABLEID tableid, const char _far *szExpr, JET_GRBIT grbit);
JET_ERR JET_API JetFastFindEnd(JET_SESID sesid, JET_TABLEID tableid);
JET_ERR JET_API JetGetBookmark(JET_SESID sesid, JET_TABLEID tableid,
void _far *pvBookmark, unsigned long cbMax,
unsigned long _far *pcbActual);
JET_ERR JET_API JetRefreshLink(JET_SESID sesid, JET_DBID dbid,
const char _far *szLinkName, const char _far *szConnect,
const char _far *szDatabase);
#ifdef _MSC_VER /* CONSIDER: CSL doesn't like this */
JET_ERR JET_API JetRepairDatabase(JET_SESID sesid, const char _far *lszDbFile,
JET_PFNSTATUS pfnstatus);
#endif /* _MSC_VER */
JET_ERR JET_API JetCompact(JET_SESID sesid, const char _far *szDatabaseSrc,
const char _far *szConnectSrc, const char _far *szDatabaseDest,
const char _far *szConnectDest, JET_PFNSTATUS pfnStatus,
JET_GRBIT grbit);
JET_ERR JET_API JetGotoBookmark(JET_SESID sesid, JET_TABLEID tableid,
void _far *pvBookmark, unsigned long cbBookmark);
JET_ERR JET_API JetComputeStats(JET_SESID sesid, JET_TABLEID tableid);
JET_ERR JET_API JetCreateRelationship(JET_SESID sesid,JET_DBID dbidIn,
const char _far *szRelationshipName, const char _far *szObjectName,
const char _far *szColumns, const char _far *szReferencedObject,
const char _far *szReferncedColumns, char _far *szLongName,
unsigned long cbMax, unsigned long _far *pcbActual, JET_GRBIT grbit);
JET_ERR JET_API JetDeleteRelationship(JET_SESID sesid, JET_DBID dbidIn,
const char _far *szName);
JET_ERR JET_API JetGetRelationshipInfo(JET_SESID sesid, JET_DBID dbid,
const char _far *szTableName, const char _far *szRelationship,
void _far *pvResult, unsigned long cbResult);
/*****************************************************************************
SEC API
*****************************************************************************/
JET_ERR JET_API JetGetSidFromName(JET_SESID sesid, const char _far *szName,
void _far *pvSid, unsigned long cbMax, unsigned long _far *pcbActual,
long _far *pfGroup);
JET_ERR JET_API JetGetNameFromSid(JET_SESID sesid,
const void _far *pvSid, unsigned long cbSid,
char _far *szName, unsigned long cchName, long _far *pfGroup);
JET_ERR JET_API JetCreateUser(JET_SESID sesid, const char _far *szUser,
const char _far *szPassword, const char _far *szPin);
JET_ERR JET_API JetChangeUserPassword(JET_SESID sesid,
const char _far *szUser, const char _far *szOldPassword,
const char _far *szNewPassword);
JET_ERR JET_API JetDeleteUser(JET_SESID sesid, const char _far *szUser);
JET_ERR JET_API JetCreateGroup(JET_SESID sesid, const char _far *szGroup,
const char _far *szPin);
JET_ERR JET_API JetAddMember(JET_SESID sesid,
const char _far *szGroup, const char _far *szUser);
JET_ERR JET_API JetRemoveMember(JET_SESID sesid,
const char _far *szGroup, const char _far *szUser);
JET_ERR JET_API JetDeleteGroup(JET_SESID sesid, const char _far *szGroup);
JET_ERR JET_API JetSetAccess(JET_SESID sesid, JET_DBID dbid,
const char _far *szContainerName, const char _far *szObjectName,
const char _far *szName, JET_ACM acm, JET_GRBIT grbit);
JET_ERR JET_API JetGetAccess(JET_SESID sesid, JET_DBID dbid,
const char _far *szContainerName, const char _far *szObjectName,
const char _far *szName, long fIndividual,
JET_ACM _far *pacm, JET_GRBIT _far *pgrbit);
JET_ERR JET_API JetValidateAccess(JET_SESID sesid, JET_DBID dbid,
const char _far *szContainerName, const char _far *szObjectName,
JET_ACM acmRequired);
JET_ERR JET_API JetSetOwner(JET_SESID sesid, JET_DBID dbid,
const char _far *szContainerName, const char _far *szObjectName,
const char _far *szName);
JET_ERR JET_API JetGetOwner(JET_SESID sesid, JET_DBID dbid,
const char _far *szContainerName, const char _far *szObjectName,
char _far *szName, unsigned long cchMax);
/*****************************************************************************
Property Management API
*****************************************************************************/
JET_ERR JET_API JetSetProperty(JET_SESID sesid, JET_DBID dbid,
const char _far *szContainerName, const char _far *szObjectName,
const char _far *szSubObjectName, const char _far *szPropertyName,
void _far *pvData, unsigned long cbData, JET_COLTYP coltyp,
JET_GRBIT grbit);
JET_ERR JET_API JetRetrieveProperty(JET_SESID sesid, JET_DBID dbid,
const char _far *szContainerName, const char _far *szObjectName,
const char _far *szSubObjectName, const char _far *szPropertyName,
void _far *pvData, unsigned long cbData, unsigned long _far *pcbActual,
JET_COLTYP _far *pcoltyp, JET_GRBIT grbit, unsigned long InfoLevel);
JET_ERR JET_API JetSetTableProperty(JET_SESID sesid, JET_TABLEID tableid,
const char _far *szSubObjectName, const char _far *szPropertyName,
void _far *pvData, unsigned long cbData, JET_COLTYP coltyp,
JET_GRBIT grbit);
JET_ERR JET_API JetRetrieveTableProperty(JET_SESID sesid, JET_TABLEID tableid,
const char _far *szSubObjectName, const char _far *szPropertyName,
void _far *pvData, unsigned long cbData, unsigned long _far *pcbActual,
JET_COLTYP _far *pcoltyp, JET_GRBIT grbit, unsigned long InfoLevel);
/*****************************************************************************
LINK API
*****************************************************************************/
JET_ERR JET_API JetCreateLink(JET_SESID sesid, JET_DBID dbid,
const char _far *szLink, JET_DBID dbidFrom, const char _far *szFrom,
JET_GRBIT grbit);
JET_ERR JET_API JetExecuteSql(JET_SESID sesid, JET_DBID dbid,
const char _far *szSql);
/***************************************************************************
Query API
*****************************************************************************/
JET_ERR JET_API JetOpenVtQbe(JET_SESID sesid, const char _far *szExpn,
long _far *plCols, JET_TABLEID _far *ptableid, JET_GRBIT grbit);
JET_ERR JET_API JetCreateQuery(JET_SESID sesid, JET_DBID dbid,
const char _far *szQuery, JET_TABLEID _far *ptableid);
JET_ERR JET_API JetOpenQueryDef(JET_SESID sesid, JET_DBID dbid,
const char _far *szQuery, JET_TABLEID _far *ptableid);
/* CONSIDER: Is rgchSql a zero-terminated string? Maybe it should be for
* consistency.
*/
JET_ERR JET_API JetSetQoSql(JET_SESID sesid, JET_TABLEID tableid,
char _far *rgchSql, unsigned long cchSql, const char _far *szConnect,
JET_GRBIT grbit);
JET_ERR JET_API JetRetrieveQoSql(JET_SESID sesid, JET_TABLEID tableid,
char _far *rgchSql, unsigned long cchMax,
unsigned long _far *pcchActual, void _far *pvConnect,
unsigned long cbConnectMax, unsigned long _far *pcbConnectActual,
JET_GRBIT _far *pgrbit);
JET_ERR JET_API JetCopyQuery(JET_SESID sesid, JET_TABLEID tableidSrc,
JET_DBID dbidDest, const char _far *szQueryDest,
JET_TABLEID _far *ptableidDest);
JET_ERR JET_API JetOpenSVT(JET_SESID sesid, JET_DBID dbid,
const char _far *szQuery, const void _far *pvParameters,
unsigned long cbParameters, unsigned long crowSample, JET_GRBIT grbit,
void _far *pmgblist, unsigned long cbMax, unsigned long _far *pcbActual);
JET_ERR JET_API JetGetQueryParameterInfo(JET_SESID sesid, JET_DBID dbid,
const char _far *szQuery, void _far *pvResult, unsigned long cbMax,
unsigned long _far *pcbActual);
JET_ERR JET_API JetRestartQuery(JET_SESID sesid, JET_TABLEID tableid,
const void _far *pvParameters, unsigned long cbParameters);
JET_ERR JET_API JetSetFatCursor(JET_SESID sesid, JET_TABLEID tableid,
void _far *pvBookmark, unsigned long cbBookmark, unsigned long crowSize);
JET_ERR JET_API JetFillFatCursor(JET_SESID sesid, JET_TABLEID tableid,
void _far *pvBookmark, unsigned long cbBookmark, unsigned long crow,
unsigned long _far *pcrow, JET_GRBIT grbit);
JET_ERR JET_API JetExecuteTempQuery(JET_SESID sesid, JET_DBID dbid,
JET_TABLEID tableid, const void _far *pvParameters,
unsigned long cbParameters, JET_GRBIT grbit, JET_TABLEID _far *ptableid);
JET_ERR JET_API JetExecuteTempSVT(JET_SESID sesid, JET_DBID dbid,
JET_TABLEID tableid, const void _far *pvParameters,
unsigned long cbParameters, unsigned long crowSample, JET_GRBIT grbit,
void _far *pmgblist, unsigned long cbMax, unsigned long _far *pcbActual);
JET_ERR JET_API JetGetTempQueryColumnInfo(JET_SESID sesid, JET_DBID dbid,
JET_TABLEID tableid, const char _far *szColumnName,
void _far *pvResult, unsigned long cbMax, unsigned long InfoLevel);
JET_ERR JET_API JetGetTempQueryParameterInfo(JET_SESID sesid, JET_DBID dbid,
JET_TABLEID tableid, void _far *pvResult, unsigned long cbMax,
unsigned long _far *pcbActual);
JET_ERR JET_API JetValidateData(JET_SESID sesid, JET_TABLEID tableidBase,
JET_TABLEID _far *ptableid );
/***************************************************************************
API for Installable ISAMs
****************************************************************************/
typedef ULONG_PTR JET_VSESID; /* Received from dispatcher */
struct tagVDBFNDEF;
typedef ULONG_PTR JET_VDBID; /* Received from dispatcher */
JET_ERR JET_API JetAllocateDbid(JET_SESID sesid, JET_DBID _far *pdbid, JET_VDBID vdbid, const struct tagVDBFNDEF _far *pvdbfndef, JET_VSESID vsesid);
JET_ERR JET_API JetUpdateDbid(JET_SESID sesid, JET_DBID dbid, JET_VDBID vdbid, const struct tagVDBFNDEF _far *pvdbfndef);
JET_ERR JET_API JetReleaseDbid(JET_SESID sesid, JET_DBID dbid);
struct tagVTFNDEF;
typedef ULONG_PTR JET_VTID; /* Received from dispatcher */
JET_ERR JET_API JetAllocateTableid(JET_SESID sesid, JET_TABLEID _far *ptableid, JET_VTID vtid, const struct tagVTFNDEF _far *pvtfndef, JET_VSESID vsesid);
JET_ERR JET_API JetUpdateTableid(JET_SESID sesid, JET_TABLEID tableid, JET_VTID vtid, const struct tagVTFNDEF _far *pvtfndef);
JET_ERR JET_API JetReleaseTableid(JET_SESID sesid, JET_TABLEID tableid);
JET_ERR JET_API JetOpenTempTable(JET_SESID sesid,
const JET_COLUMNDEF _far *prgcolumndef, unsigned long ccolumn,
JET_GRBIT grbit, JET_TABLEID _far *ptableid,
JET_COLUMNID _far *prgcolumnid);
/***************************************************************************
MISC JET API
****************************************************************************/
JET_ERR JET_API JetStringCompare(char _far *pb1, unsigned long cb1,
char _far *pb2, unsigned long cb2, unsigned long sort,
long _far *plResult);
/***************************************************************************
ADDITIONAL JET BLUE API
****************************************************************************/
JET_ERR JET_API JetBackup( const char _far *szBackupPath, JET_GRBIT grbit );
JET_ERR JET_API JetRestore(const char _far *sz, int crstmap, JET_RSTMAP *rgrstmap, JET_PFNSTATUS pfn );
JET_ERR JET_API JetSetIndexRange(JET_SESID sesid,
JET_TABLEID tableidSrc, JET_GRBIT grbit);
JET_ERR JET_API JetIndexRecordCount(JET_SESID sesid,
JET_TABLEID tableid, unsigned long _far *pcrec, unsigned long crecMax );
JET_ERR JET_API JetRetrieveKey(JET_SESID sesid,
JET_TABLEID tableid, void _far *pvData, unsigned long cbMax,
unsigned long _far *pcbActual, JET_GRBIT grbit );
#ifdef JETSER
JET_ERR JET_API JetGetChecksum( JET_SESID sesid,
JET_TABLEID tableid, unsigned long _far *pulChecksum );
JET_ERR JET_API JetGetObjidFromName(JET_SESID sesid,
JET_DBID dbid, const char _far *szContainerName,
const char _far *szObjectName,
unsigned long _far *pulObjectId );
#endif
#endif /* _JET_NOPROTOTYPES */
#undef _far
#pragma pack()
#ifdef __cplusplus
}
#endif
#endif /* _JET_INCLUDED */
#endif __JET500