sys7.1-doc-wip/Interfaces/AIncludes/DatabaseAccess.a

335 lines
8.3 KiB
Plaintext
Raw Normal View History

2019-07-27 14:37:48 +00:00
; 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