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.
156 lines
4.4 KiB
156 lines
4.4 KiB
#ifdef SYSTABLES
|
|
|
|
typedef struct _cdesc /* Column Description */
|
|
{
|
|
char *szColName; /* Column Name */
|
|
JET_COLTYP coltyp; /* Column Type */
|
|
JET_GRBIT grbit; /* Flag bits */
|
|
ULONG ulMaxLen; /* Max Length of Column */
|
|
} CDESC;
|
|
|
|
|
|
typedef struct _idesc /* Index Description */
|
|
{
|
|
char *szIdxName; /* Index Name */
|
|
char *szIdxKeys; /* Key String */
|
|
JET_GRBIT grbit; /* Flag bits */
|
|
} IDESC;
|
|
|
|
|
|
typedef struct {
|
|
const char *szName;
|
|
CODECONST(CDESC) *pcdesc;
|
|
CODECONST(IDESC) *pidesc;
|
|
BYTE ccolumn;
|
|
BYTE cindex;
|
|
CPG cpg;
|
|
JET_COLUMNID *rgcolumnid;
|
|
} SYSTABLEDEF;
|
|
|
|
|
|
#define itableSo 0 /* MSysObjects */
|
|
#define itableSc 1 /* MSysColumns */
|
|
#define itableSi 2 /* MSysIndexes */
|
|
#define itableSa 3 /* MSysACEs */
|
|
#define itableSq 4 /* MSysQueries */
|
|
#define itableSr 5 /* MSysRelationShips */
|
|
|
|
#define iMSO_Id 0
|
|
#define iMSO_ParentId 1
|
|
#define iMSO_Name 2
|
|
#define iMSO_Type 3
|
|
#define iMSO_DateCreate 4
|
|
#define iMSO_DateUpdate 5
|
|
#define iMSO_Rgb 6
|
|
#define iMSO_Lv 7
|
|
#define iMSO_Owner 8
|
|
#define iMSO_Database 9
|
|
#define iMSO_Connect 10
|
|
#define iMSO_ForeignName 11
|
|
#define iMSO_RmtInfoShort 12
|
|
#define iMSO_RmtInfoLong 13
|
|
#define iMSO_Flags 14
|
|
#define iMSO_LvExtra 15
|
|
#define iMSO_Description 16
|
|
#define iMSO_LvModule 17
|
|
#define iMSO_LvProp 18
|
|
#define iMSO_Pages 19
|
|
#define iMSO_Density 20
|
|
|
|
#define iMSC_ObjectId 0
|
|
#define iMSC_Name 1
|
|
#define iMSC_ColumnId 2
|
|
#define iMSC_Coltyp 3
|
|
#define iMSC_FAutoincrement 4
|
|
#define iMSC_FDisallowNull 5
|
|
#define iMSC_FVersion 6
|
|
#define iMSC_CodePage 7
|
|
#define iMSC_LanguageId 8
|
|
#define iMSC_Country 9
|
|
#define iMSC_FRestricted 10
|
|
#define iMSC_RmtInfoShort 11
|
|
#define iMSC_RmtInfoLong 12
|
|
#define iMSC_Description 13
|
|
#define iMSC_LvExtra 14
|
|
#define iMSC_POrder 15
|
|
|
|
#define iMSI_ObjectId 0
|
|
#define iMSI_Name 1
|
|
#define iMSI_FUnique 2
|
|
#define iMSI_FPrimary 3
|
|
#define iMSI_FDisallowNull 4
|
|
#define iMSI_FExcludeAllNull 5
|
|
#define iMSI_FClustered 6
|
|
#define iMSI_MatchType 7
|
|
#define iMSI_UpdateAction 8
|
|
#define iMSI_DeleteAction 9
|
|
#define iMSI_ObjectIdReference 10
|
|
#define iMSI_IdxidReference 11
|
|
#define iMSI_RgkeydReference 12
|
|
#define iMSI_RglocaleReference 13
|
|
#define iMSI_FDontEnforce 14
|
|
#define iMSI_RmtInfoShort 15
|
|
#define iMSI_RmtInfoLong 16
|
|
#define iMSI_LvExtra 17
|
|
#define iMSI_Description 18
|
|
#define iMSI_Density 19
|
|
// UNDONE: include later
|
|
// #define iMSI_LanguageId 20
|
|
// #define iMSI_Country 21
|
|
|
|
|
|
/* max number of columns
|
|
/**/
|
|
#define ilineSxMax 21
|
|
|
|
#define CheckTableObject( szTable ) \
|
|
{ \
|
|
ERR err; \
|
|
OBJID objid; \
|
|
JET_OBJTYP objtyp; \
|
|
\
|
|
err = ErrFindObjidFromIdName( ppib, \
|
|
dbid, \
|
|
objidTblContainer, \
|
|
szTable, \
|
|
&objid, \
|
|
&objtyp ); \
|
|
if ( err >= JET_errSuccess ) \
|
|
{ \
|
|
if ( objtyp == JET_objtypQuery ) \
|
|
return JET_errQueryNotSupported; \
|
|
if ( objtyp == JET_objtypLink ) \
|
|
return JET_errLinkNotSupported; \
|
|
if ( objtyp == JET_objtypSQLLink ) \
|
|
return JET_errSQLLinkNotSupported; \
|
|
} \
|
|
else \
|
|
return err; \
|
|
}
|
|
|
|
/* prototypes
|
|
/**/
|
|
ERR ErrSysTabCreate( PIB *ppib, DBID dbid );
|
|
ERR ErrSysTabInsert( PIB *ppib, DBID dbid, INT itable, LINE rgline[], OBJID objid );
|
|
ERR ErrSysTabDelete( PIB *ppib, DBID dbid, INT itable, CHAR *szName, OBJID objid );
|
|
ERR ErrSysTabRename(
|
|
PIB *ppib,
|
|
DBID dbid,
|
|
CHAR *szNew,
|
|
CHAR *szName,
|
|
OBJID objid,
|
|
INT itable );
|
|
ERR ErrSysTabTimestamp( PIB *ppib, DBID dbid, OBJID objid );
|
|
ERR ErrFindObjidFromIdName(
|
|
PIB *ppib,
|
|
DBID dbid,
|
|
OBJID objidParentId,
|
|
const CHAR *lszName,
|
|
OBJID *pobjid,
|
|
JET_OBJTYP *pobjtyp );
|
|
ERR ErrFindNameFromObjid( PIB *ppib, DBID dbid, OBJID objid, OUTLINE *poutName );
|
|
ERR VTAPI ErrIsamGetObjidFromName( JET_SESID sesid, JET_DBID vdbid, const char *lszCtrName, const char *lszObjName, OBJID *pobjid );
|
|
ERR VTAPI ErrIsamCreateObject( JET_SESID sesid, JET_DBID vdbid, OBJID objidParentId, const char *szName, JET_OBJTYP objtyp );
|
|
ERR VTAPI ErrIsamDeleteObject( JET_SESID sesid, JET_DBID vdbid, OBJID objid );
|
|
|
|
#endif /* SYSTABLES */
|