; Created: Monday, March 20, 1989 at 10:00:00 AM ; ; File: DatabaseAccess.a ; ; Assembler Interface to the Macintosh Libraries ; Copyright Apple Computer, Inc. 1989-90 ; All Rights Reserved ; ; Change History (most recent first): ; ; <21> 1/30/91 gbm sab, #38: Change the Ôalready including this fileÕ variable to ; all uppercase (for security reasons) ; <20> 8/2/90 JSM Add kDBNullFlag. ; <19> 7/1/90 JSM Change typeChar constant from 'char' to 'TEXT'. ; <18> 7/1/90 JSM Update some DBType constants to conform to AppleEvents ; conventions. ; <15> 4/27/90 JSM Remove QuitDBPack. ; <14> 3/13/90 JSM Remove kDBGetItemEndOfRow message, add DBColInfoRecord, update ; ResultsRecord, bump version number on InitDBPack, change names ; of ResultsHandler routines to ResultHandler. ; <13> 2/26/90 JSM Change selectors to use new dispatcher, eliminate gaps between ; return codes, bump version on InitDBPack. ; <12> 2/22/90 JSM Add kDBStartQueryComplete. ; <10> 2/8/90 JSM Restore change history. ; <8> 2/6/90 JSM Remove rcDBCancel and rcDBStatusCancel, add ; kDBGetQueryResultsComplete. ; <7> 2/5/90 JSM Remove obsolete return code rcDBBadCol. ; <5> 1/4/90 JSM Change connstr to connStr. ; <4> 12/22/89 JSM Add kDBLastColFlag. ; <3> 12/19/89 JSM Cleanup again after fixing AddChange. ; <2> 12/19/89 JSM Cleanup after initial checkin. ; <1> 12/19/89 JSM Adding to public includes for the first time. ; <2.2> 11/7/89 JSM Added status functions, changed DBUnGetVal to DBUnGetItem, ; bumped version on InitDBPack. ; <2.1> 10/6/89 JSM Updated to make SnarfMan a PACK. ; <2.0> 8/29/89 JSM Updated for new version 2 API. ; <1.8> 8/7/89 JSM Added new rc's, added colLens to ResultsRecord, added kill and ; results-to-text stuff. ; <1.7> 7/26/89 JSM Added new return code rcDBAsyncNotSupp. ; <1.6> 7/19/89 JSM Changed 'type' to 'theType' in ResListElem. ; <1.5> 6/22/89 JSM Removed handle in ResListElem. ; <1.4> 6/9/89 JSM Added 4 byte data types, ddevRef to async param block. ; <1.3> 5/31/89 JSM Removed rcDBReady and rcDBSize errors, added async support. ; <1.2> 5/18/89 JSM Updated selectors, changed for new trap dispatch mechanism, ; added version and id to QueryRecord. ; <1.1> 4/28/89 JSM Added high-level information. ; <1.0> 4/11/89 JSM Added to EASE for the first time. ;___________________________________________________________________________ IF &TYPE('__INCLUDINGDATABASEACCESS__') = 'UNDEFINED' THEN __INCLUDINGDATABASEACCESS__ SET 1 ; error and status codes rcDBNull EQU -800 rcDBValue EQU -801 rcDBError EQU -802 rcDBBadType EQU -803 rcDBBreak EQU -804 rcDBExec EQU -805 rcDBBadSessID EQU -806 rcDBBadSessNum EQU -807 rcDBBadDDEV EQU -808 rcDBAsyncNotSupp EQU -809 rcDBBadAsyncPB EQU -810 rcDBNoHandler EQU -811 rcDBWrongVersion EQU -812 rcDBPackNotInited EQU -813 ; messages for status functions for DBStartQuery kDBUpdateWind EQU 0 kDBAboutToInit EQU 1 kDBInitComplete EQU 2 kDBSendComplete EQU 3 kDBExecComplete EQU 4 kDBStartQueryComplete EQU 5 ; messages for status functions for DBGetQueryResults kDBGetItemComplete EQU 6 kDBGetQueryResultsComplete EQU 7 ; DBType codes typeNone EQU 'none' typeBoolean EQU 'bool' typeSMInt EQU 'shor' typeInteger EQU 'long' typeSMFloat EQU 'sing' typeFloat EQU 'doub' typeDate EQU 'date' typeTime EQU 'time' typeTimeStamp EQU 'tims' typeChar EQU 'TEXT' typeDecimal EQU 'deci' typeMoney EQU 'mone' typeVChar EQU 'vcha' typeVBin EQU 'vbin' typeLChar EQU 'lcha' typeLBin EQU 'lbin' typeDiscard EQU 'disc' ; "dummy" types for DBResultsToText typeUnknown EQU 'unkn' typeColBreak EQU 'colb' typeRowBreak EQU 'rowb' ; pass this in to DBGetItem for any data type typeAnyType EQU 0 ; infinite timeout value for DBGetItem kDBWaitForever EQU -1 ; flags for DBGetItem kDBLastColFlag EQU 1 kDBNullFlag EQU 4 ; structure for asynchronous parameter block DBAsyncParamBlockRec RECORD 0 completionProc DS.L 1 ; pointer to completion routine result DS.W 1 ; result of call userRef DS.L 1 ; for application's use ddevRef DS.L 1 ; for ddev's use reserved DS.L 1 ; for internal use DBAsyncParmBlkSize EQU * ENDR ; structure for resource list in QueryRecord ResListElem RECORD 0 theType DS.L 1 id DS.W 1 ResListElemSize EQU * ENDR QueryRecord RECORD 0 version DS.W 1 ; version id DS.W 1 ; id of 'qrsc' this came from queryProc DS.L 1 ; handle to query def proc ddevName DS.B 64 ; ddev name host DS.B 256 ; host user DS.B 256 ; user password DS.B 256 ; password connStr DS.B 256 ; other connection info currQuery DS.W 1 ; current query numQueries DS.W 1 ; number of queries in queryList queryList DS.L 1 ; handle to list of queries numRes DS.W 1 ; number of resources in resList resList DS.L 1 ; handle to list of other resources dataHandle DS.L 1 ; data used by query def proc refCon DS.L 1 ; query's reference value QueryRecordSize EQU * ENDR DBColInfoRecord RECORD 0 len DS.W 1 places DS.W 1 flags DS.W 1 DBColInfoRecordSize EQU * ENDR ResultsRecord RECORD 0 numRows DS.W 1 ; number of rows in result numCols DS.W 1 ; number of columns per row colTypes DS.L 1 ; data type array colData DS.L 1 ; actual results colInfo DS.L 1 ; DBColInfoRecord array ResultsRecordSize EQU * ENDR ; ; Routine Selectors ; InitDBPack EQU $0100 DBInit EQU $0E02 DBEnd EQU $0403 DBGetConnInfo EQU $1704 DBGetSessionNum EQU $0605 DBSend EQU $0706 DBSendItem EQU $0B07 DBExec EQU $0408 DBState EQU $0409 DBGetErr EQU $0E0A DBBreak EQU $050B DBGetItem EQU $100C DBUnGetItem EQU $040D DBKill EQU $020E DBGetNewQuery EQU $030F DBDisposeQuery EQU $0210 DBStartQuery EQU $0811 DBGetQueryResults EQU $0A12 DBResultsToText EQU $0413 DBInstallResultHandler EQU $0514 DBRemoveResultHandler EQU $0215 DBGetResultHandler EQU $0516 ; ; For package invocation ; First arg is routine selector, second is the trap ; Slightly modified from PackMacs.a to pass selector in D0, ; and always call Pack13. ; MACRO _Pack13Call MOVE.W &SYSLIST[1],D0 _Pack13 ENDM ; ; Database Access Manager routines ; MACRO _InitDBPack MOVE.W #$0004, -(A7) ; push version number _Pack13Call #InitDBPack ENDM MACRO _DBInit _Pack13Call #DBInit ENDM MACRO _DBEnd _Pack13Call #DBEnd ENDM MACRO _DBGetConnInfo _Pack13Call #DBGetConnInfo ENDM MACRO _DBGetSessionNum _Pack13Call #DBGetSessionNum ENDM MACRO _DBSend _Pack13Call #DBSend ENDM MACRO _DBSendItem _Pack13Call #DBSendItem ENDM MACRO _DBExec _Pack13Call #DBExec ENDM MACRO _DBState _Pack13Call #DBState ENDM MACRO _DBGetErr _Pack13Call #DBGetErr ENDM MACRO _DBBreak _Pack13Call #DBBreak ENDM MACRO _DBGetItem _Pack13Call #DBGetItem ENDM MACRO _DBUnGetItem _Pack13Call #DBUnGetItem ENDM MACRO _DBKill _Pack13Call #DBKill ENDM MACRO _DBGetNewQuery _Pack13Call #DBGetNewQuery ENDM MACRO _DBDisposeQuery _Pack13Call #DBDisposeQuery ENDM MACRO _DBStartQuery _Pack13Call #DBStartQuery ENDM MACRO _DBGetQueryResults _Pack13Call #DBGetQueryResults ENDM MACRO _DBResultsToText _Pack13Call #DBResultsToText ENDM MACRO _DBInstallResultHandler _Pack13Call #DBInstallResultHandler ENDM MACRO _DBRemoveResultHandler _Pack13Call #DBRemoveResultHandler ENDM MACRO _DBGetResultHandler _Pack13Call #DBGetResultHandler ENDM ENDIF ; ...already included