home *** CD-ROM | disk | FTP | other *** search
/ C Programming Starter Kit 2.0 / SamsPublishing-CProgrammingStarterKit-v2.0-Win31.iso / bde / sdkunit.pak / DBIERRS.PAS < prev    next >
Pascal/Delphi Source File  |  1997-07-23  |  73KB  |  1,193 lines

  1.  
  2. {*******************************************************}
  3. {                                                       }
  4. {       BDE Error Messages                              }
  5. {                                                       }
  6. {       Copyright (c) 1995 Borland International        }
  7. {                                                       }
  8. {*******************************************************}
  9.  
  10. unit DbiErrs;
  11.  
  12. interface
  13.  
  14. {============================================================================}
  15. {                            Error Categories                                }
  16. {============================================================================}
  17.  
  18. const
  19.   ERRCAT_NONE                   = 0;      {  0   No error }
  20.   ERRCAT_SYSTEM                 = $21;    {  33  System related (Fatal Error) }
  21.   ERRCAT_NOTFOUND               = $22;    {  34  Object of interest Not Found }
  22.   ERRCAT_DATACORRUPT            = $23;    {  35  Physical Data Corruption }
  23.   ERRCAT_IO                     = $24;    {  36  I/O related error }
  24.   ERRCAT_LIMIT                  = $25;    {  37  Resource or Limit error }
  25.   ERRCAT_INTEGRITY              = $26;    {  38  Integrity Violation }
  26.   ERRCAT_INVALIDREQ             = $27;    {  39  Invalid Request }
  27.   ERRCAT_LOCKCONFLICT           = $28;    {  40  Locking/Contention related }
  28.   ERRCAT_SECURITY               = $29;    {  41  Access Violation - Security related }
  29.   ERRCAT_INVALIDCONTEXT         = $2A;    {  42  Invalid context }
  30.   ERRCAT_OS                     = $2B;    {  43  Os Error not handled by Idapi }
  31.   ERRCAT_NETWORK                = $2C;    {  44  Network related }
  32.   ERRCAT_OPTPARAM               = $2D;    {  45  Optional parameter related }
  33.   ERRCAT_QUERY                  = $2E;    {  46  Query related }
  34.   ERRCAT_VERSION                = $2F;    {  47  Version Mismatch Category }
  35.   ERRCAT_CAPABILITY             = $30;    {  48  Capability not supported }
  36.   ERRCAT_CONFIG                 = $31;    {  49  System configuration error }
  37.   ERRCAT_WARNING                = $32;    {  50 }
  38.   ERRCAT_OTHER                  = $33;    {  51  Miscellaneous }
  39.   ERRCAT_COMPATIBILITY          = $34;    {  52  Compatibility related }
  40.  
  41.   ERRCAT_DRIVER                 = $3E;    {  62  Driver related }
  42.   ERRCAT_RC                     = $3F;    {  63  Internal }
  43.  
  44.  
  45.   ERRBASE_NONE                  = 0;      { No error }
  46.   ERRBASE_SYSTEM                = $2100;  { System related (Fatal Error) }
  47.   ERRBASE_NOTFOUND              = $2200;  { Object of interest Not Found }
  48.   ERRBASE_DATACORRUPT           = $2300;  { Physical Data Corruption }
  49.   ERRBASE_IO                    = $2400;  { I/O related error }
  50.   ERRBASE_LIMIT                 = $2500;  { Resource or Limit error }
  51.   ERRBASE_INTEGRITY             = $2600;  { Integrity Violation }
  52.   ERRBASE_INVALIDREQ            = $2700;  { Invalid Request }
  53.   ERRBASE_LOCKCONFLICT          = $2800;  { Locking/Contention related }
  54.   ERRBASE_SEC                   = $2900;  { Access Violation - Security related }
  55.   ERRBASE_IC                    = $2A00;  { Invalid context }
  56.   ERRBASE_OS                    = $2B00;  { Os Error not handled by Idapi }
  57.   ERRBASE_NETWORK               = $2C00;  { Network related }
  58.   ERRBASE_OPTPARAM              = $2D00;  { Optional Parameter related }
  59.   ERRBASE_QUERY                 = $2E00;  { Query related }
  60.   ERRBASE_VERSION               = $2F00;  { Version Mismatch Category }
  61.   ERRBASE_CAPABILITY            = $3000;  { Capability not supported }
  62.   ERRBASE_CONFIG                = $3100;  { System configuration error }
  63.   ERRBASE_WARNING               = $3200;
  64.   ERRBASE_OTHER                 = $3300;  { Miscellaneous }
  65.   ERRBASE_COMPATIBILITY         = $3400;  { Compatibility related }
  66.  
  67.   ERRBASE_DRIVER                = $3E00;  { Driver related }
  68.   ERRBASE_RC                    = $3F00;  { Internal }
  69.  
  70.  
  71. {============================================================================}
  72. {                           Error Codes By Category                          }
  73. {============================================================================}
  74.  
  75. { ERRCAT_NONE                  (0) }
  76. { ===========                      }
  77.  
  78.   ERRCODE_NONE                  = 0;
  79.  
  80.   DBIERR_NONE                   = (ERRBASE_NONE + ERRCODE_NONE);
  81.  
  82. {  ERRCAT_SYSTEM }
  83. {  ============= }
  84.  
  85.   ERRCODE_SYSFILEOPEN           = 1;      { Cannot open a system file }
  86.   ERRCODE_SYSFILEIO             = 2;      { I/O error on a system file }
  87.   ERRCODE_SYSCORRUPT            = 3;      { Data structure corruption }
  88.   ERRCODE_NOCONFIGFILE          = 4;      { Cannot find config file }
  89.   ERRCODE_CFGCANNOTWRITE        = 5;      { Cannot write config file (READONLY) }
  90.   ERRCODE_CFGMULTIFILE          = 6;      { Initializing with different ini file }
  91.   ERRCODE_REENTERED             = 7;      { System has been illegally re-entered }
  92.   ERRCODE_CANTFINDODAPI         = 8;      { Cannot locate IDAPIxx.DLL }
  93.   ERRCODE_CANTLOADODAPI         = 9;      { Cannot load IDAPIxx.DLL }
  94.   ERRCODE_CANTLOADLIBRARY       = 10;     { Cannot load a service DLL }
  95.  
  96.   DBIERR_SYSFILEOPEN            = (ERRBASE_SYSTEM + ERRCODE_SYSFILEOPEN);
  97.   DBIERR_SYSFILEIO              = (ERRBASE_SYSTEM + ERRCODE_SYSFILEIO);
  98.   DBIERR_SYSCORRUPT             = (ERRBASE_SYSTEM + ERRCODE_SYSCORRUPT);
  99.   DBIERR_NOCONFIGFILE           = (ERRBASE_SYSTEM + ERRCODE_NOCONFIGFILE);
  100.   DBIERR_CFGCANNOTWRITE         = (ERRBASE_SYSTEM + ERRCODE_CFGCANNOTWRITE);
  101.   DBIERR_CFGMULTIFILE           = (ERRBASE_SYSTEM + ERRCODE_CFGMULTIFILE);
  102.   DBIERR_REENTERED              = (ERRBASE_SYSTEM + ERRCODE_REENTERED);
  103.   DBIERR_CANTFINDODAPI          = (ERRBASE_SYSTEM + ERRCODE_CANTFINDODAPI);
  104.   DBIERR_CANTLOADODAPI          = (ERRBASE_SYSTEM + ERRCODE_CANTLOADODAPI);
  105.   DBIERR_CANTLOADLIBRARY        = (ERRBASE_SYSTEM + ERRCODE_CANTLOADLIBRARY);
  106.  
  107. {  ERRCAT_NOTFOUND }
  108. {  =============== }
  109.  
  110.   ERRCODE_BOF                   = 1;      { Beginning of Virtual table }
  111.   ERRCODE_EOF                   = 2;      { End of Virtual table }
  112.   ERRCODE_RECMOVED              = 3;      { Fly-away }
  113.   ERRCODE_KEYORRECDELETED       = 4;      { Record Deleted/Key Modified }
  114.   ERRCODE_NOCURRREC             = 5;      { No current record }
  115.   ERRCODE_RECNOTFOUND           = 6;      { Record was not found }
  116.   ERRCODE_ENDOFBLOB             = 7;      { End of Blob reached }
  117.   ERRCODE_OBJNOTFOUND           = 8;      { Generic Not found }
  118.   ERRCODE_FMLMEMBERNOTFOUND     = 9;      { Family member not found }
  119.   ERRCODE_BLOBFILEMISSING       = 10;     { 0x0a Blob file for table is missing }
  120.   ERRCODE_LDNOTFOUND            = 11;     { 0x0b Language driver not found }
  121.  
  122.   DBIERR_BOF                    = (ERRBASE_NOTFOUND + ERRCODE_BOF);
  123.   DBIERR_EOF                    = (ERRBASE_NOTFOUND + ERRCODE_EOF);
  124.   DBIERR_RECMOVED               = (ERRBASE_NOTFOUND + ERRCODE_RECMOVED);
  125.   DBIERR_RECDELETED             = (ERRBASE_NOTFOUND + ERRCODE_KEYORRECDELETED);
  126.   DBIERR_KEYORRECDELETED        = (ERRBASE_NOTFOUND + ERRCODE_KEYORRECDELETED);
  127.   DBIERR_NOCURRREC              = (ERRBASE_NOTFOUND + ERRCODE_NOCURRREC);
  128.   DBIERR_RECNOTFOUND            = (ERRBASE_NOTFOUND + ERRCODE_RECNOTFOUND);
  129.   DBIERR_ENDOFBLOB              = (ERRBASE_NOTFOUND + ERRCODE_ENDOFBLOB);
  130.   DBIERR_OBJNOTFOUND            = (ERRBASE_NOTFOUND + ERRCODE_OBJNOTFOUND);
  131.   DBIERR_FMLMEMBERNOTFOUND      = (ERRBASE_NOTFOUND + ERRCODE_FMLMEMBERNOTFOUND);
  132.   DBIERR_BLOBFILEMISSING        = (ERRBASE_NOTFOUND + ERRCODE_BLOBFILEMISSING);
  133.   DBIERR_LDNOTFOUND             = (ERRBASE_NOTFOUND + ERRCODE_LDNOTFOUND);
  134.  
  135. { ERRCAT_DATACORRUPT }
  136. { ================== }
  137.  
  138.   ERRCODE_HEADERCORRUPT         = 1;      { Corrupt Header }
  139.   ERRCODE_FILECORRUPT           = 2;      { File corrupt - other than header }
  140.   ERRCODE_MEMOCORRUPT           = 3;      { Memo file corrupted }
  141.   ERRCODE_BMPCORRUPT            = 4;      { BitMap is corrupt (Internal error) }
  142.   ERRCODE_INDEXCORRUPT          = 5;      { Index is corrupt }
  143.   ERRCODE_CORRUPTLOCKFILE       = 6;      { Corrupt lock file }
  144.   ERRCODE_FAMFILEINVALID        = 7;      { Corrupt family file }
  145.   ERRCODE_VALFILECORRUPT        = 8;      { Val file is missing or corrupt }
  146.   ERRCODE_FOREIGNINDEX          = 9;      { Index is in a foreign format - import first }
  147.  
  148.  
  149.   DBIERR_HEADERCORRUPT          = (ERRBASE_DATACORRUPT + ERRCODE_HEADERCORRUPT);
  150.   DBIERR_FILECORRUPT            = (ERRBASE_DATACORRUPT + ERRCODE_FILECORRUPT);
  151.   DBIERR_MEMOCORRUPT            = (ERRBASE_DATACORRUPT + ERRCODE_MEMOCORRUPT);
  152.   DBIERR_BMPCORRUPT             = (ERRBASE_DATACORRUPT + ERRCODE_BMPCORRUPT);
  153.   DBIERR_INDEXCORRUPT           = (ERRBASE_DATACORRUPT + ERRCODE_INDEXCORRUPT);
  154.   DBIERR_CORRUPTLOCKFILE        = (ERRBASE_DATACORRUPT + ERRCODE_CORRUPTLOCKFILE);
  155.   DBIERR_FAMFILEINVALID         = (ERRBASE_DATACORRUPT + ERRCODE_FAMFILEINVALID);
  156.   DBIERR_VALFILECORRUPT         = (ERRBASE_DATACORRUPT + ERRCODE_VALFILECORRUPT);
  157.   DBIERR_FOREIGNINDEX           = (ERRBASE_DATACORRUPT + ERRCODE_FOREIGNINDEX);
  158.  
  159.  
  160. { ERRCAT_IO }
  161. { ========= }
  162.  
  163.   ERRCODE_READERR               = 1;      { Read failure (not expected) }
  164.   ERRCODE_WRITEERR              = 2;      { Write failure (not expected) }
  165.   ERRCODE_DIRNOACCESS           = 3;      { No access to dir }
  166.   ERRCODE_FILEDELETEFAIL        = 4;      { File delete failed }
  167.   ERRCODE_FILENOACCESS          = 5;      { No access to file }
  168.   ERRCODE_ACCESSDISABLED        = 6;      { Access to table disabled (previous error) }
  169.  
  170.   DBIERR_READERR                = (ERRBASE_IO + ERRCODE_READERR);
  171.   DBIERR_WRITEERR               = (ERRBASE_IO + ERRCODE_WRITEERR);
  172.   DBIERR_DIRNOACCESS            = (ERRBASE_IO + ERRCODE_DIRNOACCESS);
  173.   DBIERR_FILEDELETEFAIL         = (ERRBASE_IO + ERRCODE_FILEDELETEFAIL);
  174.   DBIERR_FILENOACCESS           = (ERRBASE_IO + ERRCODE_FILENOACCESS);
  175.   DBIERR_ACCESSDISABLED         = (ERRBASE_IO + ERRCODE_ACCESSDISABLED);
  176.  
  177. { ERRCAT_LIMIT }
  178. { ============ }
  179.  
  180.   ERRCODE_NOMEMORY              = 1;      { Not enough Memory for this op }
  181.   ERRCODE_NOFILEHANDLES         = 2;      { Not enough File handles }
  182.   ERRCODE_NODISKSPACE           = 3;      { Not enough Disk space }
  183.   ERRCODE_NOTEMPTBLSPACE        = 4;      { Temporary Table resource limit }
  184.   ERRCODE_RECTOOBIG             = 5;      { Too big a record size for table }
  185.   ERRCODE_CURSORLIMIT           = 6;      { Too many open cursors }
  186.   ERRCODE_TABLEFULL             = 7;      { Table is full }
  187.   ERRCODE_WSSESLIMIT            = 8;      { Too many sessions from this WS }
  188.   ERRCODE_SERNUMLIMIT           = 9;      { Serial number limit (paradox) }
  189.   ERRCODE_INTERNALLIMIT         = 10;     { 0x0a Some internal limit (see context) }
  190.   ERRCODE_OPENTBLLIMIT          = 11;     { 0x0b Too many open tables }
  191.   ERRCODE_TBLCURSORLIMIT        = 12;     { 0x0c Too many cursors per table }
  192.   ERRCODE_RECLOCKLIMIT          = 13;     { 0x0d Too many record locks on table }
  193.   ERRCODE_CLIENTSLIMIT          = 14;     { 0x0e Too many clients }
  194.   ERRCODE_INDEXLIMIT            = 15;     { 0x0f Too many indexes (also in Table Create) }
  195.   ERRCODE_SESSIONSLIMIT         = 16;     { 0x10 Too many sessions }
  196.   ERRCODE_DBLIMIT               = 17;     { 0x11 Too many databases }
  197.   ERRCODE_PASSWORDLIMIT         = 18;     { 0x12 Too many passwords }
  198.   ERRCODE_DRIVERLIMIT           = 19;     { 0x13 Too many active drivers }
  199.   ERRCODE_FLDLIMIT              = 20;     { 0x14 Too many Fields in Table Create }
  200.   ERRCODE_TBLLOCKLIMIT          = 21;     { 0x15 Too many table locks }
  201.   ERRCODE_OPENBLOBLIMIT         = 22;     { 0x16 Too many open blobs }
  202.   ERRCODE_LOCKFILELIMIT         = 23;     { 0x17 Lock file has grown too big }
  203.   ERRCODE_OPENQRYLIMIT          = 24;     { 0x18 Too many open queries }
  204.   ERRCODE_THREADLIMIT           = 25;     { 0x19 Too many threads for client }
  205.   ERRCODE_BLOBLIMIT             = 26;     { 0x1a Too many blobs }
  206.   ERRCODE_PDX50NAMELIMIT        = 27;     { 0x1b Pathname is too long for a Paradox 5.0 or less table }
  207.  
  208.   DBIERR_NOMEMORY               = (ERRBASE_LIMIT + ERRCODE_NOMEMORY);
  209.   DBIERR_NOFILEHANDLES          = (ERRBASE_LIMIT + ERRCODE_NOFILEHANDLES);
  210.   DBIERR_NODISKSPACE            = (ERRBASE_LIMIT + ERRCODE_NODISKSPACE);
  211.   DBIERR_NOTEMPTBLSPACE         = (ERRBASE_LIMIT + ERRCODE_NOTEMPTBLSPACE);
  212.   DBIERR_RECTOOBIG              = (ERRBASE_LIMIT + ERRCODE_RECTOOBIG);
  213.   DBIERR_CURSORLIMIT            = (ERRBASE_LIMIT + ERRCODE_CURSORLIMIT);
  214.   DBIERR_TABLEFULL              = (ERRBASE_LIMIT + ERRCODE_TABLEFULL);
  215.   DBIERR_WSSESLIMIT             = (ERRBASE_LIMIT + ERRCODE_WSSESLIMIT);
  216.   DBIERR_SERNUMLIMIT            = (ERRBASE_LIMIT + ERRCODE_SERNUMLIMIT);
  217.   DBIERR_INTERNALLIMIT          = (ERRBASE_LIMIT + ERRCODE_INTERNALLIMIT);
  218.   DBIERR_OPENTBLLIMIT           = (ERRBASE_LIMIT + ERRCODE_OPENTBLLIMIT);
  219.   DBIERR_TBLCURSORLIMIT         = (ERRBASE_LIMIT + ERRCODE_TBLCURSORLIMIT);
  220.   DBIERR_RECLOCKLIMIT           = (ERRBASE_LIMIT + ERRCODE_RECLOCKLIMIT);
  221.   DBIERR_CLIENTSLIMIT           = (ERRBASE_LIMIT + ERRCODE_CLIENTSLIMIT);
  222.   DBIERR_INDEXLIMIT             = (ERRBASE_LIMIT + ERRCODE_INDEXLIMIT);
  223.   DBIERR_SESSIONSLIMIT          = (ERRBASE_LIMIT + ERRCODE_SESSIONSLIMIT);
  224.   DBIERR_DBLIMIT                = (ERRBASE_LIMIT + ERRCODE_DBLIMIT);
  225.   DBIERR_PASSWORDLIMIT          = (ERRBASE_LIMIT + ERRCODE_PASSWORDLIMIT);
  226.   DBIERR_DRIVERLIMIT            = (ERRBASE_LIMIT + ERRCODE_DRIVERLIMIT);
  227.   DBIERR_FLDLIMIT               = (ERRBASE_LIMIT + ERRCODE_FLDLIMIT);
  228.   DBIERR_TBLLOCKLIMIT           = (ERRBASE_LIMIT + ERRCODE_TBLLOCKLIMIT);
  229.   DBIERR_OPENBLOBLIMIT          = (ERRBASE_LIMIT + ERRCODE_OPENBLOBLIMIT);
  230.   DBIERR_LOCKFILELIMIT          = (ERRBASE_LIMIT + ERRCODE_LOCKFILELIMIT);
  231.   DBIERR_OPENQRYLIMIT           = (ERRBASE_LIMIT + ERRCODE_OPENQRYLIMIT);
  232.   DBIERR_THREADLIMIT            = (ERRBASE_LIMIT + ERRCODE_THREADLIMIT);
  233.   DBIERR_BLOBLIMIT              = (ERRBASE_LIMIT + ERRCODE_BLOBLIMIT);
  234.   DBIERR_PDX50NAMELIMIT         = (ERRBASE_LIMIT + ERRCODE_PDX50NAMELIMIT);
  235.  
  236.  
  237. { ERRCAT_INTEGRITY }
  238. { ================ }
  239.  
  240.   ERRCODE_KEYVIOL               = 1;      { Key violation }
  241.   ERRCODE_MINVALERR             = 2;      { Min val check failed }
  242.   ERRCODE_MAXVALERR             = 3;      { Max val check failed }
  243.   ERRCODE_REQDERR               = 4;      { Field value required }
  244.   ERRCODE_FORIEGNKEYERR         = 5;      { Master record missing }
  245.   ERRCODE_DETAILRECORDSEXIST    = 6;      { Cannot MODIFY or DELETE this Master record }
  246.   ERRCODE_MASTERTBLLEVEL        = 7;      { Master Table Level is incorrect }
  247.   ERRCODE_LOOKUPTABLEERR        = 8;      { Field value out of lookup tbl range }
  248.   ERRCODE_LOOKUPTBLOPENERR      = 9;      { Lookup Table Open failed }
  249.   ERRCODE_DETAILTBLOPENERR      = 10;     { 0x0a Detail Table Open failed }
  250.   ERRCODE_MASTERTBLOPENERR      = 11;     { 0x0b Master Table Open failed }
  251.   ERRCODE_FIELDISBLANK          = 12;     { 0x0c Field is blank }
  252.  
  253.   ERRCODE_MASTEREXISTS          = 13;     { 0x0d Master Table exists }
  254.   ERRCODE_MASTERTBLOPEN         = 14;     { 0x0e Master Table is open }
  255.  
  256.   ERRCODE_DETAILTABLESEXIST     = 15;     { 0x0f Detail Tables exist ( cannot delete, rename ... ) }
  257.   ERRCODE_DETAILRECEXISTEMPTY   = 16;     { 0x10 Cannot empty because details exist }
  258.   ERRCODE_MASTERREFERENCEERR    = 17;     { 0x11 Cannot modify while adding self referencing Referential Integrity }
  259.   ERRCODE_DETAILTBLOPEN         = 18;     { 0x12 Detail Table is opened }
  260.   ERRCODE_DEPENDENTSMUSTBEEMPTY = 19;     { 0x13 Cannot make a master a detail of another table if its details are not empty !}
  261.   ERRCODE_RINTREQINDEX          = 20;     { 0x14 Ref. integrity fields must be indexed }
  262.   ERRCODE_LINKEDTBLPROTECTED    = 21;     { 0x15 Master Table is protected ( requires password to open) }
  263.   ERRCODE_FIELDMULTILINKED      = 22;     { 0x16 Field has more than one master }
  264.  
  265.   DBIERR_KEYVIOL                = (ERRBASE_INTEGRITY + ERRCODE_KEYVIOL);
  266.   DBIERR_MINVALERR              = (ERRBASE_INTEGRITY + ERRCODE_MINVALERR);
  267.   DBIERR_MAXVALERR              = (ERRBASE_INTEGRITY + ERRCODE_MAXVALERR);
  268.   DBIERR_REQDERR                = (ERRBASE_INTEGRITY + ERRCODE_REQDERR);
  269.   DBIERR_FORIEGNKEYERR          = (ERRBASE_INTEGRITY + ERRCODE_FORIEGNKEYERR);
  270.   DBIERR_DETAILRECORDSEXIST     = (ERRBASE_INTEGRITY + ERRCODE_DETAILRECORDSEXIST);
  271.   DBIERR_MASTERTBLLEVEL         = (ERRBASE_INTEGRITY + ERRCODE_MASTERTBLLEVEL);
  272.   DBIERR_LOOKUPTABLEERR         = (ERRBASE_INTEGRITY + ERRCODE_LOOKUPTABLEERR);
  273.   DBIERR_LOOKUPTBLOPENERR       = (ERRBASE_INTEGRITY + ERRCODE_LOOKUPTBLOPENERR);
  274.   DBIERR_DETAILTBLOPENERR       = (ERRBASE_INTEGRITY + ERRCODE_DETAILTBLOPENERR);
  275.   DBIERR_MASTERTBLOPENERR       = (ERRBASE_INTEGRITY + ERRCODE_MASTERTBLOPENERR);
  276.   DBIERR_FIELDISBLANK           = (ERRBASE_INTEGRITY + ERRCODE_FIELDISBLANK);
  277.   DBIERR_MASTEREXISTS           = (ERRBASE_INTEGRITY + ERRCODE_MASTEREXISTS);
  278.   DBIERR_MASTERTBLOPEN          = (ERRBASE_INTEGRITY + ERRCODE_MASTERTBLOPEN);
  279.   DBIERR_DETAILTABLESEXIST      = (ERRBASE_INTEGRITY + ERRCODE_DETAILTABLESEXIST);
  280.   DBIERR_DETAILRECEXISTEMPTY    = (ERRBASE_INTEGRITY + ERRCODE_DETAILRECEXISTEMPTY);
  281.   DBIERR_MASTERREFERENCEERR     = (ERRBASE_INTEGRITY + ERRCODE_MASTERREFERENCEERR);
  282.   DBIERR_DETAILTBLOPEN          = (ERRBASE_INTEGRITY + ERRCODE_DETAILTBLOPEN);
  283.   DBIERR_DEPENDENTSMUSTBEEMPTY  = (ERRBASE_INTEGRITY + ERRCODE_DEPENDENTSMUSTBEEMPTY);
  284.   DBIERR_RINTREQINDEX           = (ERRBASE_INTEGRITY + ERRCODE_RINTREQINDEX);
  285.   DBIERR_LINKEDTBLPROTECTED     = (ERRBASE_INTEGRITY + ERRCODE_LINKEDTBLPROTECTED);
  286.   DBIERR_FIELDMULTILINKED       = (ERRBASE_INTEGRITY + ERRCODE_FIELDMULTILINKED);
  287.  
  288.  
  289. { ERRCAT_INVALIDREQ }
  290. { ================= }
  291.  
  292.   ERRCODE_OUTOFRANGE            = 1;      { Number out of range (e.g field no) }
  293.   ERRCODE_INVALIDPARAM          = 2;      { Generic invalid parameter }
  294.   ERRCODE_INVALIDFILENAME       = 3;      { Invalid file name }
  295.   ERRCODE_NOSUCHFILE            = 4;      { No such file }
  296.   ERRCODE_INVALIDOPTION         = 5;      { Invalid option for a parameter }
  297.   ERRCODE_INVALIDHNDL           = 6;      { Invalid handle to the function }
  298.   ERRCODE_UNKNOWNTBLTYPE        = 7;      { Table type given not known }
  299.   ERRCODE_UNKNOWNFILE           = 8;      { Dont know how to open file }
  300.   ERRCODE_PRIMARYKEYREDEFINE    = 9;      { Cannot redefine primary key }
  301.   ERRCODE_INVALIDRINTDESCNUM    = 10;     { 0x0a Cannot change this RINTDesc }
  302.   ERRCODE_KEYFLDTYPEMISMATCH    = 11;     { 0x0b Foreign & Primary Key Mismatch }
  303.   ERRCODE_INVALIDMODIFYREQUEST  = 12;     { 0x0c Invalid modify request }
  304.   ERRCODE_NOSUCHINDEX           = 13;     { 0x0d Index does not exist }
  305.   ERRCODE_INVALIDBLOBOFFSET     = 14;     { 0x0e Invalid Offset into the Blob }
  306.   ERRCODE_INVALIDDESCNUM        = 15;     { 0x0f Invalid descriptor number }
  307.   ERRCODE_INVALIDFLDTYPE        = 16;     { 0x10 Invalid field type }
  308.   ERRCODE_INVALIDFLDDESC        = 17;     { 0x11 Invalid field descriptor }
  309.   ERRCODE_INVALIDFLDXFORM       = 18;     { 0x12 Invalid field transform }
  310.   ERRCODE_INVALIDRECSTRUCT      = 19;     { 0x13 Invalid record structure }
  311.   ERRCODE_INVALIDDESC           = 20;     { 0x14 Generic: invalid descriptor }
  312.   ERRCODE_INVALIDINDEXSTRUCT    = 21;     { 0x15 Invalid array of indexes descriptors }
  313.   ERRCODE_INVALIDVCHKSTRUCT     = 22;     { 0x16 Invalid array of  val. check descriptors }
  314.   ERRCODE_INVALIDRINTSTRUCT     = 23;     { 0x17 Invalid array of ref. integrity descriptors }
  315.   ERRCODE_INVALIDRESTRTBLORDER  = 24;     { 0x18 Invalid ordering of tables during restructure }
  316.   ERRCODE_NAMENOTUNIQUE         = 25;     { 0x19 Name not unique in this context }
  317.   ERRCODE_INDEXNAMEREQUIRED     = 26;     { 0x1a Index name required }
  318.   ERRCODE_INVALIDSESHANDLE      = 27;     { 0x1b Invalid ses handle }
  319.   ERRCODE_INVALIDRESTROP        = 28;     { 0x1c Invalid restructure operation }
  320.   ERRCODE_UNKNOWNDRIVER         = 29;     { 0x1d Driver not known to system }
  321.   ERRCODE_UNKNOWNDB             = 30;     { 0x1e Unknown db }
  322.   ERRCODE_INVALIDPASSWORD       = 31;     { 0x1f Invalid password given }
  323.   ERRCODE_NOCALLBACK            = 32;     { 0x20 No callback function }
  324.   ERRCODE_INVALIDCALLBACKBUFLEN = 33;     { 0x21 Invalid callback buffer length }
  325.   ERRCODE_INVALIDDIR            = 34;     { 0x22 Invalid directory }
  326.   ERRCODE_INVALIDXLATION        = 35;     { 0x23 Translate Error - Translate DID NOT happen }
  327.   ERRCODE_DIFFERENTTABLES       = 36;     { 0x24 Cannot Set Cursor of one Table to another }
  328.   ERRCODE_INVALIDBOOKMARK       = 37;     { 0x25 Bookmarks does not match table, etc. }
  329.   ERRCODE_INVALIDINDEXNAME      = 38;     { 0x26 Index/Tag Name is invalid }
  330.   ERRCODE_INVALIDIDXDESC        = 39;     { 0x27 Invalid index descriptor }
  331.   ERRCODE_NOSUCHTABLE           = 40;     { 0x28 No such table }
  332.   ERRCODE_USECOUNT              = 41;     { 0x29 Table has too many users }
  333.   ERRCODE_INVALIDKEY            = 42;     { 0x2a Key does not pass filter condition }
  334.   ERRCODE_INDEXEXISTS           = 43;     { 0x2b Index already exists }
  335.   ERRCODE_INDEXOPEN             = 44;     { 0x2c Index is open }
  336.   ERRCODE_INVALIDBLOBLEN        = 45;     { 0x2d Invalid Blob Length }
  337.   ERRCODE_INVALIDBLOBHANDLE     = 46;     { 0x2e Invalid Blob handle (in record buffer) }
  338.   ERRCODE_TABLEOPEN             = 47;     { 0x2f Table is open }
  339.   ERRCODE_NEEDRESTRUCTURE       = 48;     { 0x30 Need to do (hard) restructure }
  340.   ERRCODE_INVALIDMODE           = 49;     { 0x31 Invalid mode }
  341.   ERRCODE_CANNOTCLOSE           = 50;     { 0x32 Cannot close index }
  342.   ERRCODE_ACTIVEINDEX           = 51;     { 0x33 Index is being used to order tbl }
  343.   ERRCODE_INVALIDUSRPASS        = 52;     { 0x34 Bad user name or password }
  344.   ERRCODE_MULTILEVELCASCADE     = 53;     { 0x35 Multi level Cascade not supported }
  345.   ERRCODE_INVALIDFIELDNAME      = 54;     { 0x36 Invalid field name }
  346.   ERRCODE_INVALIDTABLENAME      = 55;     { 0x37 Invalid table name }
  347.   ERRCODE_INVALIDLINKEXPR       = 56;     { 0x38 Invalid linked cursor expression }
  348.   ERRCODE_NAMERESERVED          = 57;     { 0x39 Name is reserved }
  349.   ERRCODE_INVALIDFILEEXTN       = 58;     { 0x3a Invalid file extention }
  350.   ERRCODE_INVALIDLANGDRV        = 59;     { 0x3b Invalid language driver }
  351.   ERRCODE_ALIASNOTOPEN          = 60;     { 0x3c Requested alias in not open }
  352.   ERRCODE_INCOMPATRECSTRUCTS    = 61;     { 0x3d Incompatible record structures }
  353.   ERRCODE_RESERVEDDOSNAME       = 62;     { 0x3e Reserved dos name }
  354.   ERRCODE_DESTMUSTBEINDEXED     = 63;     { 0x3f Destination must be indexed }
  355.   ERRCODE_INVALIDINDEXTYPE      = 64;     { 0x40 Invalid index type }
  356.   ERRCODE_LANGDRVMISMATCH       = 65;     { 0x41 Language driver of table and index do not match }
  357.   ERRCODE_NOSUCHFILTER          = 66;     { 0x42 Filter handle is invalid }
  358.   ERRCODE_INVALIDFILTER         = 67;     { 0x43 Invalid filter }
  359.  
  360.   ERRCODE_INVALIDTABLECREATE    = 68;     { 0x44 Bad table create request (exact prob unknown) }
  361.   ERRCODE_INVALIDTABLEDELETE    = 69;     { 0x45 Bad table delete request (exact prob unknown) }
  362.   ERRCODE_INVALIDINDEXCREATE    = 70;     { 0x46 Bad index create request (exact prob unknown) }
  363.   ERRCODE_INVALIDINDEXDELETE    = 71;     { 0x47 Bad index delete request (exact prob unknown) }
  364.   ERRCODE_INVALIDTABLE          = 72;     { 0x48 Invalid table name specified }
  365.   ERRCODE_MULTIRESULTS          = 73;     { 0X49 Multi results }
  366.   ERRCODE_INVALIDTIME           = 74;     { 0X4A Multi results }
  367.   ERRCODE_INVALIDDATE           = 75;     { 0X4B Multi results }
  368.   ERRCODE_INVALIDTIMESTAMP      = 76;     { 0X4C Multi results }
  369.   ERRCODE_DIFFERENTPATH         = 77;     { 0X4d Tables in different paths }
  370.   ERRCODE_MISMATCHARGS          = 78;     { 0x4e MisMatch in the # of arguments }
  371.   ERRCODE_FUNCTIONNOTFOUND      = 79;     { 0x4f Loaderlib cant find a func in the DLL (bad version?) }
  372.   ERRCODE_MUSTUSEBASEORDER      = 80;     { 0x50 Must use baseorder for this operation }
  373.   ERRCODE_INVALIDPROCEDURENAME  = 81;     { 0x51 Invalid procedure name }
  374.  
  375.  
  376.   DBIERR_OUTOFRANGE             = (ERRBASE_INVALIDREQ + ERRCODE_OUTOFRANGE);
  377.   DBIERR_INVALIDPARAM           = (ERRBASE_INVALIDREQ + ERRCODE_INVALIDPARAM);
  378.   DBIERR_INVALIDFILENAME        = (ERRBASE_INVALIDREQ + ERRCODE_INVALIDFILENAME);
  379.   DBIERR_NOSUCHFILE             = (ERRBASE_INVALIDREQ + ERRCODE_NOSUCHFILE);
  380.   DBIERR_INVALIDOPTION          = (ERRBASE_INVALIDREQ + ERRCODE_INVALIDOPTION);
  381.   DBIERR_INVALIDHNDL            = (ERRBASE_INVALIDREQ + ERRCODE_INVALIDHNDL);
  382.   DBIERR_UNKNOWNTBLTYPE         = (ERRBASE_INVALIDREQ + ERRCODE_UNKNOWNTBLTYPE);
  383.   DBIERR_UNKNOWNFILE            = (ERRBASE_INVALIDREQ + ERRCODE_UNKNOWNFILE);
  384.   DBIERR_PRIMARYKEYREDEFINE     = (ERRBASE_INVALIDREQ + ERRCODE_PRIMARYKEYREDEFINE);
  385.   DBIERR_INVALIDRINTDESCNUM     = (ERRBASE_INVALIDREQ + ERRCODE_INVALIDRINTDESCNUM);
  386.   DBIERR_KEYFLDTYPEMISMATCH     = (ERRBASE_INVALIDREQ + ERRCODE_KEYFLDTYPEMISMATCH);
  387.   DBIERR_INVALIDMODIFYREQUEST   = (ERRBASE_INVALIDREQ + ERRCODE_INVALIDMODIFYREQUEST);
  388.   DBIERR_NOSUCHINDEX            = (ERRBASE_INVALIDREQ + ERRCODE_NOSUCHINDEX);
  389.   DBIERR_INVALIDBLOBOFFSET      = (ERRBASE_INVALIDREQ + ERRCODE_INVALIDBLOBOFFSET);
  390.   DBIERR_INVALIDDESCNUM         = (ERRBASE_INVALIDREQ + ERRCODE_INVALIDDESCNUM);
  391.   DBIERR_INVALIDFLDTYPE         = (ERRBASE_INVALIDREQ +  ERRCODE_INVALIDFLDTYPE);
  392.   DBIERR_INVALIDFLDDESC         = (ERRBASE_INVALIDREQ + ERRCODE_INVALIDFLDDESC);
  393.   DBIERR_INVALIDFLDXFORM        = (ERRBASE_INVALIDREQ + ERRCODE_INVALIDFLDXFORM);
  394.   DBIERR_INVALIDRECSTRUCT       = (ERRBASE_INVALIDREQ + ERRCODE_INVALIDRECSTRUCT);
  395.   DBIERR_INVALIDDESC            = (ERRBASE_INVALIDREQ + ERRCODE_INVALIDDESC);
  396.   DBIERR_INVALIDINDEXSTRUCT     = (ERRBASE_INVALIDREQ + ERRCODE_INVALIDINDEXSTRUCT);
  397.   DBIERR_INVALIDVCHKSTRUCT      = (ERRBASE_INVALIDREQ + ERRCODE_INVALIDVCHKSTRUCT);
  398.   DBIERR_INVALIDRINTSTRUCT      = (ERRBASE_INVALIDREQ + ERRCODE_INVALIDRINTSTRUCT);
  399.   DBIERR_INVALIDRESTRTBLORDER   = (ERRBASE_INVALIDREQ + ERRCODE_INVALIDRESTRTBLORDER);
  400.   DBIERR_NAMENOTUNIQUE          = (ERRBASE_INVALIDREQ + ERRCODE_NAMENOTUNIQUE);
  401.   DBIERR_INDEXNAMEREQUIRED      = (ERRBASE_INVALIDREQ + ERRCODE_INDEXNAMEREQUIRED);
  402.   DBIERR_INVALIDSESHANDLE       = (ERRBASE_INVALIDREQ + ERRCODE_INVALIDSESHANDLE);
  403.   DBIERR_INVALIDRESTROP         = (ERRBASE_INVALIDREQ + ERRCODE_INVALIDRESTROP);
  404.   DBIERR_UNKNOWNDRIVER          = (ERRBASE_INVALIDREQ + ERRCODE_UNKNOWNDRIVER);
  405.   DBIERR_UNKNOWNDB              = (ERRBASE_INVALIDREQ + ERRCODE_UNKNOWNDB);
  406.   DBIERR_INVALIDPASSWORD        = (ERRBASE_INVALIDREQ + ERRCODE_INVALIDPASSWORD);
  407.   DBIERR_NOCALLBACK             = (ERRBASE_INVALIDREQ + ERRCODE_NOCALLBACK);
  408.   DBIERR_INVALIDCALLBACKBUFLEN  = (ERRBASE_INVALIDREQ + ERRCODE_INVALIDCALLBACKBUFLEN );
  409.   DBIERR_INVALIDDIR             = (ERRBASE_INVALIDREQ + ERRCODE_INVALIDDIR);
  410.   DBIERR_INVALIDXLATION         = (ERRBASE_INVALIDREQ + ERRCODE_INVALIDXLATION);
  411.   DBIERR_DIFFERENTTABLES        = (ERRBASE_INVALIDREQ + ERRCODE_DIFFERENTTABLES);
  412.   DBIERR_INVALIDBOOKMARK        = (ERRBASE_INVALIDREQ + ERRCODE_INVALIDBOOKMARK);
  413.   DBIERR_INVALIDINDEXNAME       = (ERRBASE_INVALIDREQ + ERRCODE_INVALIDINDEXNAME);
  414.   DBIERR_INVALIDIDXDESC         = (ERRBASE_INVALIDREQ + ERRCODE_INVALIDIDXDESC);
  415.   DBIERR_NOSUCHTABLE            = (ERRBASE_INVALIDREQ + ERRCODE_NOSUCHTABLE);
  416.   DBIERR_USECOUNT               = (ERRBASE_INVALIDREQ + ERRCODE_USECOUNT);
  417.   DBIERR_INVALIDKEY             = (ERRBASE_INVALIDREQ + ERRCODE_INVALIDKEY);
  418.   DBIERR_INDEXEXISTS            = (ERRBASE_INVALIDREQ + ERRCODE_INDEXEXISTS);
  419.   DBIERR_INDEXOPEN              = (ERRBASE_INVALIDREQ + ERRCODE_INDEXOPEN);
  420.   DBIERR_INVALIDBLOBLEN         = (ERRBASE_INVALIDREQ + ERRCODE_INVALIDBLOBLEN);
  421.   DBIERR_INVALIDBLOBHANDLE      = (ERRBASE_INVALIDREQ + ERRCODE_INVALIDBLOBHANDLE);
  422.   DBIERR_TABLEOPEN              = (ERRBASE_INVALIDREQ + ERRCODE_TABLEOPEN);
  423.   DBIERR_NEEDRESTRUCTURE        = (ERRBASE_INVALIDREQ + ERRCODE_NEEDRESTRUCTURE);
  424.   DBIERR_INVALIDMODE            = (ERRBASE_INVALIDREQ + ERRCODE_INVALIDMODE);
  425.   DBIERR_CANNOTCLOSE            = (ERRBASE_INVALIDREQ + ERRCODE_CANNOTCLOSE);
  426.   DBIERR_ACTIVEINDEX            = (ERRBASE_INVALIDREQ + ERRCODE_ACTIVEINDEX);
  427.   DBIERR_INVALIDUSRPASS         = (ERRBASE_INVALIDREQ + ERRCODE_INVALIDUSRPASS);
  428.   DBIERR_MULTILEVELCASCADE      = (ERRBASE_INVALIDREQ + ERRCODE_MULTILEVELCASCADE);
  429.   DBIERR_INVALIDFIELDNAME       = (ERRBASE_INVALIDREQ + ERRCODE_INVALIDFIELDNAME);
  430.   DBIERR_INVALIDTABLENAME       = (ERRBASE_INVALIDREQ + ERRCODE_INVALIDTABLENAME);
  431.   DBIERR_INVALIDLINKEXPR        = (ERRBASE_INVALIDREQ + ERRCODE_INVALIDLINKEXPR);
  432.   DBIERR_NAMERESERVED           = (ERRBASE_INVALIDREQ + ERRCODE_NAMERESERVED);
  433.   DBIERR_INVALIDFILEEXTN        = (ERRBASE_INVALIDREQ + ERRCODE_INVALIDFILEEXTN);
  434.   DBIERR_INVALIDLANGDRV         = (ERRBASE_INVALIDREQ + ERRCODE_INVALIDLANGDRV);
  435.   DBIERR_ALIASNOTOPEN           = (ERRBASE_INVALIDREQ + ERRCODE_ALIASNOTOPEN);
  436.   DBIERR_INCOMPATRECSTRUCTS     = (ERRBASE_INVALIDREQ + ERRCODE_INCOMPATRECSTRUCTS);
  437.   DBIERR_RESERVEDOSNAME         = (ERRBASE_INVALIDREQ + ERRCODE_RESERVEDDOSNAME);
  438.   DBIERR_DESTMUSTBEINDEXED      = (ERRBASE_INVALIDREQ + ERRCODE_DESTMUSTBEINDEXED);
  439.   DBIERR_INVALIDINDEXTYPE       = (ERRBASE_INVALIDREQ + ERRCODE_INVALIDINDEXTYPE);
  440.   DBIERR_LANGDRVMISMATCH        = (ERRBASE_INVALIDREQ + ERRCODE_LANGDRVMISMATCH);
  441.   DBIERR_NOSUCHFILTER           = (ERRBASE_INVALIDREQ + ERRCODE_NOSUCHFILTER);
  442.   DBIERR_INVALIDFILTER          = (ERRBASE_INVALIDREQ + ERRCODE_INVALIDFILTER);
  443.   DBIERR_INVALIDTABLECREATE     = (ERRBASE_INVALIDREQ + ERRCODE_INVALIDTABLECREATE);
  444.   DBIERR_INVALIDTABLEDELETE     = (ERRBASE_INVALIDREQ + ERRCODE_INVALIDTABLEDELETE);
  445.   DBIERR_INVALIDINDEXCREATE     = (ERRBASE_INVALIDREQ + ERRCODE_INVALIDINDEXCREATE);
  446.   DBIERR_INVALIDINDEXDELETE     = (ERRBASE_INVALIDREQ + ERRCODE_INVALIDINDEXDELETE);
  447.   DBIERR_INVALIDTABLE           = (ERRBASE_INVALIDREQ + ERRCODE_INVALIDTABLE);
  448.   DBIERR_MULTIRESULTS           = (ERRBASE_INVALIDREQ + ERRCODE_MULTIRESULTS);
  449.   DBIERR_INVALIDTIME            = (ERRBASE_INVALIDREQ + ERRCODE_INVALIDTIME);
  450.   DBIERR_INVALIDDATE            = (ERRBASE_INVALIDREQ + ERRCODE_INVALIDDATE);
  451.   DBIERR_INVALIDTIMESTAMP       = (ERRBASE_INVALIDREQ + ERRCODE_INVALIDTIMESTAMP);
  452.   DBIERR_DIFFERENTPATH          = (ERRBASE_INVALIDREQ + ERRCODE_DIFFERENTPATH);
  453.   DBIERR_MISMATCHARGS           = (ERRBASE_INVALIDREQ + ERRCODE_MISMATCHARGS);
  454.   DBIERR_FUNCTIONNOTFOUND       = (ERRBASE_INVALIDREQ + ERRCODE_FUNCTIONNOTFOUND);
  455.   DBIERR_MUSTUSEBASEORDER       = (ERRBASE_INVALIDREQ + ERRCODE_MUSTUSEBASEORDER);
  456.   DBIERR_INVALIDPROCEDURENAME   = (ERRBASE_INVALIDREQ + ERRCODE_INVALIDPROCEDURENAME);
  457.  
  458. { ERRCAT_LOCKCONFLICT }
  459. { =================== }
  460.  
  461.   ERRCODE_LOCKED                = 1;
  462.   ERRCODE_UNLOCKFAILED          = 2;
  463.   ERRCODE_FILEBUSY              = 3;
  464.   ERRCODE_DIRBUSY               = 4;
  465.   ERRCODE_FILELOCKED            = 5;
  466.   ERRCODE_DIRLOCKED             = 6;
  467.   ERRCODE_ALREADYLOCKED         = 7;
  468.   ERRCODE_NOTLOCKED             = 8;
  469.   ERRCODE_LOCKTIMEOUT           = 9;
  470.   ERRCODE_GROUPLOCKED           = 10;     { 0x0a }
  471.   ERRCODE_LOSTTBLLOCK           = 11;     { 0x0b }
  472.   ERRCODE_LOSTEXCLACCESS        = 12;     { 0x0c }
  473.   ERRCODE_NEEDEXCLACCESS        = 13;     { 0x0d }
  474.   ERRCODE_RECGROUPCONFLICT      = 14;     { 0x0e }
  475.   ERRCODE_DEADLOCK              = 15;
  476.   ERRCODE_ACTIVETRAN            = 16;
  477.   ERRCODE_NOACTIVETRAN          = 17;
  478.   ERRCODE_RECLOCKFAILED         = 18;
  479.   ERRCODE_OPTRECLOCKFAILED      = 19;
  480.   ERRCODE_OPTRECLOCKRECDEL      = 20;
  481.   ERRCODE_LOCKEDRECS            = 21;
  482.   ERRCODE_NEEDWRITELOCK         = 22;
  483.  
  484.   DBIERR_LOCKED                 = (ERRBASE_LOCKCONFLICT + ERRCODE_LOCKED);
  485.   DBIERR_UNLOCKFAILED           = (ERRBASE_LOCKCONFLICT + ERRCODE_UNLOCKFAILED);
  486.   DBIERR_FILEBUSY               = (ERRBASE_LOCKCONFLICT + ERRCODE_FILEBUSY);
  487.   DBIERR_DIRBUSY                = (ERRBASE_LOCKCONFLICT + ERRCODE_DIRBUSY);
  488.   DBIERR_FILELOCKED             = (ERRBASE_LOCKCONFLICT + ERRCODE_FILELOCKED);
  489.   DBIERR_DIRLOCKED              = (ERRBASE_LOCKCONFLICT + ERRCODE_DIRLOCKED);
  490.   DBIERR_ALREADYLOCKED          = (ERRBASE_LOCKCONFLICT + ERRCODE_ALREADYLOCKED);
  491.   DBIERR_NOTLOCKED              = (ERRBASE_LOCKCONFLICT + ERRCODE_NOTLOCKED);
  492.   DBIERR_LOCKTIMEOUT            = (ERRBASE_LOCKCONFLICT + ERRCODE_LOCKTIMEOUT);
  493.   DBIERR_GROUPLOCKED            = (ERRBASE_LOCKCONFLICT + ERRCODE_GROUPLOCKED);
  494.   DBIERR_LOSTTBLLOCK            = (ERRBASE_LOCKCONFLICT + ERRCODE_LOSTTBLLOCK);
  495.   DBIERR_LOSTEXCLACCESS         = (ERRBASE_LOCKCONFLICT + ERRCODE_LOSTEXCLACCESS);
  496.   DBIERR_NEEDEXCLACCESS         = (ERRBASE_LOCKCONFLICT  + ERRCODE_NEEDEXCLACCESS);
  497.   DBIERR_RECGROUPCONFLICT       = (ERRBASE_LOCKCONFLICT + ERRCODE_RECGROUPCONFLICT);
  498.   DBIERR_DEADLOCK               = (ERRBASE_LOCKCONFLICT + ERRCODE_DEADLOCK);
  499.   DBIERR_ACTIVETRAN             = (ERRBASE_LOCKCONFLICT + ERRCODE_ACTIVETRAN);
  500.   DBIERR_NOACTIVETRAN           = (ERRBASE_LOCKCONFLICT + ERRCODE_NOACTIVETRAN);
  501.   DBIERR_RECLOCKFAILED          = (ERRBASE_LOCKCONFLICT + ERRCODE_RECLOCKFAILED);
  502.   DBIERR_OPTRECLOCKFAILED       = (ERRBASE_LOCKCONFLICT + ERRCODE_OPTRECLOCKFAILED);
  503.   DBIERR_OPTRECLOCKRECDEL       = (ERRBASE_LOCKCONFLICT + ERRCODE_OPTRECLOCKRECDEL);
  504.  
  505. { ERRCAT_SECURITY }
  506. { =============== }
  507.  
  508.   ERRCODE_NOTSUFFFIELDRIGHTS    = 1;      { Not sufficient field  rights for operation }
  509.   ERRCODE_NOTSUFFTABLERIGHTS    = 2;      { Not sufficient table  rights for operation }
  510.   ERRCODE_NOTSUFFFAMILYRIGHTS   = 3;      { Not sufficient family rights for operation }
  511.   ERRCODE_READONLYDIR           = 4;      { Is a read-only directory }
  512.   ERRCODE_READONLYDB            = 5;      { Database is read-only }
  513.   ERRCODE_READONLYFLD           = 6;      { Trying to modify read-only field }
  514.   ERRCODE_TBLENCRYPTED          = 7;      { Table is encrypted (dBASE only) }
  515.   ERRCODE_NOTSUFFSQLRIGHTS      = 8;      { Not sufficient sql rights for operation }
  516.  
  517.  
  518.   DBIERR_NOTSUFFFIELDRIGHTS     = (ERRBASE_SEC + ERRCODE_NOTSUFFFIELDRIGHTS);
  519.   DBIERR_NOTSUFFTABLERIGHTS     = (ERRBASE_SEC + ERRCODE_NOTSUFFTABLERIGHTS);
  520.   DBIERR_NOTSUFFFAMILYRIGHTS    = (ERRBASE_SEC + ERRCODE_NOTSUFFFAMILYRIGHTS);
  521.   DBIERR_READONLYDIR            = (ERRBASE_SEC + ERRCODE_READONLYDIR);
  522.   DBIERR_READONLYDB             = (ERRBASE_SEC + ERRCODE_READONLYDB);
  523.   DBIERR_READONLYFLD            = (ERRBASE_SEC + ERRCODE_READONLYFLD);
  524.   DBIERR_TBLENCRYPTED           = (ERRBASE_SEC + ERRCODE_TBLENCRYPTED);
  525.   DBIERR_NOTSUFFSQLRIGHTS       = (ERRBASE_SEC + ERRCODE_NOTSUFFSQLRIGHTS);
  526.  
  527.  
  528. { ERRCAT_INVALIDCONTEXT }
  529. { ===================== }
  530.  
  531.   ERRCODE_NOTABLOB              = 1;      { Field is not a blob }
  532.   ERRCODE_BLOBOPENED            = 2;      { Blob already opened }
  533.   ERRCODE_BLOBNOTOPENED         = 3;      { Blob not opened }
  534.   ERRCODE_NA                    = 4;      { Operation not applicable }
  535.   ERRCODE_NOTINDEXED            = 5;      { Table is not indexed }
  536.   ERRCODE_NOTINITIALIZED        = 6;      { Engine not initialized }
  537.   ERRCODE_MULTIPLEINIT          = 7;      { Attempt to re-initialize engine }
  538.   ERRCODE_NOTSAMESESSION        = 8;      { Attempt to mix objs from diff ses }
  539.   ERRCODE_PDXDRIVERNOTACTIVE    = 9;      { Paradox driver not active }
  540.   ERRCODE_DRIVERNOTLOADED       = 10;     { 0x0a Driver not loaded }
  541.   ERRCODE_TABLEREADONLY         = 11;     { 0x0b Table is read only }
  542.   ERRCODE_NOASSOCINDEX          = 12;     { 0x0c No index associated with the cursor }
  543.   ERRCODE_HASOPENCURSORS        = 13;     { 0x0d Has open cursors }
  544.   ERRCODE_NOTABLESUPPORT        = 14;     { 0x0e Op cannot be done on this table }
  545.   ERRCODE_INDEXREADONLY         = 15;     { 0x0f Index is read only }
  546.   ERRCODE_NOUNIQUERECS          = 16;     { 0x10 Records are not unique }
  547.   ERRCODE_NOTCURSESSION         = 17;     { 0x11 Not the current/active session }
  548.   ERRCODE_INVALIDKEYWORD        = 18;     { 0x12 Invalid use of keyword. }
  549.   ERRCODE_CONNECTINUSE          = 19;     { 0x13 Connection in use }
  550.   ERRCODE_CONNECTNOTSHARED      = 20;     { 0x14 Passthru SQL connection not share }
  551.  
  552.  
  553.   DBIERR_NOTABLOB               = (ERRBASE_IC + ERRCODE_NOTABLOB);
  554.   DBIERR_BLOBOPENED             = (ERRBASE_IC + ERRCODE_BLOBOPENED);
  555.   DBIERR_BLOBNOTOPENED          = (ERRBASE_IC + ERRCODE_BLOBNOTOPENED);
  556.   DBIERR_NA                     = (ERRBASE_IC + ERRCODE_NA);
  557.   DBIERR_NOTINDEXED             = (ERRBASE_IC + ERRCODE_NOTINDEXED);
  558.   DBIERR_NOTINITIALIZED         = (ERRBASE_IC + ERRCODE_NOTINITIALIZED);
  559.   DBIERR_MULTIPLEINIT           = (ERRBASE_IC + ERRCODE_MULTIPLEINIT);
  560.   DBIERR_NOTSAMESESSION         = (ERRBASE_IC + ERRCODE_NOTSAMESESSION);
  561.   DBIERR_PDXDRIVERNOTACTIVE     = (ERRBASE_IC + ERRCODE_PDXDRIVERNOTACTIVE);
  562.   DBIERR_DRIVERNOTLOADED        = (ERRBASE_IC + ERRCODE_DRIVERNOTLOADED);
  563.   DBIERR_TABLEREADONLY          = (ERRBASE_IC + ERRCODE_TABLEREADONLY);
  564.   DBIERR_NOASSOCINDEX           = (ERRBASE_IC + ERRCODE_NOASSOCINDEX);
  565.   DBIERR_HASOPENCURSORS         = (ERRBASE_IC + ERRCODE_HASOPENCURSORS);
  566.   DBIERR_NOTABLESUPPORT         = (ERRBASE_IC + ERRCODE_NOTABLESUPPORT);
  567.   DBIERR_INDEXREADONLY          = (ERRBASE_IC + ERRCODE_INDEXREADONLY);
  568.   DBIERR_NOUNIQUERECS           = (ERRBASE_IC + ERRCODE_NOUNIQUERECS);
  569.   DBIERR_NOTCURSESSION          = (ERRBASE_IC + ERRCODE_NOTCURSESSION);
  570.   DBIERR_INVALIDKEYWORD         = (ERRBASE_IC + ERRCODE_INVALIDKEYWORD);
  571.   DBIERR_CONNECTINUSE           = (ERRBASE_IC + ERRCODE_CONNECTINUSE);
  572.   DBIERR_CONNECTNOTSHARED       = (ERRBASE_IC + ERRCODE_CONNECTNOTSHARED);
  573.  
  574.  
  575. { ERRCAT_OS }
  576. { ========= }
  577. { DOS extended errors: }
  578.  
  579.   ERRCODE_OSEINVFNC             = 1;      { Invalid function number }
  580.   ERRCODE_OSENOENT              = 2;      { No such file or directory }
  581.   ERRCODE_OSENOPATH             = 3;      { Path not found }
  582.   ERRCODE_OSEMFILE              = 4;      { Too many open files }
  583.   ERRCODE_OSEACCES              = 5;      { Permission denied }
  584.   ERRCODE_OSEBADF               = 6;      { Bad file number }
  585.   ERRCODE_OSECONTR              = 7;      { Memory blocks destroyed }
  586.   ERRCODE_OSENOMEM              = 8;      { Not enough core }
  587.   ERRCODE_OSEINVMEM             = 9;      { Invalid memory block address }
  588.   ERRCODE_OSEINVENV             = 10;     { 0x0a Invalid environment }
  589.   ERRCODE_OSEINVFMT             = 11;     { 0x0b Invalid format }
  590.   ERRCODE_OSEINVACC             = 12;     { 0x0c Invalid access code }
  591.   ERRCODE_OSEINVDAT             = 13;     { 0x0d Invalid data }
  592.   ERRCODE_OSENODEV              = 15;     { 0x0f No such device }
  593.   ERRCODE_OSECURDIR             = 16;     { 0x10 Attempt to remove curdir }
  594.   ERRCODE_OSENOTSAM             = 17;     { 0x11 Not same device }
  595.   ERRCODE_OSENMFILE             = 18;     { 0x12 No more files }
  596.   ERRCODE_OSEINVAL              = 19;     { 0x13 Invalid argument }
  597.   ERRCODE_OSE2BIG               = 20;     { 0x14 Arg list too long }
  598.   ERRCODE_OSENOEXEC             = 21;     { 0x15 Exec format error }
  599.   ERRCODE_OSEXDEV               = 22;     { 0x16 Cross-device link }
  600.   ERRCODE_OSEDOM                = 33;     { 0x21 Math argument }
  601.   ERRCODE_OSERANGE              = 34;     { 0x22 Result to large }
  602.   ERRCODE_OSEEXIST              = 35;     { 0x23 File already exists }
  603.   ERRCODE_OSUNKNOWN             = 39;     { 0x27 Unkown | illegal error from rtl }
  604.  
  605.   ERRCODE_OSSHAREVIOL           = 50;     { 0x32 Share viol, ext. err 0x20 }
  606.   ERRCODE_OSLOCKVIOL            = 51;     { 0x33 Lock viol, ext. err 0x21 }
  607.   ERRCODE_OSINT24FAIL           = 52;     { 0x34 INT24 called }
  608.   ERRCODE_OSDRIVENOTREADY       = 53;     { 0x35 Drive not ready }
  609.  
  610.  
  611.  
  612. { OTHER Os errors: }
  613. { 1. idapi errors  }
  614. { 2. errors from non-dos systems ( i.e. NOVELL ) }
  615.  
  616.   ERRCODE_NOTEXACT              = 100;    { 0x64 Not exact read/write }
  617.   ERRCODE_OSNETERR              = 101;    { 0x65 Generic network error }
  618.   ERRCODE_OSUNKNOWNSRVERR       = 102;    { 0x66 Error from file server }
  619.   ERRCODE_SERVERNOMEMORY        = 103;    { 0x67 Server out of memory }
  620.   ERRCODE_OSALREADYLOCKED       = 104;    { 0x68 Record already locked (by you) }
  621.   ERRCODE_OSNOTLOCKED           = 105;    { 0x69 Record not locked }
  622.   ERRCODE_NOSERVERSW            = 106;    { 0x6a Server software not running the workstation/server }
  623.  
  624.  
  625.   DBIERR_OSEINVFNC              = ( ERRBASE_OS + ERRCODE_OSEINVFNC );
  626.   DBIERR_OSENOENT               = ( ERRBASE_OS + ERRCODE_OSENOENT );
  627.   DBIERR_OSENOPATH              = ( ERRBASE_OS + ERRCODE_OSENOPATH );
  628.   DBIERR_OSEMFILE               = ( ERRBASE_OS + ERRCODE_OSEMFILE );
  629.   DBIERR_OSEACCES               = ( ERRBASE_OS + ERRCODE_OSEACCES );
  630.   DBIERR_OSEBADF                = ( ERRBASE_OS + ERRCODE_OSEBADF );
  631.   DBIERR_OSECONTR               = ( ERRBASE_OS + ERRCODE_OSECONTR );
  632.   DBIERR_OSENOMEM               = ( ERRBASE_OS + ERRCODE_OSENOMEM );
  633.   DBIERR_OSEINVMEM              = ( ERRBASE_OS + ERRCODE_OSEINVMEM );
  634.   DBIERR_OSEINVENV              = ( ERRBASE_OS + ERRCODE_OSEINVENV );
  635.   DBIERR_OSEINVFMT              = ( ERRBASE_OS + ERRCODE_OSEINVFMT );
  636.   DBIERR_OSEINVACC              = ( ERRBASE_OS + ERRCODE_OSEINVACC );
  637.   DBIERR_OSEINVDAT              = ( ERRBASE_OS + ERRCODE_OSEINVDAT );
  638.   DBIERR_OSENODEV               = ( ERRBASE_OS + ERRCODE_OSENODEV );
  639.   DBIERR_OSECURDIR              = ( ERRBASE_OS + ERRCODE_OSECURDIR );
  640.   DBIERR_OSENOTSAM              = ( ERRBASE_OS + ERRCODE_OSENOTSAM );
  641.   DBIERR_OSENMFILE              = ( ERRBASE_OS + ERRCODE_OSENMFILE );
  642.   DBIERR_OSEINVAL               = ( ERRBASE_OS + ERRCODE_OSEINVAL );
  643.   DBIERR_OSE2BIG                = ( ERRBASE_OS + ERRCODE_OSE2BIG );
  644.   DBIERR_OSENOEXEC              = ( ERRBASE_OS + ERRCODE_OSENOEXEC );
  645.   DBIERR_OSEXDEV                = ( ERRBASE_OS + ERRCODE_OSEXDEV );
  646.   DBIERR_OSEDOM                 = ( ERRBASE_OS + ERRCODE_OSEDOM );
  647.   DBIERR_OSERANGE               = ( ERRBASE_OS + ERRCODE_OSERANGE );
  648.   DBIERR_OSEEXIST               = ( ERRBASE_OS + ERRCODE_OSEEXIST );
  649.   DBIERR_OSUNKNOWN              = ( ERRBASE_OS + ERRCODE_OSUNKNOWN );
  650.   DBIERR_OSSHAREVIOL            = ( ERRBASE_OS + ERRCODE_OSSHAREVIOL );
  651.   DBIERR_OSLOCKVIOL             = ( ERRBASE_OS + ERRCODE_OSLOCKVIOL );
  652.   DBIERR_OSNETERR               = ( ERRBASE_OS + ERRCODE_OSNETERR );
  653.   DBIERR_OSINT24FAIL            = ( ERRBASE_OS + ERRCODE_OSINT24FAIL );
  654.   DBIERR_OSDRIVENOTREADY        = ( ERRBASE_OS + ERRCODE_OSDRIVENOTREADY );
  655.  
  656.  
  657.   DBIERR_NOTEXACT               = ( ERRBASE_OS + ERRCODE_NOTEXACT );
  658.   DBIERR_OSUNKNOWNSRVERR        = ( ERRBASE_OS + ERRCODE_OSUNKNOWNSRVERR );
  659.   DBIERR_SERVERNOMEMORY         = ( ERRBASE_OS + ERRCODE_SERVERNOMEMORY );
  660.   DBIERR_OSALREADYLOCKED        = ( ERRBASE_OS + ERRCODE_OSALREADYLOCKED );
  661.   DBIERR_OSNOTLOCKED            = ( ERRBASE_OS + ERRCODE_OSNOTLOCKED );
  662.   DBIERR_NOSERVERSW             = ( ERRBASE_OS + ERRCODE_NOSERVERSW );
  663.  
  664. { ERRCAT_NETWORK }
  665. { ============== }
  666.  
  667.   ERRCODE_NETINITERR            = 1;      { Net init failed }
  668.   ERRCODE_NETUSERLIMIT          = 2;      { Net user limit exceeded }
  669.   ERRCODE_NETFILEVERSION        = 3;      { Wrong net file version }
  670.   ERRCODE_NETFILELOCKED         = 4;      { Not able to lock net file }
  671.   ERRCODE_DIRNOTPRIVATE         = 5;
  672.   ERRCODE_NETMULTIPLE           = 6;      { Multiple net files in use }
  673.   ERRCODE_NETUNKNOWN            = 7;      { Unknown net error }
  674.   ERRCODE_SHAREDFILE            = 8;      { Cannot access a shared file }
  675.   ERRCODE_SHARENOTLOADED        = 9;      { Share not loaded }
  676.   ERRCODE_NOTONANETWORK         = 10;     { 0x0a Not an Network }
  677.   ERRCODE_SQLCOMMLOST           = 11;     { 0x0b Lost Communication with SQL server }
  678.   ERRCODE_SERVERCOMMLOST        = 12;     { 0x0c Lost Communication with IDAPI server }
  679.   ERRCODE_SQLSERVERNOTFOUND     = 13;     { 0x0d SQL Server not found }
  680.   ERRCODE_SERVERNOTFOUND        = 14;     { 0x0e SQL Server not found }
  681.  
  682.   DBIERR_NETINITERR             = (ERRBASE_NETWORK + ERRCODE_NETINITERR);
  683.   DBIERR_NETUSERLIMIT           = (ERRBASE_NETWORK + ERRCODE_NETUSERLIMIT);
  684.   DBIERR_NETFILEVERSION         = (ERRBASE_NETWORK + ERRCODE_NETFILEVERSION);
  685.   DBIERR_NETFILELOCKED          = (ERRBASE_NETWORK + ERRCODE_NETFILELOCKED);
  686.   DBIERR_DIRNOTPRIVATE          = (ERRBASE_NETWORK + ERRCODE_DIRNOTPRIVATE);
  687.   DBIERR_NETMULTIPLE            = (ERRBASE_NETWORK + ERRCODE_NETMULTIPLE);
  688.   DBIERR_NETUNKNOWN             = (ERRBASE_NETWORK + ERRCODE_NETUNKNOWN);
  689.   DBIERR_SHAREDFILE             = (ERRBASE_NETWORK + ERRCODE_SHAREDFILE);
  690.   DBIERR_SHARENOTLOADED         = (ERRBASE_NETWORK + ERRCODE_SHARENOTLOADED);
  691.   DBIERR_NOTONANETWORK          = (ERRBASE_NETWORK + ERRCODE_NOTONANETWORK);
  692.   DBIERR_SQLCOMMLOST            = (ERRBASE_NETWORK + ERRCODE_SQLCOMMLOST);
  693.   DBIERR_SERVERCOMMLOST         = (ERRBASE_NETWORK + ERRCODE_SERVERCOMMLOST);
  694.   DBIERR_SQLSERVERNOTFOUND      = (ERRBASE_NETWORK + ERRCODE_SQLSERVERNOTFOUND);
  695.   DBIERR_SERVERNOTFOUND         = (ERRBASE_NETWORK + ERRCODE_SERVERNOTFOUND);
  696.  
  697. { ERRCAT_DRIVER }
  698. { ============= }
  699.  
  700.   ERRCODE_WRONGDRVNAME          = 1;      { Wrong driver name }
  701.   ERRCODE_WRONGSYSVER           = 2;      { Wrong system version }
  702.   ERRCODE_WRONGDRVVER           = 3;      { Wrong driver version }
  703.   ERRCODE_WRONGDRVTYPE          = 4;      { Wrong driver type }
  704.   ERRCODE_CANNOTLOADDRV         = 5;      { Can not load driver }
  705.   ERRCODE_CANNOTLOADLDDRV       = 6;      { Can not load language driver }
  706.   ERRCODE_VENDINITFAIL          = 7;      { Vendor init failure }
  707.  
  708.  
  709.   DBIERR_WRONGDRVNAME           = (ERRBASE_DRIVER + ERRCODE_WRONGDRVNAME);
  710.   DBIERR_WRONGSYSVER            = (ERRBASE_DRIVER + ERRCODE_WRONGSYSVER);
  711.   DBIERR_WRONGDRVVER            = (ERRBASE_DRIVER + ERRCODE_WRONGDRVVER);
  712.   DBIERR_WRONGDRVTYPE           = (ERRBASE_DRIVER + ERRCODE_WRONGDRVTYPE);
  713.   DBIERR_CANNOTLOADDRV          = (ERRBASE_DRIVER + ERRCODE_CANNOTLOADDRV);
  714.   DBIERR_CANNOTLOADLDDRV        = (ERRBASE_DRIVER + ERRCODE_CANNOTLOADLDDRV);
  715.   DBIERR_VENDINITFAIL           = (ERRBASE_DRIVER + ERRCODE_VENDINITFAIL);
  716.  
  717.  
  718. { ERRCAT_QUERY }
  719. { ============ }
  720.  
  721.  
  722.  
  723.   DBICODE_AMBJOASY              = 1;      { obsolete }
  724.   DBICODE_AMBJOSYM              = 2;      { obsolete }
  725.   DBICODE_AMBOUTEX              = 3;
  726.   DBICODE_AMBOUTPR              = 4;      { obsolete }
  727.   DBICODE_AMBSYMAS              = 5;      { obsolete }
  728.   DBICODE_ASETOPER              = 6;
  729.   DBICODE_AVENUMDA              = 7;
  730.   DBICODE_BADEXPR1              = 8;
  731.   DBICODE_BADFLDOR              = 9;
  732.   DBICODE_BADVNAME              = 10;     { 0x0a }
  733.   DBICODE_BITMAPER              = 11;     { 0x0b }
  734.   DBICODE_CALCBADR              = 12;     { 0x0c }
  735.   DBICODE_CALCTYPE              = 13;     { 0x0d }
  736.   DBICODE_CHGTO1TI              = 14;     { 0x0e }
  737.   DBICODE_CHGTOCHG              = 15;     { 0x0f }
  738.   DBICODE_CHGTOEXP              = 16;     { 0x10 }
  739.   DBICODE_CHGTOINS              = 17;     { 0x11 }
  740.   DBICODE_CHGTONEW              = 18;     { 0x12 }
  741.   DBICODE_CHGTOVAL              = 19;     { 0x13 }
  742.   DBICODE_CHKMRKFI              = 20;     { 0x14 }
  743.   DBICODE_CHNAMBIG              = 21;     { 0x15 }
  744.   DBICODE_CHUNKERR              = 22;     { 0x16 }
  745.   DBICODE_COLUM255              = 23;     { 0x17 }
  746.   DBICODE_CONAFTAS              = 24;     { 0x18 }
  747.   DBICODE_DEL1TIME              = 25;     { 0x19 }
  748.   DBICODE_DELAMBIG              = 26;     { 0x1a }
  749.   DBICODE_DELFRDEL              = 27;     { 0x1b }
  750.   DBICODE_EGFLDTYP              = 28;     { 0x1c }
  751.   DBICODE_EXAMINOR              = 29;     { 0x1d }
  752.   DBICODE_EXPRTYPS              = 30;     { 0x1e }
  753.   DBICODE_EXTRACOM              = 31;     { 0x1f }
  754.   DBICODE_EXTRAORO              = 32;     { 0x20 }
  755.   DBICODE_EXTRAQRO              = 33;     { 0x21 }
  756.   DBICODE_FIND1ATT              = 34;     { 0x22 }
  757.   DBICODE_FINDANST              = 35;     { 0x23 }
  758.   DBICODE_GRPNOSET              = 36;     { 0x24 }
  759.   DBICODE_GRPSTROW              = 37;     { 0x25 }
  760.   DBICODE_IDFINLCO              = 38;     { 0x26 }
  761.   DBICODE_IDFPERLI              = 39;     { 0x27 }
  762.   DBICODE_INANEXPR              = 40;     { 0x28 }
  763.   DBICODE_INS1TIME              = 41;     { 0x29 }
  764.   DBICODE_INSAMBIG              = 42;     { 0x2a }
  765.   DBICODE_INSDELCH              = 43;     { 0x2b }
  766.   DBICODE_INSEXPRR              = 44;     { 0x2c }
  767.   DBICODE_INSTOINS              = 45;     { 0x2d }
  768.   DBICODE_ISARRAY               = 46;     { 0x2e }
  769.   DBICODE_LABELERR              = 47;     { 0x2f }
  770.   DBICODE_LINKCALC              = 48;     { 0x30 }
  771.   DBICODE_LNGVNAME              = 49;     { 0x31 }
  772.   DBICODE_LONGQURY              = 50;     { 0x32 }
  773.   DBICODE_MEMVPROC              = 51;     { 0x33 }
  774.   DBICODE_MISNGCOM              = 52;     { 0x34 }
  775.   DBICODE_MISNGRPA              = 53;     { 0x35 }
  776.   DBICODE_MISSRTQU              = 54;     { 0x36 }
  777.   DBICODE_NAMTWICE              = 55;     { 0x37 }
  778.   DBICODE_NOCHKMAR              = 56;     { 0x38 }
  779.   DBICODE_NODEFOCC              = 57;     { 0x39 }
  780.   DBICODE_NOGROUPS              = 58;     { 0x3a }
  781.   DBICODE_NONSENSE              = 59;     { 0x3b }
  782.   DBICODE_NOPATTER              = 60;     { 0x3c }
  783.   DBICODE_NOSUCHDA              = 61;     { 0x3d }
  784.   DBICODE_NOVALUE               = 62;     { 0x3e }
  785.   DBICODE_ONLYCONS              = 63;     { 0x3f }
  786.   DBICODE_ONLYSETR              = 64;     { 0x40 }
  787.   DBICODE_OUTSENS1              = 65;     { 0x41 }
  788.   DBICODE_OUTTWIC1              = 66;     { 0x42 }
  789.   DBICODE_PAROWCNT              = 67;     { 0x43 }
  790.   DBICODE_PERSEPAR              = 68;     { 0x44 }
  791.   DBICODE_PROCPLSW              = 69;     { 0x45 }
  792.   DBICODE_PWINSRTS              = 70;     { 0x46 }
  793.   DBICODE_PWMODRTS              = 71;     { 0x47 }
  794.   DBICODE_QBEFLDFOUND           = 72;     { 0x48 }
  795.   DBICODE_QBENOFENCE            = 73;     { 0x49 }
  796.   DBICODE_QBENOFENCET           = 74;     { 0x4a }
  797.   DBICODE_QBENOHEADERT          = 75;     { 0x4b }
  798.   DBICODE_QBENOTAB              = 76;     { 0x4c }
  799.   DBICODE_QBENUMCOLS            = 77;     { 0x4d }
  800.   DBICODE_QBEOPENTAB            = 78;     { 0x4e }
  801.   DBICODE_QBETWICE              = 79;     { 0x4f }
  802.   DBICODE_QRYNOANSWER           = 80;     { 0x50 }
  803.   DBICODE_QRYNOTPREP            = 81;     { 0x51 }
  804.   DBICODE_QUAINDEL              = 82;     { 0x52 }
  805.   DBICODE_QUAININS              = 83;     { 0x53 }
  806.   DBICODE_RAGININS              = 84;     { 0x54 }
  807.   DBICODE_RAGINSET              = 85;     { 0x55 }
  808.   DBICODE_ROWUSERR              = 86;     { 0x56 }
  809.   DBICODE_SETEXPEC              = 87;     { 0x57 }
  810.   DBICODE_SETVAMB1              = 88;     { 0x58 }
  811.   DBICODE_SETVBAD1              = 89;     { 0x59 }
  812.   DBICODE_SETVDEF1              = 90;     { 0x5a }
  813.   DBICODE_SUMNUMBE              = 91;     { 0x5b }
  814.   DBICODE_TBLISWP3              = 92;     { 0x5c }
  815.   DBICODE_TOKENNOT              = 93;     { 0x5d }
  816.   DBICODE_TWOOUTR1              = 94;     { 0x5e }
  817.   DBICODE_TYPEMISM              = 95;     { 0x5f }
  818.   DBICODE_UNRELQ1               = 96;     { 0x60 }
  819.   DBICODE_UNUSEDST              = 97;     { 0x61 }
  820.   DBICODE_USEINSDE              = 98;     { 0x62 }
  821.   DBICODE_USEOFCHG              = 99;     { 0x63 }
  822.   DBICODE_VARMUSTF              = 100;    { 0x64 }
  823.   DBICODE_REGISTER              = 101;    { 0x65 }
  824.   DBICODE_LONGEXPR              = 102;    { 0x66 }
  825.   DBICODE_REFRESH               = 103;    { 0x67 }
  826.   DBICODE_CANCEXCEPT            = 104;    { 0x68 }
  827.   DBICODE_DBEXCEPT              = 105;    { 0x69 }
  828.   DBICODE_MEMEXCEPT             = 106;    { 0x6a }
  829.   DBICODE_FATALEXCEPT           = 107;    { 0x6b }
  830.   DBICODE_QRYNIY                = 108;    { 0x6c }
  831.   DBICODE_BADFORMAT             = 109;    { 0x6d }
  832.   DBICODE_QRYEMPTY              = 110;    { 0x6e }
  833.   DBICODE_NOQRYTOPREP           = 111;    { 0x6f }
  834.   DBICODE_BUFFTOOSMALL          = 112;    { 0x70 }
  835.   DBICODE_QRYNOTPARSE           = 113;    { 0x71 }
  836.   DBICODE_NOTHANDLE             = 114;    { 0x72 }
  837.   DBICODE_QRYSYNTERR            = 115;    { 0x73 }
  838.   DBICODE_QXFLDCOUNT            = 116;    { 0x74 }
  839.   DBICODE_QXFLDSYMNOTFOUND      = 117;    { 0x75 }
  840.   DBICODE_QXTBLSYMNOTFOUND      = 118;    { 0x76 }
  841.   DBICODE_BLOBTERM              = 119;    { 0x77 }
  842.   DBICODE_BLOBERR               = 120;    { 0x78 }
  843.   DBICODE_RESTARTQRY            = 121;    { 0x79 }
  844.   DBICODE_UNKNOWNANSTYPE        = 122;    { 0x7a }
  845.  
  846. { Internal QBE use Only. }
  847.   DBICODE_SQLG_MDIST            = 123;    { 0x7b }
  848.   DBICODE_SQLG_NOARI            = 124;    { 0x7c }
  849.   DBICODE_SQLG_LIKEN            = 125;    { 0x7d }
  850.   DBICODE_SQLG_ALPHO            = 126;    { 0x7e }
  851.   DBICODE_SQLG_DATEO            = 127;    { 0x7f }
  852.   DBICODE_SQLG_RELOP            = 128;    { 0x80 }
  853.   DBICODE_SQLG_ONLYC            = 129;    { 0x81 }
  854.   DBICODE_SQLG_CNTLN            = 130;    { 0x82 }
  855.   DBICODE_SQLG_CHINI            = 131;    { 0x83 }
  856.   DBICODE_SQLG_UNION            = 132;    { 0x84 }
  857.   DBICODE_SQLG_SLFIN            = 133;    { 0x85 }
  858.   DBICODE_SQLG_OTJVR            = 134;    { 0x86 }
  859.   DBICODE_SQLG_STROW            = 135;    { 0x87 }
  860.   DBICODE_SQLG_QUANT            = 136;    { 0x88 }
  861.   DBICODE_SQLG_REGSO            = 137;    { 0x89 }
  862.   DBICODE_SQLG_COUNT            = 138;    { 0x8a }
  863.   DBICODE_SQLG_AVERA            = 139;    { 0x8b }
  864.   DBICODE_SQLG_DATEA            = 140;    { 0x8c }
  865.   DBICODE_SQLG_BADPT            = 141;    { 0x8d }
  866.   DBICODE_SQLG_RELPA            = 142;    { 0x8e }
  867.   DBICODE_SQLG_PATRN            = 143;    { 0x8f }
  868.   DBICODE_SQLG_FNDSU            = 144;    { 0x90 }
  869.   DBICODE_SQLG_IFDCS            = 145;    { 0x91 }
  870.   DBICODE_SQLG_IDCCO            = 146;    { 0x92 }
  871.   DBICODE_SQLG_ONLYI            = 147;    { 0x93 }
  872.   DBICODE_SQLG_SQLDIALECT       = 148;    { 0x94 }
  873.   DBICODE_SQLG_NOQUERY          = 149;    { 0x95 }
  874. { End of Internal.       }
  875.  
  876.   DBICODE_BLOBGROUP             = 150;    { 0x96 }
  877.   DBICODE_QRYNOPROP             = 151;    { 0x97 }
  878.   DBICODE_ANSTYPNOTSUP          = 152;    { 0x98 }
  879.   DBICODE_ANSALIASNOTSUP        = 153;    { 0x99 }
  880.   DBICODE_INSBLOBREQ            = 154;    { 0x9a }
  881.   DBICODE_CHGUNIQUENDXREQ       = 155;    { 0x9b }
  882.   DBICODE_DELUNIQUENDXREQ       = 156;    { 0x9c }
  883.   DBICODE_SQLNOFULLUPDATE       = 157;    { 0x9d }
  884.   DBICODE_CANTEXECREMOTE        = 158;    { 0x9e }
  885.   DBICODE_UNEXPECTEDEOC         = 159;    { 0x9f }
  886.   DBICODE_SQLPARAMNOTSET        = 160;    { 0xA0 }
  887.   DBICODE_QUERYTOOLONG          = 161;    { 0xA1 }
  888.  
  889.  
  890.   DBIERR_AMBJOASY               = (ERRBASE_QUERY+DBICODE_AMBJOASY);
  891.   DBIERR_AMBJOSYM               = (ERRBASE_QUERY+DBICODE_AMBJOSYM);
  892.   DBIERR_AMBOUTEX               = (ERRBASE_QUERY+DBICODE_AMBOUTEX);
  893.   DBIERR_AMBOUTPR               = (ERRBASE_QUERY+DBICODE_AMBOUTPR);
  894.   DBIERR_AMBSYMAS               = (ERRBASE_QUERY+DBICODE_AMBSYMAS);
  895.   DBIERR_ASETOPER               = (ERRBASE_QUERY+DBICODE_ASETOPER);
  896.   DBIERR_AVENUMDA               = (ERRBASE_QUERY+DBICODE_AVENUMDA);
  897.   DBIERR_BADEXPR1               = (ERRBASE_QUERY+DBICODE_BADEXPR1);
  898.   DBIERR_BADFLDOR               = (ERRBASE_QUERY+DBICODE_BADFLDOR);
  899.   DBIERR_BADVNAME               = (ERRBASE_QUERY+DBICODE_BADVNAME);
  900.   DBIERR_BITMAPER               = (ERRBASE_QUERY+DBICODE_BITMAPER);
  901.   DBIERR_CALCBADR               = (ERRBASE_QUERY+DBICODE_CALCBADR);
  902.   DBIERR_CALCTYPE               = (ERRBASE_QUERY+DBICODE_CALCTYPE);
  903.   DBIERR_CHGTO1TI               = (ERRBASE_QUERY+DBICODE_CHGTO1TI);
  904.   DBIERR_CHGTOCHG               = (ERRBASE_QUERY+DBICODE_CHGTOCHG);
  905.   DBIERR_CHGTOEXP               = (ERRBASE_QUERY+DBICODE_CHGTOEXP);
  906.   DBIERR_CHGTOINS               = (ERRBASE_QUERY+DBICODE_CHGTOINS);
  907.   DBIERR_CHGTONEW               = (ERRBASE_QUERY+DBICODE_CHGTONEW);
  908.   DBIERR_CHGTOVAL               = (ERRBASE_QUERY+DBICODE_CHGTOVAL);
  909.   DBIERR_CHKMRKFI               = (ERRBASE_QUERY+DBICODE_CHKMRKFI);
  910.   DBIERR_CHNAMBIG               = (ERRBASE_QUERY+DBICODE_CHNAMBIG);
  911.   DBIERR_CHUNKERR               = (ERRBASE_QUERY+DBICODE_CHUNKERR);
  912.   DBIERR_COLUM255               = (ERRBASE_QUERY+DBICODE_COLUM255);
  913.   DBIERR_CONAFTAS               = (ERRBASE_QUERY+DBICODE_CONAFTAS);
  914.   DBIERR_DEL1TIME               = (ERRBASE_QUERY+DBICODE_DEL1TIME);
  915.   DBIERR_DELAMBIG               = (ERRBASE_QUERY+DBICODE_DELAMBIG);
  916.   DBIERR_DELFRDEL               = (ERRBASE_QUERY+DBICODE_DELFRDEL);
  917.   DBIERR_EGFLDTYP               = (ERRBASE_QUERY+DBICODE_EGFLDTYP);
  918.   DBIERR_EXAMINOR               = (ERRBASE_QUERY+DBICODE_EXAMINOR);
  919.   DBIERR_EXPRTYPS               = (ERRBASE_QUERY+DBICODE_EXPRTYPS);
  920.   DBIERR_EXTRACOM               = (ERRBASE_QUERY+DBICODE_EXTRACOM);
  921.   DBIERR_EXTRAORO               = (ERRBASE_QUERY+DBICODE_EXTRAORO);
  922.   DBIERR_EXTRAQRO               = (ERRBASE_QUERY+DBICODE_EXTRAQRO);
  923.   DBIERR_FIND1ATT               = (ERRBASE_QUERY+DBICODE_FIND1ATT);
  924.   DBIERR_FINDANST               = (ERRBASE_QUERY+DBICODE_FINDANST);
  925.   DBIERR_GRPNOSET               = (ERRBASE_QUERY+DBICODE_GRPNOSET);
  926.   DBIERR_GRPSTROW               = (ERRBASE_QUERY+DBICODE_GRPSTROW);
  927.   DBIERR_IDFINLCO               = (ERRBASE_QUERY+DBICODE_IDFINLCO);
  928.   DBIERR_IDFPERLI               = (ERRBASE_QUERY+DBICODE_IDFPERLI);
  929.   DBIERR_INANEXPR               = (ERRBASE_QUERY+DBICODE_INANEXPR);
  930.   DBIERR_INS1TIME               = (ERRBASE_QUERY+DBICODE_INS1TIME);
  931.   DBIERR_INSAMBIG               = (ERRBASE_QUERY+DBICODE_INSAMBIG);
  932.   DBIERR_INSDELCH               = (ERRBASE_QUERY+DBICODE_INSDELCH);
  933.   DBIERR_INSEXPRR               = (ERRBASE_QUERY+DBICODE_INSEXPRR);
  934.   DBIERR_INSTOINS               = (ERRBASE_QUERY+DBICODE_INSTOINS);
  935.   DBIERR_ISARRAY                = (ERRBASE_QUERY+DBICODE_ISARRAY);
  936.   DBIERR_LABELERR               = (ERRBASE_QUERY+DBICODE_LABELERR);
  937.   DBIERR_LINKCALC               = (ERRBASE_QUERY+DBICODE_LINKCALC);
  938.   DBIERR_LNGVNAME               = (ERRBASE_QUERY+DBICODE_LNGVNAME);
  939.   DBIERR_LONGQURY               = (ERRBASE_QUERY+DBICODE_LONGQURY);
  940.   DBIERR_MEMVPROC               = (ERRBASE_QUERY+DBICODE_MEMVPROC);
  941.   DBIERR_MISNGCOM               = (ERRBASE_QUERY+DBICODE_MISNGCOM);
  942.   DBIERR_MISNGRPA               = (ERRBASE_QUERY+DBICODE_MISNGRPA);
  943.   DBIERR_MISSRTQU               = (ERRBASE_QUERY+DBICODE_MISSRTQU);
  944.   DBIERR_NAMTWICE               = (ERRBASE_QUERY+DBICODE_NAMTWICE);
  945.   DBIERR_NOCHKMAR               = (ERRBASE_QUERY+DBICODE_NOCHKMAR);
  946.   DBIERR_NODEFOCC               = (ERRBASE_QUERY+DBICODE_NODEFOCC);
  947.   DBIERR_NOGROUPS               = (ERRBASE_QUERY+DBICODE_NOGROUPS);
  948.   DBIERR_NONSENSE               = (ERRBASE_QUERY+DBICODE_NONSENSE);
  949.   DBIERR_NOPATTER               = (ERRBASE_QUERY+DBICODE_NOPATTER);
  950.   DBIERR_NOSUCHDA               = (ERRBASE_QUERY+DBICODE_NOSUCHDA);
  951.   DBIERR_NOVALUE                = (ERRBASE_QUERY+DBICODE_NOVALUE);
  952.   DBIERR_ONLYCONS               = (ERRBASE_QUERY+DBICODE_ONLYCONS);
  953.   DBIERR_ONLYSETR               = (ERRBASE_QUERY+DBICODE_ONLYSETR);
  954.   DBIERR_OUTSENS1               = (ERRBASE_QUERY+DBICODE_OUTSENS1);
  955.   DBIERR_OUTTWIC1               = (ERRBASE_QUERY+DBICODE_OUTTWIC1);
  956.   DBIERR_PAROWCNT               = (ERRBASE_QUERY+DBICODE_PAROWCNT);
  957.   DBIERR_PERSEPAR               = (ERRBASE_QUERY+DBICODE_PERSEPAR);
  958.   DBIERR_PROCPLSW               = (ERRBASE_QUERY+DBICODE_PROCPLSW);
  959.   DBIERR_PWINSRTS               = (ERRBASE_QUERY+DBICODE_PWINSRTS);
  960.   DBIERR_PWMODRTS               = (ERRBASE_QUERY+DBICODE_PWMODRTS);
  961.   DBIERR_QBEFLDFOUND            = (ERRBASE_QUERY+DBICODE_QBEFLDFOUND);
  962.   DBIERR_QBENOFENCE             = (ERRBASE_QUERY+DBICODE_QBENOFENCE);
  963.   DBIERR_QBENOFENCET            = (ERRBASE_QUERY+DBICODE_QBENOFENCET);
  964.   DBIERR_QBENOHEADERT           = (ERRBASE_QUERY+DBICODE_QBENOHEADERT);
  965.   DBIERR_QBENOTAB               = (ERRBASE_QUERY+DBICODE_QBENOTAB);
  966.   DBIERR_QBENUMCOLS             = (ERRBASE_QUERY+DBICODE_QBENUMCOLS);
  967.   DBIERR_QBEOPENTAB             = (ERRBASE_QUERY+DBICODE_QBEOPENTAB);
  968.   DBIERR_QBETWICE               = (ERRBASE_QUERY+DBICODE_QBETWICE);
  969.   DBIERR_QRYNOANSWER            = (ERRBASE_QUERY+DBICODE_QRYNOANSWER);
  970.   DBIERR_QRYNOTPREP             = (ERRBASE_QUERY+DBICODE_QRYNOTPREP);
  971.   DBIERR_QUAINDEL               = (ERRBASE_QUERY+DBICODE_QUAINDEL);
  972.   DBIERR_QUAININS               = (ERRBASE_QUERY+DBICODE_QUAININS);
  973.   DBIERR_RAGININS               = (ERRBASE_QUERY+DBICODE_RAGININS);
  974.   DBIERR_RAGINSET               = (ERRBASE_QUERY+DBICODE_RAGINSET);
  975.   DBIERR_ROWUSERR               = (ERRBASE_QUERY+DBICODE_ROWUSERR);
  976.   DBIERR_SETEXPEC               = (ERRBASE_QUERY+DBICODE_SETEXPEC);
  977.   DBIERR_SETVAMB1               = (ERRBASE_QUERY+DBICODE_SETVAMB1);
  978.   DBIERR_SETVBAD1               = (ERRBASE_QUERY+DBICODE_SETVBAD1);
  979.   DBIERR_SETVDEF1               = (ERRBASE_QUERY+DBICODE_SETVDEF1);
  980.   DBIERR_SUMNUMBE               = (ERRBASE_QUERY+DBICODE_SUMNUMBE);
  981.   DBIERR_TBLISWP3               = (ERRBASE_QUERY+DBICODE_TBLISWP3);
  982.   DBIERR_TOKENNOT               = (ERRBASE_QUERY+DBICODE_TOKENNOT);
  983.   DBIERR_TWOOUTR1               = (ERRBASE_QUERY+DBICODE_TWOOUTR1);
  984.   DBIERR_TYPEMISM               = (ERRBASE_QUERY+DBICODE_TYPEMISM);
  985.   DBIERR_UNRELQ1                = (ERRBASE_QUERY+DBICODE_UNRELQ1);
  986.   DBIERR_UNUSEDST               = (ERRBASE_QUERY+DBICODE_UNUSEDST);
  987.   DBIERR_USEINSDE               = (ERRBASE_QUERY+DBICODE_USEINSDE);
  988.   DBIERR_USEOFCHG               = (ERRBASE_QUERY+DBICODE_USEOFCHG);
  989.   DBIERR_VARMUSTF               = (ERRBASE_QUERY+DBICODE_VARMUSTF);
  990.   DBIERR_REGISTER               = (ERRBASE_QUERY+DBICODE_REGISTER);
  991.   DBIERR_LONGEXPR               = (ERRBASE_QUERY+DBICODE_LONGEXPR);
  992.   DBIERR_REFRESH                = (ERRBASE_QUERY+DBICODE_REFRESH);
  993.   DBIERR_CANCEXCEPT             = (ERRBASE_QUERY+DBICODE_CANCEXCEPT);
  994.   DBIERR_DBEXCEPT               = (ERRBASE_QUERY+DBICODE_DBEXCEPT);
  995.   DBIERR_MEMEXCEPT              = (ERRBASE_QUERY+DBICODE_MEMEXCEPT);
  996.   DBIERR_FATALEXCEPT            = (ERRBASE_QUERY+DBICODE_FATALEXCEPT);
  997.   DBIERR_QRYNIY                 = (ERRBASE_QUERY+ DBICODE_QRYNIY);
  998.   DBIERR_BADFORMAT              = (ERRBASE_QUERY+ DBICODE_BADFORMAT);
  999.   DBIERR_QRYEMPTY               = (ERRBASE_QUERY+ DBICODE_QRYEMPTY);
  1000.   DBIERR_NOQRYTOPREP            = (ERRBASE_QUERY+ DBICODE_NOQRYTOPREP);
  1001.   DBIERR_BUFFTOOSMALL           = (ERRBASE_QUERY+ DBICODE_BUFFTOOSMALL);
  1002.   DBIERR_QRYNOTPARSE            = (ERRBASE_QUERY+ DBICODE_QRYNOTPARSE);
  1003.   DBIERR_NOTHANDLE              = (ERRBASE_QUERY+ DBICODE_NOTHANDLE);
  1004.   DBIERR_QRYSYNTERR             = (ERRBASE_QUERY+ DBICODE_QRYSYNTERR);
  1005.   DBIERR_QXFLDCOUNT             = (ERRBASE_QUERY+ DBICODE_QXFLDCOUNT);
  1006.   DBIERR_QXFLDSYMNOTFOUND       = (ERRBASE_QUERY+ DBICODE_QXFLDSYMNOTFOUND);
  1007.   DBIERR_QXTBLSYMNOTFOUND       = (ERRBASE_QUERY+ DBICODE_QXTBLSYMNOTFOUND);
  1008.   DBIERR_BLOBTERM               = (ERRBASE_QUERY+ DBICODE_BLOBTERM);
  1009.   DBIERR_BLOBERR                = (ERRBASE_QUERY+ DBICODE_BLOBERR);
  1010.   DBIERR_RESTARTQRY             = (ERRBASE_QUERY+ DBICODE_RESTARTQRY);
  1011.   DBIERR_UNKNOWNANSTYPE         = (ERRBASE_QUERY+ DBICODE_UNKNOWNANSTYPE);
  1012.   DBIERR_SQLG_MDIST             = (ERRBASE_QUERY+ DBICODE_SQLG_MDIST);
  1013.   DBIERR_SQLG_NOARI             = (ERRBASE_QUERY+ DBICODE_SQLG_NOARI);
  1014.   DBIERR_SQLG_LIKEN             = (ERRBASE_QUERY+ DBICODE_SQLG_LIKEN);
  1015.   DBIERR_SQLG_ALPHO             = (ERRBASE_QUERY+ DBICODE_SQLG_ALPHO);
  1016.   DBIERR_SQLG_DATEO             = (ERRBASE_QUERY+ DBICODE_SQLG_DATEO);
  1017.   DBIERR_SQLG_RELOP             = (ERRBASE_QUERY+ DBICODE_SQLG_RELOP);
  1018.   DBIERR_SQLG_ONLYC             = (ERRBASE_QUERY+ DBICODE_SQLG_ONLYC);
  1019.   DBIERR_SQLG_CNTLN             = (ERRBASE_QUERY+ DBICODE_SQLG_CNTLN);
  1020.   DBIERR_SQLG_CHINI             = (ERRBASE_QUERY+ DBICODE_SQLG_CHINI);
  1021.   DBIERR_SQLG_UNION             = (ERRBASE_QUERY+ DBICODE_SQLG_UNION);
  1022.   DBIERR_SQLG_SLFIN             = (ERRBASE_QUERY+ DBICODE_SQLG_SLFIN);
  1023.   DBIERR_SQLG_OTJVR             = (ERRBASE_QUERY+ DBICODE_SQLG_OTJVR);
  1024.   DBIERR_SQLG_STROW             = (ERRBASE_QUERY+ DBICODE_SQLG_STROW);
  1025.   DBIERR_SQLG_QUANT             = (ERRBASE_QUERY+ DBICODE_SQLG_QUANT);
  1026.   DBIERR_SQLG_REGSO             = (ERRBASE_QUERY+ DBICODE_SQLG_REGSO);
  1027.   DBIERR_SQLG_COUNT             = (ERRBASE_QUERY+ DBICODE_SQLG_COUNT);
  1028.   DBIERR_SQLG_AVERA             = (ERRBASE_QUERY+ DBICODE_SQLG_AVERA);
  1029.   DBIERR_SQLG_DATEA             = (ERRBASE_QUERY+ DBICODE_SQLG_DATEA);
  1030.   DBIERR_SQLG_BADPT             = (ERRBASE_QUERY+ DBICODE_SQLG_BADPT);
  1031.   DBIERR_SQLG_RELPA             = (ERRBASE_QUERY+ DBICODE_SQLG_RELPA);
  1032.   DBIERR_SQLG_PATRN             = (ERRBASE_QUERY+ DBICODE_SQLG_PATRN);
  1033.   DBIERR_SQLG_FNDSU             = (ERRBASE_QUERY+ DBICODE_SQLG_FNDSU);
  1034.   DBIERR_SQLG_IFDCS             = (ERRBASE_QUERY+ DBICODE_SQLG_IFDCS);
  1035.   DBIERR_SQLG_IDCCO             = (ERRBASE_QUERY+ DBICODE_SQLG_IDCCO);
  1036.   DBIERR_SQLG_ONLYI             = (ERRBASE_QUERY+ DBICODE_SQLG_ONLYI);
  1037.   DBIERR_SQLG_SQLDIALECT        = (ERRBASE_QUERY+ DBICODE_SQLG_SQLDIALECT);
  1038.   DBIERR_SQLG_NOQUERY           = (ERRBASE_QUERY+ DBICODE_SQLG_NOQUERY);
  1039.   DBIERR_BLOBGROUP              = (ERRBASE_QUERY+ DBICODE_BLOBGROUP);
  1040.   DBIERR_QRYNOPROP              = (ERRBASE_QUERY+DBICODE_QRYNOPROP);
  1041.   DBIERR_ANSTYPNOTSUP           = (ERRBASE_QUERY+DBICODE_ANSTYPNOTSUP);
  1042.   DBIERR_ANSALIASNOTSUP         = (ERRBASE_QUERY+DBICODE_ANSALIASNOTSUP);
  1043.   DBIERR_INSBLOBREQ             = (ERRBASE_QUERY+DBICODE_INSBLOBREQ     );{ 0x9a }
  1044.   DBIERR_CHGUNIQUENDXREQ        = (ERRBASE_QUERY+DBICODE_CHGUNIQUENDXREQ);{ 0x9b }
  1045.   DBIERR_DELUNIQUENDXREQ        = (ERRBASE_QUERY+DBICODE_DELUNIQUENDXREQ);{ 0x9c }
  1046.   DBIERR_SQLNOFULLUPDATE        = (ERRBASE_QUERY+DBICODE_SQLNOFULLUPDATE);{ 0x9d }
  1047.   DBIERR_CANTEXECREMOTE         = (ERRBASE_QUERY+DBICODE_CANTEXECREMOTE);{ 0x9e }
  1048.   DBIERR_UNEXPECTEDEOC          = (ERRBASE_QUERY+DBICODE_UNEXPECTEDEOC);
  1049.   DBIERR_SQLPARAMNOTSET         = (ERRBASE_QUERY+DBICODE_SQLPARAMNOTSET);
  1050.   DBIERR_QUERYTOOLONG           = (ERRBASE_QUERY+DBICODE_QUERYTOOLONG);
  1051.  
  1052.  
  1053.  
  1054. { END_OF_QUERY_MESSAGES }
  1055.  
  1056. { ERRCAT_VERSION }
  1057. { ============== }
  1058.  
  1059.   ERRCODE_INTERFACEVER          = 1;      { Interface mismatch }
  1060.   ERRCODE_INDEXOUTOFDATE        = 2;      { Index is out of date }
  1061.   ERRCODE_OLDVERSION            = 3;      { Older version (see context) }
  1062.   ERRCODE_VALFILEINVALID        = 4;      { Val. file is out of date }
  1063.   ERRCODE_BLOBVERSION           = 5;      { Old Blob file version }
  1064.   ERRCODE_ENGQRYMISMATCH        = 6;      { Query and IDAPI are mismatched }
  1065.   ERRCODE_SERVERVERSION         = 7;      { Server is incompatible version }
  1066.  
  1067.   DBIERR_INTERFACEVER           = (ERRBASE_VERSION + ERRCODE_INTERFACEVER);
  1068.   DBIERR_INDEXOUTOFDATE         = (ERRBASE_VERSION + ERRCODE_INDEXOUTOFDATE);
  1069.   DBIERR_OLDVERSION             = (ERRBASE_VERSION + ERRCODE_OLDVERSION);
  1070.   DBIERR_VALFILEINVALID         = (ERRBASE_VERSION + ERRCODE_VALFILEINVALID);
  1071.   DBIERR_BLOBVERSION            = (ERRBASE_VERSION + ERRCODE_BLOBVERSION);
  1072.   DBIERR_ENGQRYMISMATCH         = (ERRBASE_VERSION + ERRCODE_ENGQRYMISMATCH);
  1073.   DBIERR_SERVERVERSION          = (ERRBASE_VERSION + ERRCODE_SERVERVERSION);
  1074.  
  1075. { ERRCAT_CAPABILITY }
  1076. { ================= }
  1077.  
  1078.   ERRCODE_NOTSUPPORTED          = 1;      { Capability not supported }
  1079.   ERRCODE_NIY                   = 2;      { Not Implemented Yet }
  1080.   ERRCODE_TABLESQL              = 3;      { Cannot access SQL replica }
  1081.   ERRCODE_SEARCHCOLREQD         = 4;      { Searchable (Non-blob column) required }
  1082.   ERRCODE_NOMULTCONNECT         = 5;      { Multiple connections not supported }
  1083.   ERRCODE_NODBASEEXPR           = 6;      { Full dBASE Expressions not supported }
  1084.  
  1085.   DBIERR_NOTSUPPORTED           = (ERRBASE_CAPABILITY + ERRCODE_NOTSUPPORTED);
  1086.   DBIERR_NIY                    = (ERRBASE_CAPABILITY + ERRCODE_NIY);
  1087.   DBIERR_TABLESQL               = (ERRBASE_CAPABILITY + ERRCODE_TABLESQL);
  1088.   DBIERR_SEARCHCOLREQD          = (ERRBASE_CAPABILITY + ERRCODE_SEARCHCOLREQD);
  1089.   DBIERR_NOMULTCONNECT          = (ERRBASE_CAPABILITY + ERRCODE_NOMULTCONNECT);
  1090.   DBIERR_NODBASEEXPR            = (ERRBASE_CAPABILITY + ERRCODE_NODBASEEXPR);
  1091.  
  1092. { ERRCAT_CONFIG }
  1093. { ============= }
  1094.  
  1095.   ERRCODE_INVALIDDBSPEC         = 1;
  1096.   ERRCODE_UNKNOWNDBTYPE         = 2;
  1097.   ERRCODE_INVALIDSYSDATA        = 3;
  1098.   ERRCODE_UNKNOWNNETTYPE        = 4;
  1099.   ERRCODE_NOTONTHATNET          = 5;
  1100.   ERRCODE_INVALIDCFGPARAM       = 6;      { Generic invalid config param }
  1101.  
  1102.  
  1103.   DBIERR_INVALIDDBSPEC          = (ERRBASE_CONFIG + ERRCODE_INVALIDDBSPEC);
  1104.   DBIERR_UNKNOWNDBTYPE          = (ERRBASE_CONFIG + ERRCODE_UNKNOWNDBTYPE);
  1105.   DBIERR_INVALIDSYSDATA         = (ERRBASE_CONFIG + ERRCODE_INVALIDSYSDATA);
  1106.   DBIERR_UNKNOWNNETTYPE         = (ERRBASE_CONFIG + ERRCODE_UNKNOWNNETTYPE);
  1107.   DBIERR_NOTONTHATNET           = (ERRBASE_CONFIG + ERRCODE_NOTONTHATNET);
  1108.   DBIERR_INVALIDCFGPARAM        = (ERRBASE_CONFIG + ERRCODE_INVALIDCFGPARAM);
  1109.  
  1110. { ERRCAT_WARNING  non-fatal warnings:               }
  1111. { warn user of action, or ask for optional behavior }
  1112. { ================================================= }
  1113.   ERRCODE_OBJIMPLICITLYDROPPED  = 1;
  1114.   ERRCODE_OBJMAYBETRUNCATED     = 2;
  1115.   ERRCODE_OBJIMPLICITLYMODIFIED = 3;
  1116.   ERRCODE_VALIDATEDATA          = 4;
  1117.   ERRCODE_VALFIELDMODIFIED      = 5;
  1118.   ERRCODE_TABLELEVELCHANGED     = 6;
  1119.   ERRCODE_COPYLINKEDTABLES      = 7;
  1120.   ERRCODE_OTHERSERVERLOADED     = 8;
  1121.   ERRCODE_OBJIMPLICITLYTRUNCATED = 9;
  1122.   ERRCODE_VCHKMAYNOTBEENFORCED  = 10;
  1123.   ERRCODE_MULTIPLEUNIQRECS      = 11;
  1124.   ERRCODE_FIELDMUSTBETRIMMED    = 12;
  1125.  
  1126.   DBIERR_OBJIMPLICITLYDROPPED   = ( ERRBASE_WARNING + ERRCODE_OBJIMPLICITLYDROPPED);
  1127.   DBIERR_OBJMAYBETRUNCATED      = ( ERRBASE_WARNING + ERRCODE_OBJMAYBETRUNCATED);
  1128.   DBIERR_OBJIMPLICITLYMODIFIED  = ( ERRBASE_WARNING + ERRCODE_OBJIMPLICITLYMODIFIED);
  1129.   DBIERR_VALIDATEDATA           = ( ERRBASE_WARNING + ERRCODE_VALIDATEDATA);
  1130.   DBIERR_VALFIELDMODIFIED       = ( ERRBASE_WARNING + ERRCODE_VALFIELDMODIFIED);
  1131.   DBIERR_TABLELEVELCHANGED      = ( ERRBASE_WARNING + ERRCODE_TABLELEVELCHANGED);
  1132.   DBIERR_COPYLINKEDTABLES       = ( ERRBASE_WARNING + ERRCODE_COPYLINKEDTABLES);
  1133.   DBIERR_OTHERSERVERLOADED      = ( ERRBASE_WARNING + ERRCODE_OTHERSERVERLOADED);
  1134.   DBIERR_OBJIMPLICITLYTRUNCATED = ( ERRBASE_WARNING + ERRCODE_OBJIMPLICITLYTRUNCATED);
  1135.   DBIERR_VCHKMAYNOTBEENFORCED   = ( ERRBASE_WARNING + ERRCODE_VCHKMAYNOTBEENFORCED );
  1136.   DBIERR_MULTIPLEUNIQRECS       = ( ERRBASE_WARNING + ERRCODE_MULTIPLEUNIQRECS );
  1137.   DBIERR_FIELDMUSTBETRIMMED     = ( ERRBASE_WARNING + ERRCODE_FIELDMUSTBETRIMMED );
  1138.  
  1139.  
  1140. { ERRCAT_OTHER }
  1141. { ============ }
  1142.  
  1143.   ERRCODE_FILEEXISTS            = 1;      { File already exsits }
  1144.   ERRCODE_BLOBMODIFIED          = 2;      { Another user modified Blob }
  1145.   ERRCODE_UNKNOWNSQL            = 3;      { Unknown SQL error }
  1146.   ERRCODE_TABLEEXISTS           = 4;      { Table already exsits }
  1147.   ERRCODE_PDX10TABLE            = 5;      { Paradox 1.0 tables not supported }
  1148.  
  1149.   DBIERR_FILEEXISTS             = (ERRBASE_OTHER + ERRCODE_FILEEXISTS);
  1150.   DBIERR_BLOBMODIFIED           = (ERRBASE_OTHER + ERRCODE_BLOBMODIFIED);
  1151.   DBIERR_UNKNOWNSQL             = (ERRBASE_OTHER + ERRCODE_UNKNOWNSQL);
  1152.   DBIERR_TABLEEXISTS            = (ERRBASE_OTHER + ERRCODE_TABLEEXISTS);
  1153.   DBIERR_PDX10TABLE             = (ERRBASE_OTHER + ERRCODE_PDX10TABLE);
  1154.  
  1155.  
  1156. { ERRCAT_COMPATIBILITY }
  1157. { ==================== }
  1158.  
  1159.   ERRCODE_DIFFSORTORDER         = 1;      { Sortorders not compatible }
  1160.   ERRCODE_DIRINUSEBYOLDVER      = 2;      { Directory in use by old version }
  1161.   ERRCODE_PDX35LDDRIVER         = 3;      { Needs Pdox 3.5 compatible language driver }
  1162.  
  1163.   DBIERR_DIFFSORTORDER          = (ERRBASE_COMPATIBILITY + ERRCODE_DIFFSORTORDER);
  1164.   DBIERR_DIRINUSEBYOLDVER       = (ERRBASE_COMPATIBILITY + ERRCODE_DIRINUSEBYOLDVER);
  1165.   DBIERR_PDX35LDDRIVER          = (ERRBASE_COMPATIBILITY + ERRCODE_PDX35LDDRIVER);
  1166.  
  1167. { ERRCAT_OPTPARAM }
  1168. { =============== }
  1169.  
  1170.   ERRCODE_REQOPTPARAM           = 1;      { Required optional parameter missing }
  1171.   ERRCODE_INVALIDOPTPARAM       = 2;      { Optional param out-of-range or bad }
  1172.  
  1173.  
  1174.   DBIERR_REQOPTPARAM            = (ERRBASE_OPTPARAM + ERRCODE_REQOPTPARAM);
  1175.   DBIERR_INVALIDOPTPARAM        = (ERRBASE_OPTPARAM + ERRCODE_INVALIDOPTPARAM);
  1176.  
  1177. function ErrCat(rslt: Word): Word;
  1178. function ErrCode(rslt: Word): Word;
  1179.  
  1180. implementation
  1181.  
  1182. function ErrCat(rslt: Word): Word;
  1183. begin
  1184.   ErrCat := rslt shr 8;
  1185. end;
  1186.  
  1187. function ErrCode(rslt: Word): Word;
  1188. begin
  1189.   ErrCode := rslt and $00FF;
  1190. end;
  1191.  
  1192. end.
  1193.