Add sqlite error codes
This commit is contained in:
parent
984b74032a
commit
39da07a2cb
|
|
@ -1,7 +1,23 @@
|
|||
with Ada.Finalization;
|
||||
with Interfaces.c; use Interfaces.c;
|
||||
|
||||
package Sqlite is
|
||||
|
||||
type Statement is tagged private;
|
||||
|
||||
type Statement_Status is (
|
||||
Row,
|
||||
Done,
|
||||
Busy
|
||||
);
|
||||
|
||||
procedure Close (Stmt : in out Statement);
|
||||
|
||||
function Step (Stmt : in out Statement) return Statement_Status;
|
||||
|
||||
function Column (Stmt : in out Statement; Col : Int) return Int;
|
||||
function Column (Stmt : in out Statement; Col : Int) return String;
|
||||
|
||||
type Database_Open is (
|
||||
ReadOnly,
|
||||
ReadWrite
|
||||
|
|
@ -35,24 +51,33 @@ package Sqlite is
|
|||
Expres_Code : Boolean := False;
|
||||
No_Follow : Boolean := False);
|
||||
|
||||
function Prepare (
|
||||
Db : in out Database'Class;
|
||||
SQL_Statement : String ) return Statement;
|
||||
|
||||
procedure Close (Db : in out Database);
|
||||
|
||||
private
|
||||
|
||||
type Statement_Record_Int is null record;
|
||||
type Statement_Int is access all Statement_Record_Int;
|
||||
|
||||
type Statement is tagged
|
||||
record
|
||||
Internal : Statement_Int := null;
|
||||
end record;
|
||||
|
||||
type Database_Record_Int is null record;
|
||||
type Database_Int is access all Database_Record_Int;
|
||||
|
||||
type Database_Version is (v1, v2);
|
||||
|
||||
type Database is new Ada.Finalization.Controlled with
|
||||
type Database is tagged
|
||||
record
|
||||
Internal : Database_Int;
|
||||
Version : Database_Version;
|
||||
end record;
|
||||
|
||||
overriding
|
||||
procedure Finalize (Db : in out Database);
|
||||
|
||||
type Bit_10 is mod 2**10
|
||||
with Size => 10;
|
||||
|
||||
|
|
@ -111,4 +136,220 @@ private
|
|||
Reserved at 0 range 22 .. 31;
|
||||
end record;
|
||||
|
||||
type Error_Codes is (
|
||||
SQLITE_OK,
|
||||
SQLITE_ERROR,
|
||||
SQLITE_INTERNAL,
|
||||
SQLITE_PERM,
|
||||
SQLITE_ABORT,
|
||||
SQLITE_BUSY,
|
||||
SQLITE_LOCKED,
|
||||
SQLITE_NOMEM,
|
||||
SQLITE_READONLY,
|
||||
SQLITE_INTERRUPT,
|
||||
SQLITE_IOERR,
|
||||
SQLITE_CORRUPT,
|
||||
SQLITE_NOTFOUND,
|
||||
SQLITE_FULL,
|
||||
SQLITE_CANTOPEN,
|
||||
SQLITE_PROTOCOL,
|
||||
SQLITE_EMPTY,
|
||||
SQLITE_SCHEMA,
|
||||
SQLITE_TOOBIG,
|
||||
SQLITE_CONSTRAINT,
|
||||
SQLITE_MISMATCH,
|
||||
SQLITE_MISUSE,
|
||||
SQLITE_NOLFS,
|
||||
SQLITE_AUTH,
|
||||
SQLITE_FORMAT,
|
||||
SQLITE_RANGE,
|
||||
SQLITE_NOTADB,
|
||||
SQLITE_NOTICE,
|
||||
SQLITE_WARNING,
|
||||
SQLITE_ROW,
|
||||
SQLITE_DONE,
|
||||
SQLITE_OK_LOAD_PERMANENTLY,
|
||||
SQLITE_ERROR_MISSING_COLLSEQ,
|
||||
SQLITE_BUSY_RECOVERY,
|
||||
SQLITE_LOCKED_SHAREDCACHE,
|
||||
SQLITE_READONLY_RECOVERY,
|
||||
SQLITE_IOERR_READ,
|
||||
SQLITE_CORRUPT_VTAB,
|
||||
SQLITE_CANTOPEN_NOTEMPDIR,
|
||||
SQLITE_CONSTRAINT_CHECK,
|
||||
SQLITE_AUTH_USER,
|
||||
SQLITE_NOTICE_RECOVER_WAL,
|
||||
SQLITE_WARNING_AUTOINDEX,
|
||||
SQLITE_ERROR_ENTRY,
|
||||
SQLITE_ABORT_ROLLBACK,
|
||||
SQLITE_BUSY_SNAPSHOT,
|
||||
SQLITE_LOCKED_VTAB,
|
||||
SQLITE_READONLY_CANTLOCK,
|
||||
SQLITE_IOERR_SHORT_READ,
|
||||
SQLITE_CORRUPT_SEQUENCE,
|
||||
SQLITE_CANTOPEN_ISDIR,
|
||||
SQLITE_CONSTRAINT_COMMITHOOK,
|
||||
SQLITE_NOTICE_RECOVER_ROLLBACK,
|
||||
SQLITE_ERROR_SNAPSHOT,
|
||||
SQLITE_BUSY_TIMEOUT,
|
||||
SQLITE_READONLY_ROLLBACK,
|
||||
SQLITE_IOERR_WRITE,
|
||||
SQLITE_CORRUPT_INDEX,
|
||||
SQLITE_CANTOPEN_FULLPATH,
|
||||
SQLITE_CONSTRAINT_FOREIGNKEY,
|
||||
SQLITE_READONLY_DBMOVED,
|
||||
SQLITE_IOERR_FSYNC,
|
||||
SQLITE_CANTOPEN_CONVPATH,
|
||||
SQLITE_CONSTRAINT_FUNCTION,
|
||||
SQLITE_READONLY_CANTINIT,
|
||||
SQLITE_IOERR_DIR_FSYNC,
|
||||
SQLITE_CANTOPEN_DIRTYWAL,
|
||||
SQLITE_CONSTRAINT_NOTNULL,
|
||||
SQLITE_READONLY_DIRECTORY,
|
||||
SQLITE_IOERR_TRUNCATE,
|
||||
SQLITE_CANTOPEN_SYMLINK,
|
||||
SQLITE_CONSTRAINT_PRIMARYKEY,
|
||||
SQLITE_IOERR_FSTAT,
|
||||
SQLITE_CONSTRAINT_TRIGGER,
|
||||
SQLITE_IOERR_UNLOCK,
|
||||
SQLITE_CONSTRAINT_UNIQUE,
|
||||
SQLITE_IOERR_RDLOCK,
|
||||
SQLITE_CONSTRAINT_VTAB,
|
||||
SQLITE_IOERR_DELETE,
|
||||
SQLITE_CONSTRAINT_ROWID,
|
||||
SQLITE_IOERR_BLOCKED,
|
||||
SQLITE_CONSTRAINT_PINNED,
|
||||
SQLITE_IOERR_NOMEM,
|
||||
SQLITE_CONSTRAINT_DATATYPE,
|
||||
SQLITE_IOERR_ACCESS,
|
||||
SQLITE_IOERR_CHECKRESERVEDLOCK,
|
||||
SQLITE_IOERR_LOCK,
|
||||
SQLITE_IOERR_CLOSE,
|
||||
SQLITE_IOERR_DIR_CLOSE,
|
||||
SQLITE_IOERR_SHMOPEN,
|
||||
SQLITE_IOERR_SHMSIZE,
|
||||
SQLITE_IOERR_SHMLOCK,
|
||||
SQLITE_IOERR_SHMMAP,
|
||||
SQLITE_IOERR_SEEK,
|
||||
SQLITE_IOERR_DELETE_NOENT,
|
||||
SQLITE_IOERR_MMAP,
|
||||
SQLITE_IOERR_GETTEMPPATH,
|
||||
SQLITE_IOERR_CONVPATH,
|
||||
SQLITE_IOERR_VNODE,
|
||||
SQLITE_IOERR_AUTH,
|
||||
SQLITE_IOERR_BEGIN_ATOMIC,
|
||||
SQLITE_IOERR_COMMIT_ATOMIC,
|
||||
SQLITE_IOERR_ROLLBACK_ATOMIC,
|
||||
SQLITE_IOERR_DATA,
|
||||
SQLITE_IOERR_CORRUPTFS)
|
||||
with Convention => C, Size => 32;
|
||||
|
||||
for Error_Codes use (
|
||||
SQLITE_OK => 0,
|
||||
SQLITE_ERROR => 1,
|
||||
SQLITE_INTERNAL => 2,
|
||||
SQLITE_PERM => 3,
|
||||
SQLITE_ABORT => 4,
|
||||
SQLITE_BUSY => 5,
|
||||
SQLITE_LOCKED => 6,
|
||||
SQLITE_NOMEM => 7,
|
||||
SQLITE_READONLY => 8,
|
||||
SQLITE_INTERRUPT => 9,
|
||||
SQLITE_IOERR => 10,
|
||||
SQLITE_CORRUPT => 11,
|
||||
SQLITE_NOTFOUND => 12,
|
||||
SQLITE_FULL => 13,
|
||||
SQLITE_CANTOPEN => 14,
|
||||
SQLITE_PROTOCOL => 15,
|
||||
SQLITE_EMPTY => 16,
|
||||
SQLITE_SCHEMA => 17,
|
||||
SQLITE_TOOBIG => 18,
|
||||
SQLITE_CONSTRAINT => 19,
|
||||
SQLITE_MISMATCH => 20,
|
||||
SQLITE_MISUSE => 21,
|
||||
SQLITE_NOLFS => 22,
|
||||
SQLITE_AUTH => 23,
|
||||
SQLITE_FORMAT => 24,
|
||||
SQLITE_RANGE => 25,
|
||||
SQLITE_NOTADB => 26,
|
||||
SQLITE_NOTICE => 27,
|
||||
SQLITE_WARNING => 28,
|
||||
SQLITE_ROW => 100,
|
||||
SQLITE_DONE => 101,
|
||||
SQLITE_OK_LOAD_PERMANENTLY => 256,
|
||||
SQLITE_ERROR_MISSING_COLLSEQ => 257,
|
||||
SQLITE_BUSY_RECOVERY => 261,
|
||||
SQLITE_LOCKED_SHAREDCACHE => 262,
|
||||
SQLITE_READONLY_RECOVERY => 264,
|
||||
SQLITE_IOERR_READ => 266,
|
||||
SQLITE_CORRUPT_VTAB => 267,
|
||||
SQLITE_CANTOPEN_NOTEMPDIR => 270,
|
||||
SQLITE_CONSTRAINT_CHECK => 275,
|
||||
SQLITE_AUTH_USER => 279,
|
||||
SQLITE_NOTICE_RECOVER_WAL => 283,
|
||||
SQLITE_WARNING_AUTOINDEX => 284,
|
||||
SQLITE_ERROR_ENTRY => 513,
|
||||
SQLITE_ABORT_ROLLBACK => 516,
|
||||
SQLITE_BUSY_SNAPSHOT => 517,
|
||||
SQLITE_LOCKED_VTAB => 518,
|
||||
SQLITE_READONLY_CANTLOCK => 520,
|
||||
SQLITE_IOERR_SHORT_READ => 522,
|
||||
SQLITE_CORRUPT_SEQUENCE => 523,
|
||||
SQLITE_CANTOPEN_ISDIR => 526,
|
||||
SQLITE_CONSTRAINT_COMMITHOOK => 531,
|
||||
SQLITE_NOTICE_RECOVER_ROLLBACK => 539,
|
||||
SQLITE_ERROR_SNAPSHOT => 769,
|
||||
SQLITE_BUSY_TIMEOUT => 773,
|
||||
SQLITE_READONLY_ROLLBACK => 776,
|
||||
SQLITE_IOERR_WRITE => 778,
|
||||
SQLITE_CORRUPT_INDEX => 779,
|
||||
SQLITE_CANTOPEN_FULLPATH => 782,
|
||||
SQLITE_CONSTRAINT_FOREIGNKEY => 787,
|
||||
SQLITE_READONLY_DBMOVED => 1032,
|
||||
SQLITE_IOERR_FSYNC => 1034,
|
||||
SQLITE_CANTOPEN_CONVPATH => 1038,
|
||||
SQLITE_CONSTRAINT_FUNCTION => 1043,
|
||||
SQLITE_READONLY_CANTINIT => 1288,
|
||||
SQLITE_IOERR_DIR_FSYNC => 1290,
|
||||
SQLITE_CANTOPEN_DIRTYWAL => 1294,
|
||||
SQLITE_CONSTRAINT_NOTNULL => 1299,
|
||||
SQLITE_READONLY_DIRECTORY => 1544,
|
||||
SQLITE_IOERR_TRUNCATE => 1546,
|
||||
SQLITE_CANTOPEN_SYMLINK => 1550,
|
||||
SQLITE_CONSTRAINT_PRIMARYKEY => 1555,
|
||||
SQLITE_IOERR_FSTAT => 1802,
|
||||
SQLITE_CONSTRAINT_TRIGGER => 1811,
|
||||
SQLITE_IOERR_UNLOCK => 2058,
|
||||
SQLITE_CONSTRAINT_UNIQUE => 2067,
|
||||
SQLITE_IOERR_RDLOCK => 2314,
|
||||
SQLITE_CONSTRAINT_VTAB => 2323,
|
||||
SQLITE_IOERR_DELETE => 2570,
|
||||
SQLITE_CONSTRAINT_ROWID => 2579,
|
||||
SQLITE_IOERR_BLOCKED => 2826,
|
||||
SQLITE_CONSTRAINT_PINNED => 2835,
|
||||
SQLITE_IOERR_NOMEM => 3082,
|
||||
SQLITE_CONSTRAINT_DATATYPE => 3091,
|
||||
SQLITE_IOERR_ACCESS => 3338,
|
||||
SQLITE_IOERR_CHECKRESERVEDLOCK => 3594,
|
||||
SQLITE_IOERR_LOCK => 3850,
|
||||
SQLITE_IOERR_CLOSE => 4106,
|
||||
SQLITE_IOERR_DIR_CLOSE => 4362,
|
||||
SQLITE_IOERR_SHMOPEN => 4618,
|
||||
SQLITE_IOERR_SHMSIZE => 4874,
|
||||
SQLITE_IOERR_SHMLOCK => 5130,
|
||||
SQLITE_IOERR_SHMMAP => 5386,
|
||||
SQLITE_IOERR_SEEK => 5642,
|
||||
SQLITE_IOERR_DELETE_NOENT => 5898,
|
||||
SQLITE_IOERR_MMAP => 6154,
|
||||
SQLITE_IOERR_GETTEMPPATH => 6410,
|
||||
SQLITE_IOERR_CONVPATH => 6666,
|
||||
SQLITE_IOERR_VNODE => 6922,
|
||||
SQLITE_IOERR_AUTH => 7178,
|
||||
SQLITE_IOERR_BEGIN_ATOMIC => 7434,
|
||||
SQLITE_IOERR_COMMIT_ATOMIC => 7690,
|
||||
SQLITE_IOERR_ROLLBACK_ATOMIC => 7946,
|
||||
SQLITE_IOERR_DATA => 8202,
|
||||
SQLITE_IOERR_CORRUPTFS => 8458
|
||||
);
|
||||
|
||||
end Sqlite;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user