BuildCubeE/BootableMPW/Interfaces/CIncludes/DatabaseAccess.h

222 lines
6.8 KiB
C

/************************************************************
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 <Resources.h>
#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