Interpreting Database-related Error Messages
Data Base Management Systems (DBMS) produce errors that can be confusing to the typical Advantage User. Two common examples of these messages are typically the result of a duplicate record on an insert, or a deadlock condition within the database. The format of the message varies depending upon the DBMS that is being used (that is, Oracle, SQL Server, or PostgreSQL). Advantage intercepts these messages and substitutes them with a more meaningful message, as indicated on the Messages table. The following table provides the DBMS Message and a cross reference to the Advantage error message that is displayed to the user.
|
DBMS Message |
Error Code |
SQL State |
Error Message (MESG) |
|---|---|---|---|
|
ORA-00001: unique constraint (Table name) violated SQL Server: Violation of %ls constraint '%.*ls'. Cannot insert duplicate key in object '%.*ls'. PostgreSQL: duplicate key value violates unique constraint %s |
Oracle: 00001 SQL Server: 2627 PostgreSQL: 23505 |
Oracle: 23000 PostgreSQL: 23505 |
(For tables without AutoNumber columns) |
|
ORA-00060: deadlock detected while waiting for resource SQL Server: Transaction (Process ID %d) was deadlocked on {%Z} resources with another process and has been chosen as the deadlock victim. Rerun the transaction. PostgreSQL: deadlock detected. Process (process ID %d) waits for ShareLock on transaction (process id %z); blocked by process (process id %z) |
Oracle: 60 SQL Server: 1205 PostgreSQL: 40P01 |
Oracle: 61000 PostgreSQL: 40P01 |
Q0135 - Two or more transactions deadlocked with each other while waiting to process. Please resubmit the transaction: %SQLCODE% %SQLSTATE%. |
|
ORA-01438: value larger than specified precision allowed for this column. SQLServer: 8115: Arithmetic overflow error converting expression to data type numeric. PostgreSQL: 22001: value too long for type character varying(n) |
Oracle: 01438 SQLServer:8115 PostgreSQL: 22001 |
Oracle:22003 SQLServer:22003 PostgreSQL: 22001 |
Amount entered is larger than maximum allowable value in database. |