The DBMS panic error code is defined in the header file and does not appear in the SDK document. It is cumbersome to query.
DBMS error codes can be of the following four types:
1 DBMS
2 DBMS-Server
3 DBMS-store
4 DBMS-table
When you encounter a DBMS error, pay attention to the error first.
They are located in different header files as follows:
Ud_std.h (DBMS)
Edbunimplemented, 0
Edbinvalidcolumn, 1
Edbuninitialised, 2
Edbrowlengthoverflow, 3
Edbtoomanykeys, 4
Edbinvalidviewwindowparameters, 5
Edbwrongtype, 6
Edbinvalidincrementalstep, 7
Edbnocolumnsinseekkey 8
Sd_std.h (DBMS-server)
Edbsunimplemented, 0
Edbsinvalidcolumn, 1
Edbswrongtype, 2
Edbsnorowdata, 3
Edbsnotinupdate, 4
Edbsbaddescriptor, 5
Edbsbadhandle, 6
Edbsstreammarkinvalid, 7
Edbsstreamlocationinvalid, 8
Edbsobserverrequestpending 9
Us_std.h (DBMS-store)
Edbunimplemented, 0
Edbnostore, 1
Edbcannotseek, 2
Edbnotfixedfieldtype, 3
Edbwrongtype 4
Ut_std.h (DBMS-table)
Edbinvalidcolumn, 0
Edbwrongtype, 1
Edbinupdate, 2
Edbnotinupdate, 3
Edbinvalidrow, 4
Edbrownotread, 5
Edbreadonly, 6
Edbtableopen, 7
Edbnotevaluated, 8
Edbstreamopen, 9
Edbrowsetconstraintmismatch, 10
Edbbeginnestedtransaction, 11
Edbupdatespendingoncommit, 12
Edbupdatespendingonrollback, 13
Edbnocurrenttransaction, 14
Edbstreamspendingoncommit, 15
Edbstreamspendingonrollback, 16
Edbinvalidbookmark 17
Today I met two panic:
One is DBMS-Table 3-edbnotinupdate, because I did not call updatel before calling setcoll of rdbtable.
The other one is DBMS-store 4-edbwrongtype, which is caused by inconsistent types used when executing the rdbtable seekl. Make sure that the parameter type of the tdbseekkey constructor is the same as the type of the column corresponding to the index you are using. This error can be avoided.