/************************************************************ Created: Tuesday, September 10, 1991 at 12:57 PM DatabaseAccess.h C Interface to the Macintosh Libraries Copyright Apple Computer, Inc. 1989-1991 All rights reserved ************************************************************/ #ifndef __DATABASEACCESS__ #define __DATABASEACCESS__ #ifndef __RESOURCES__ #include #endif enum { /* error and status codes */ rcDBNull = -800, rcDBValue = -801, rcDBError = -802, rcDBBadType = -803, rcDBBreak = -804, rcDBExec = -805, rcDBBadSessID = -806, rcDBBadSessNum = -807, /* bad session number for DBGetConnInfo */ rcDBBadDDEV = -808, /* bad ddev specified on DBInit */ rcDBAsyncNotSupp = -809, /* ddev does not support async calls */ rcDBBadAsyncPB = -810, /* tried to kill a bad pb */ rcDBNoHandler = -811, /* no app handler for specified data type */ rcDBWrongVersion = -812, /* incompatible versions */ rcDBPackNotInited = -813, /* attempt to call other routine before InitDBPack */ /* messages for status functions for DBStartQuery */ kDBUpdateWind = 0, kDBAboutToInit = 1, kDBInitComplete = 2, kDBSendComplete = 3, kDBExecComplete = 4, kDBStartQueryComplete = 5 }; enum { /* messages for status functions for DBGetQueryResults */ kDBGetItemComplete = 6, kDBGetQueryResultsComplete = 7, /* data type codes */ #define typeNone 'none' #define typeDate 'date' #define typeTime 'time' #define typeTimeStamp 'tims' #define typeDecimal 'deci' #define typeMoney 'mone' #define typeVChar 'vcha' #define typeVBin 'vbin' #define typeLChar 'lcha' #define typeLBin 'lbin' #define typeDiscard 'disc' /* "dummy" types for DBResultsToText */ #define typeUnknown 'unkn' #define typeColBreak 'colb' #define typeRowBreak 'rowb' /* pass this in to DBGetItem for any data type */ #define typeAnyType (DBType)0 /* infinite timeout value for DBGetItem */ kDBWaitForever = -1, /* flags for DBGetItem */ kDBLastColFlag = 0x0001, kDBNullFlag = 0x0004 }; typedef OSType DBType; /* structure for asynchronous parameter block */ struct DBAsyncParamBlockRec { ProcPtr completionProc; /* pointer to completion routine */ OSErr result; /* result of call */ long userRef; /* for application's use */ long ddevRef; /* for ddev's use */ long reserved; /* for internal use */ }; typedef struct DBAsyncParamBlockRec DBAsyncParamBlockRec; typedef DBAsyncParamBlockRec *DBAsyncParmBlkPtr; /* structure for resource list in QueryRecord */ struct ResListElem { ResType theType; /* resource type */ short id; /* resource id */ }; typedef struct ResListElem ResListElem; typedef ResListElem *ResListPtr, **ResListHandle; /* structure for query list in QueryRecord */ typedef Handle **QueryListHandle; struct QueryRecord { short version; /* version */ short id; /* id of 'qrsc' this came from */ Handle queryProc; /* handle to query def proc */ Str63 ddevName; /* ddev name */ Str255 host; /* host name */ Str255 user; /* user name */ Str255 password; /* password */ Str255 connStr; /* connection string */ short currQuery; /* index of current query */ short numQueries; /* number of queries in list */ QueryListHandle queryList; /* handle to array of handles to text */ short numRes; /* number of resources in list */ ResListHandle resList; /* handle to array of resource list elements */ Handle dataHandle; /* for use by query def proc */ long refCon; /* for use by application */ }; typedef struct QueryRecord QueryRecord; typedef QueryRecord *QueryPtr, **QueryHandle; /* structure of column types array in ResultsRecord */ typedef Handle ColTypesHandle; /* structure for column info in ResultsRecord */ struct DBColInfoRecord { short len; short places; short flags; }; typedef struct DBColInfoRecord DBColInfoRecord; typedef Handle ColInfoHandle; /* structure of results returned by DBGetResults */ struct ResultsRecord { short numRows; /* number of rows in result */ short numCols; /* number of columns per row */ ColTypesHandle colTypes; /* data type array */ Handle colData; /* actual results */ ColInfoHandle colInfo; /* DBColInfoRecord array */ }; typedef struct ResultsRecord ResultsRecord; #ifdef __cplusplus extern "C" { #endif pascal OSErr InitDBPack(void) = {0x3F3C,0x0004,0x303C,0x0100,0xA82F}; pascal OSErr DBInit(long *sessID,ConstStr63Param ddevName,ConstStr255Param host, ConstStr255Param user,ConstStr255Param passwd,ConstStr255Param connStr, DBAsyncParmBlkPtr asyncPB) = {0x303C,0x0E02,0xA82F}; pascal OSErr DBEnd(long sessID,DBAsyncParmBlkPtr asyncPB) = {0x303C,0x0403,0xA82F}; pascal OSErr DBGetConnInfo(long sessID,short sessNum,long *returnedID,long *version, Str63 ddevName,Str255 host,Str255 user,Str255 network,Str255 connStr,long *start, OSErr *state,DBAsyncParmBlkPtr asyncPB) = {0x303C,0x1704,0xA82F}; pascal OSErr DBGetSessionNum(long sessID,short *sessNum,DBAsyncParmBlkPtr asyncPB) = {0x303C,0x0605,0xA82F}; pascal OSErr DBSend(long sessID,char *text,short len,DBAsyncParmBlkPtr asyncPB) = {0x303C,0x0706,0xA82F}; pascal OSErr DBSendItem(long sessID,DBType dataType,short len,short places, short flags,void *buffer,DBAsyncParmBlkPtr asyncPB) = {0x303C,0x0B07,0xA82F}; pascal OSErr DBExec(long sessID,DBAsyncParmBlkPtr asyncPB) = {0x303C,0x0408,0xA82F}; pascal OSErr DBState(long sessID,DBAsyncParmBlkPtr asyncPB) = {0x303C,0x0409,0xA82F}; pascal OSErr DBGetErr(long sessID,long *err1,long *err2,Str255 item1,Str255 item2, Str255 errorMsg,DBAsyncParmBlkPtr asyncPB) = {0x303C,0x0E0A,0xA82F}; pascal OSErr DBBreak(long sessID,Boolean abort,DBAsyncParmBlkPtr asyncPB) = {0x303C,0x050B,0xA82F}; pascal OSErr DBGetItem(long sessID,long timeout,DBType *dataType,short *len, short *places,short *flags,void *buffer,DBAsyncParmBlkPtr asyncPB) = {0x303C,0x100C,0xA82F}; pascal OSErr DBUnGetItem(long sessID,DBAsyncParmBlkPtr asyncPB) = {0x303C,0x040D,0xA82F}; pascal OSErr DBKill(DBAsyncParmBlkPtr asyncPB) = {0x303C,0x020E,0xA82F}; pascal OSErr DBGetNewQuery(short queryID,QueryHandle *query) = {0x303C,0x030F,0xA82F}; pascal OSErr DBDisposeQuery(QueryHandle query) = {0x303C,0x0210,0xA82F}; pascal OSErr DBStartQuery(long *sessID,QueryHandle query,ProcPtr statusProc, DBAsyncParmBlkPtr asyncPB) = {0x303C,0x0811,0xA82F}; pascal OSErr DBGetQueryResults(long sessID,ResultsRecord *results,long timeout, ProcPtr statusProc,DBAsyncParmBlkPtr asyncPB) = {0x303C,0x0A12,0xA82F}; pascal OSErr DBResultsToText(ResultsRecord *results,Handle *theText) = {0x303C,0x0413,0xA82F}; pascal OSErr DBInstallResultHandler(DBType dataType,ProcPtr theHandler, Boolean isSysHandler) = {0x303C,0x0514,0xA82F}; pascal OSErr DBRemoveResultHandler(DBType dataType) = {0x303C,0x0215,0xA82F}; pascal OSErr DBGetResultHandler(DBType dataType,ProcPtr *theHandler,Boolean getSysHandler) = {0x303C,0x0516,0xA82F}; #ifdef __cplusplus } #endif #endif