( database Micro )

variable cardNum

: usecard ( n -- )
   cardNum !
;

api: DmOpenDatabase

: OpenDB ( addr u mode -- ref )
   nip cardNum @ rot >abs
   DmFindDatabase ?DmErr
   cardNum @ swap rot
   DmOpenDatabase ?DmErr
;

: CloseDB ( dbOR -- ) DmCloseDatabase throw ;

: OpenRecord ( dbOR i -- addr u )
  DmQueryRecord
  dup MemHandleLock >rel
  swap MemHandleSize ;

: CloseRecord ( dbOR i -- )
  DmQueryRecord
  MemHandleUnlock throw ;

: CurAppDatabaseID
( -- cardNo ID )
	0 0 sp@ >abs dup cell+
	SysCurAppDatabase throw swap
;

: CurAppCardNo ( -- cardNo )
	CurAppDatabaseID drop ;