# DELETE’RECORD > [HTML Version](deleterecord.htm) _Rewritten March 2019_ **DELETE’RECORD #file-channel** DELETE'RECORD deletes the last accessed record and all associated keys. Like UPDATE'RECORD, it relies on the record being previously locked, but unlike UPDATE'RECORD, it ignores the value of the _recnovar_ variable and instead always deletes the last accessed record. Also unlike UPDATE'RECORD, it removes the lock on completion of the operation. All errors trap as ASB errors. **Examples** The typical delete scenario consists of a GET'LOCKED (or GET'NEXT'LOCKED) to read and lock the record to be deleted, followed by the DELETE'RECORD, e.g. OPEN #ch, filespec, ISAMP'INDEXED, recnovar, fstatvar , wait'record ... GET'LOCKED #ch, ISAM'KEY(0) = key\$, rec if fstatvar = ISAM\_EQ then DELETE'RECORD #ch endif In a more complex scenario, you may want to lock several records, and then—perhaps based on user input or other logic—decide to delete just one of them. This requires re-accessing the record to be deleted, presumably by its unique key, prior to the delete. Note that as long as the record is locked by the first access, the second access will not affect that lock; i.e. it doesn't matter whether the second access uses the 'LOCKED option or not. In this example we lock a group of "items" using GET'NEXT'LOCKED operations, then allow the user to select one to be deleted: defstruct ST\_ITEM \! record def map2 key,s,10 \! item key map2 description,s,30 map2 price,f endstruct map1 item, ST\_ITEM dimx items(0), ST\_ITEM, auto\_extend open #ch, filespec, ISAMP'INDEXED, recnovar, fstatvar , wait'record ... ? "Locking n items..." for i = 1 to n GET'NEXT'LOCKED #ch, item if fstatvar # ISAM\_NF then ? "item #";i;" ";item.key;" ";item.description items(i) = item \! save items in array for future reference else exit endif next i input "Enter item # to delete (or 0 for none): ",i if i > 0 then GET #ch, ISAM'KEY(0) = items(i).key, item \! re-access to set context if fstatvar = ISAM\_EQ then DELETE'RECORD #ch endif endif RELEASE'ALL #ch \! release all the remaining locked recs Note the critical step in the above example of doing another GET on the target record prior to the DELETE'RECORD, and that it doesn't matter if it was GET or GET'LOCKED since the record was already locked. See the sample program [ISPDEL.BP in EXLIB:\[908,033\]](https://bitbucket.org/microsabio/exlib/src/master/908033/ispdel.bp) for a more complete working version of the above scenario.