mirror of
https://github.com/elliotnunn/supermario.git
synced 2024-11-19 15:32:15 +00:00
266 lines
8.7 KiB
OpenEdge ABL
266 lines
8.7 KiB
OpenEdge ABL
|
|
{
|
|
Created: Monday, July 22, 1991 at 6:26 PM
|
|
DatabaseAccess.p
|
|
Pascal Interface to the Macintosh Libraries
|
|
|
|
Copyright Apple Computer, Inc. 1989-1991
|
|
All rights reserved
|
|
This file is used in these builds: ROM System
|
|
|
|
|
|
Change History (most recent first):
|
|
|
|
<20> 7/23/91 JL Match C file: Fixed comments. Checked in File from database.
|
|
<19> 6/14/91 JL Checked in official MPW 3.2ƒ version. Updated copyright date.
|
|
Removed conditionalized constants: typeBoolean - > typeFloat.
|
|
They belong in AppleEvents.p
|
|
<18> 9/12/90 JAL Fixed corrupted last half of file.
|
|
<17> 9/7/90 ngk conditionalize some data types that are also defined in
|
|
AppleEvents.p
|
|
<16> 8/2/90 JSM Add kDBNullFlag.
|
|
<15> 7/1/90 JSM Change typeChar constant from 'char' to 'TEXT'.
|
|
<14> 7/1/90 JSM Update some DBType constants to conform to AppleEvents
|
|
conventions.
|
|
<13> 4/27/90 JSM Remove QuitDBPack.
|
|
<12> 3/13/90 JSM Remove kDBGetItemEndOfRow message, add DBColInfoRecord, update
|
|
ResultsRecord, bump version number on InitDBPack, change names
|
|
of ResultsHandler routines to ResultHandler.
|
|
<11> 2/26/90 JSM Change selectors to use new dispatcher, eliminate gaps between
|
|
return codes, bump version on InitDBPack.
|
|
<10> 2/22/90 JSM Add kDBStartQueryComplete.
|
|
<9> 2/8/90 JSM Restore change history.
|
|
<7> 2/6/90 JSM Remove rcDBCancel and rcDBStatusCancel, add
|
|
kDBGetQueryResultsComplete.
|
|
<6> 2/5/90 JSM Remove obsolete return code rcDBBadCol.
|
|
<4> 1/4/90 JSM Change some variable names in response to suggestions from
|
|
documentation.
|
|
<3> 12/22/89 JSM Add kDBLastColFlag.
|
|
<2> 12/19/89 JSM Cleanup after initial checkin.
|
|
<1> 12/19/89 JSM Adding to public includes for the first time.
|
|
|
|
}
|
|
|
|
|
|
{$IFC UNDEFINED UsingIncludes}
|
|
{$SETC UsingIncludes := 0}
|
|
{$ENDC}
|
|
|
|
{$IFC NOT UsingIncludes}
|
|
UNIT DatabaseAccess;
|
|
INTERFACE
|
|
{$ENDC}
|
|
|
|
{$IFC UNDEFINED UsingDatabaseAccess}
|
|
{$SETC UsingDatabaseAccess := 1}
|
|
|
|
{$I+}
|
|
{$SETC DatabaseAccessIncludes := UsingIncludes}
|
|
{$SETC UsingIncludes := 1}
|
|
{$IFC UNDEFINED UsingResources}
|
|
{$I $$Shell(PInterfaces)Resources.p}
|
|
{$ENDC}
|
|
{$SETC UsingIncludes := DatabaseAccessIncludes}
|
|
|
|
CONST
|
|
|
|
{ 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;
|
|
|
|
{ messages for status functions for DBGetQueryResults }
|
|
kDBGetItemComplete = 6;
|
|
kDBGetQueryResultsComplete = 7;
|
|
|
|
{ data type codes }
|
|
typeNone = 'none';
|
|
typeDate = 'date';
|
|
typeTime = 'time';
|
|
typeTimeStamp = 'tims';
|
|
typeDecimal = 'deci';
|
|
typeMoney = 'mone';
|
|
typeVChar = 'vcha';
|
|
typeVBin = 'vbin';
|
|
typeLChar = 'lcha';
|
|
typeLBin = 'lbin';
|
|
typeDiscard = 'disc';
|
|
|
|
{ "dummy" types for DBResultsToText }
|
|
typeUnknown = 'unkn';
|
|
typeColBreak = 'colb';
|
|
typeRowBreak = 'rowb';
|
|
|
|
{ pass this in to DBGetItem for any data type }
|
|
typeAnyType = 0;
|
|
|
|
{ infinite timeout value for DBGetItem }
|
|
kDBWaitForever = -1;
|
|
|
|
{ flags for DBGetItem }
|
|
kDBLastColFlag = $0001;
|
|
kDBNullFlag = $0004;
|
|
|
|
TYPE
|
|
DBType = OSType;
|
|
|
|
{ structure for asynchronous parameter block }
|
|
DBAsyncParmBlkPtr = ^DBAsyncParamBlockRec;
|
|
DBAsyncParamBlockRec = RECORD
|
|
completionProc: ProcPtr; { pointer to completion routine }
|
|
result: OSErr; { result of call }
|
|
userRef: LONGINT; { for application's use }
|
|
ddevRef: LONGINT; { for ddev's use }
|
|
reserved: LONGINT; { for internal use }
|
|
END;
|
|
|
|
{ structure for resource list in QueryRecord }
|
|
ResListElem = RECORD
|
|
theType: ResType; { resource type }
|
|
id: INTEGER; { resource id }
|
|
END;
|
|
|
|
ResListPtr = ^ResListArray;
|
|
ResListHandle = ^ResListPtr;
|
|
|
|
ResListArray = ARRAY [0..255] OF ResListElem;
|
|
|
|
{ structure for query list in QueryRecord }
|
|
QueryListPtr = ^QueryArray;
|
|
QueryListHandle = ^QueryListPtr;
|
|
|
|
QueryArray = ARRAY [0..255] OF Handle;
|
|
|
|
QueryPtr = ^QueryRecord;
|
|
QueryHandle = ^QueryPtr;
|
|
QueryRecord = RECORD
|
|
version: INTEGER; { version }
|
|
id: INTEGER; { id of 'qrsc' this came from }
|
|
queryProc: Handle; { handle to query def proc }
|
|
ddevName: Str63; { ddev name }
|
|
host: Str255; { host name }
|
|
user: Str255; { user name }
|
|
password: Str255; { password }
|
|
connStr: Str255; { connection string }
|
|
currQuery: INTEGER; { index of current query }
|
|
numQueries: INTEGER; { number of queries in list }
|
|
queryList: QueryListHandle; { handle to array of handles to text }
|
|
numRes: INTEGER; { number of resources in list }
|
|
resList: ResListHandle; { handle to array of resource list elements }
|
|
dataHandle: Handle; { for use by query def proc }
|
|
refCon: LONGINT; { for use by application }
|
|
END;
|
|
|
|
{ structure of column types array in ResultsRecord }
|
|
ColTypesPtr = ^ColTypesArray;
|
|
ColTypesHandle = ^ColTypesPtr;
|
|
|
|
ColTypesArray = ARRAY [0..255] OF DBType;
|
|
|
|
{ structure for column info in ResultsRecord }
|
|
DBColInfoRecord = RECORD
|
|
len: INTEGER;
|
|
places: INTEGER;
|
|
flags: INTEGER;
|
|
END;
|
|
|
|
ColInfoPtr = ^ColInfoArray;
|
|
ColInfoHandle = ^ColInfoPtr;
|
|
|
|
ColInfoArray = ARRAY [0..255] OF DBColInfoRecord;
|
|
|
|
{ structure of results returned by DBGetResults }
|
|
ResultsRecord = RECORD
|
|
numRows: INTEGER; { number of rows in result }
|
|
numCols: INTEGER; { number of columns per row }
|
|
colTypes: ColTypesHandle; { data type array }
|
|
colData: Handle; { actual results }
|
|
colInfo: ColInfoHandle; { DBColInfoRecord array }
|
|
END;
|
|
|
|
|
|
FUNCTION InitDBPack: OSErr;
|
|
INLINE $3F3C,$0004,$303C,$0100,$A82F;
|
|
FUNCTION DBInit(VAR sessID: LONGINT;ddevName: Str63;host: Str255;user: Str255;
|
|
passwd: Str255;connStr: Str255;asyncPB: DBAsyncParmBlkPtr): OSErr;
|
|
INLINE $303C,$0E02,$A82F;
|
|
FUNCTION DBEnd(sessID: LONGINT;asyncPB: DBAsyncParmBlkPtr): OSErr;
|
|
INLINE $303C,$0403,$A82F;
|
|
FUNCTION DBGetConnInfo(sessID: LONGINT;sessNum: INTEGER;VAR returnedID: LONGINT;
|
|
VAR version: LONGINT;VAR ddevName: Str63;VAR host: Str255;VAR user: Str255;
|
|
VAR network: Str255;VAR connStr: Str255;VAR start: LONGINT;VAR state: OSErr;
|
|
asyncPB: DBAsyncParmBlkPtr): OSErr;
|
|
INLINE $303C,$1704,$A82F;
|
|
FUNCTION DBGetSessionNum(sessID: LONGINT;VAR sessNum: INTEGER;asyncPB: DBAsyncParmBlkPtr): OSErr;
|
|
INLINE $303C,$0605,$A82F;
|
|
FUNCTION DBSend(sessID: LONGINT;text: Ptr;len: INTEGER;asyncPB: DBAsyncParmBlkPtr): OSErr;
|
|
INLINE $303C,$0706,$A82F;
|
|
FUNCTION DBSendItem(sessID: LONGINT;dataType: DBType;len: INTEGER;places: INTEGER;
|
|
flags: INTEGER;buffer: Ptr;asyncPB: DBAsyncParmBlkPtr): OSErr;
|
|
INLINE $303C,$0B07,$A82F;
|
|
FUNCTION DBExec(sessID: LONGINT;asyncPB: DBAsyncParmBlkPtr): OSErr;
|
|
INLINE $303C,$0408,$A82F;
|
|
FUNCTION DBState(sessID: LONGINT;asyncPB: DBAsyncParmBlkPtr): OSErr;
|
|
INLINE $303C,$0409,$A82F;
|
|
FUNCTION DBGetErr(sessID: LONGINT;VAR err1: LONGINT;VAR err2: LONGINT;VAR item1: Str255;
|
|
VAR item2: Str255;VAR errorMsg: Str255;asyncPB: DBAsyncParmBlkPtr): OSErr;
|
|
INLINE $303C,$0E0A,$A82F;
|
|
FUNCTION DBBreak(sessID: LONGINT;abort: BOOLEAN;asyncPB: DBAsyncParmBlkPtr): OSErr;
|
|
INLINE $303C,$050B,$A82F;
|
|
FUNCTION DBGetItem(sessID: LONGINT;timeout: LONGINT;VAR dataType: DBType;
|
|
VAR len: INTEGER;VAR places: INTEGER;VAR flags: INTEGER;buffer: Ptr;asyncPB: DBAsyncParmBlkPtr): OSErr;
|
|
INLINE $303C,$100C,$A82F;
|
|
FUNCTION DBUnGetItem(sessID: LONGINT;asyncPB: DBAsyncParmBlkPtr): OSErr;
|
|
INLINE $303C,$040D,$A82F;
|
|
FUNCTION DBKill(asyncPB: DBAsyncParmBlkPtr): OSErr;
|
|
INLINE $303C,$020E,$A82F;
|
|
FUNCTION DBGetNewQuery(queryID: INTEGER;VAR query: QueryHandle): OSErr;
|
|
INLINE $303C,$030F,$A82F;
|
|
FUNCTION DBDisposeQuery(query: QueryHandle): OSErr;
|
|
INLINE $303C,$0210,$A82F;
|
|
FUNCTION DBStartQuery(VAR sessID: LONGINT;query: QueryHandle;statusProc: ProcPtr;
|
|
asyncPB: DBAsyncParmBlkPtr): OSErr;
|
|
INLINE $303C,$0811,$A82F;
|
|
FUNCTION DBGetQueryResults(sessID: LONGINT;VAR results: ResultsRecord;timeout: LONGINT;
|
|
statusProc: ProcPtr;asyncPB: DBAsyncParmBlkPtr): OSErr;
|
|
INLINE $303C,$0A12,$A82F;
|
|
FUNCTION DBResultsToText(results: ResultsRecord;VAR theText: Handle): OSErr;
|
|
INLINE $303C,$0413,$A82F;
|
|
FUNCTION DBInstallResultHandler(dataType: DBType;theHandler: ProcPtr;isSysHandler: BOOLEAN): OSErr;
|
|
INLINE $303C,$0514,$A82F;
|
|
FUNCTION DBRemoveResultHandler(dataType: DBType): OSErr;
|
|
INLINE $303C,$0215,$A82F;
|
|
FUNCTION DBGetResultHandler(dataType: DBType;VAR theHandler: ProcPtr;getSysHandler: BOOLEAN): OSErr;
|
|
INLINE $303C,$0516,$A82F;
|
|
|
|
|
|
{$ENDC} { UsingDatabaseAccess }
|
|
|
|
{$IFC NOT UsingIncludes}
|
|
END.
|
|
{$ENDC}
|
|
|