\ db-example 99.3.27 7:10 pm NAB \ Creates a new db "MyDatabase" \ (creator id 'myid', type 'DATA') \ and writes a string to it. needs DataMgr needs zstrings needs ids needs core-ext : string>newhandle ( c-addr u dbr. -- handle. ) \ Create new block in storage RAM: 2>r dup s>d 2r> DmNewHandle \ Lock the handle: 2dup 2>r MemHandleLock 2>r \ Write the string to the block: swap >abs rot s>d 2swap 0. 2r> DmWrite throw \ Unlock the handle: 2r> 2dup MemHandleUnlock drop ; (id) myid 2constant creator-id : dbname z" MyDatabase" ; : somedata s" One Two Three Four" ; 2variable dbr variable index : demo ( -- ) \ If already existing, delete: dbname drop >abs cardnum @ DmFindDatabase cardnum @ DmDeleteDatabase drop \ Create db: false \ not a resource db [id] DATA \ type creator-id dbname CreateDB DmModeReadWrite dbname OpenDB dbr 2! somedata dbr 2@ string>newhandle 0. 2swap index >abs dbr 2@ DmAttachRecord throw dbr 2@ CloseDB ; demo .s \ should report 'stack empty'