⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sqlite3types.pas

📁 定时器for timer for ic chip
💻 PAS
字号:
Unit SQLite3Types;

Interface

Const
  SQLITE_OK = 0;                        // Successful result
  SQLITE_ERROR = 1;                     // SQL error or missing database
  SQLITE_INTERNAL = 2;                  // An internal logic error in SQLite
  SQLITE_PERM = 3;                      // Access permission denied
  SQLITE_ABORT = 4;                     // Callback routine requested an abort
  SQLITE_BUSY = 5;                      // The database file is locked
  SQLITE_LOCKED = 6;                    // A table in the database is locked
  SQLITE_NOMEM = 7;                     // A malloc() failed
  SQLITE_READONLY = 8;                  // Attempt to write a readonly database
  SQLITE_INTERRUPT = 9;                 // Operation terminated by sqlite3_interrupt()
  SQLITE_IOERR = 10;                    // Some kind of disk I/O error occurred
  SQLITE_CORRUPT = 11;                  // The database disk image is malformed
  SQLITE_NOTFOUND = 12;                 // (Internal Only) Table or record not found
  SQLITE_FULL = 13;                     // Insertion failed because database is full
  SQLITE_CANTOPEN = 14;                 // Unable to open the database file
  SQLITE_PROTOCOL = 15;                 // Database lock protocol error
  SQLITE_EMPTY = 16;                    // Database is empty
  SQLITE_SCHEMA = 17;                   // The database schema changed
  SQLITE_TOOBIG = 18;                   // Too much data for one row of a table
  SQLITE_CONSTRAINT = 19;               // Abort due to contraint violation
  SQLITE_MISMATCH = 20;                 // Data type mismatch
  SQLITE_MISUSE = 21;                   // Library used incorrectly
  SQLITE_NOLFS = 22;                    // Uses OS features not supported on host
  SQLITE_AUTH = 23;                     // Authorization denied
  SQLITE_FORMAT = 24;                   // Auxiliary database format error
  SQLITE_RANGE = 25;                    // 2nd parameter to sqlite3_bind out of range
  SQLITE_NOTADB = 26;                   // File opened that is not a database file
  SQLITE_ROW = 100;                     // sqlite3_step() has another row ready
  SQLITE_DONE = 101;                    // sqlite3_step() has finished executing

  SQLITE_INTEGER = 1;
  SQLITE_FLOAT = 2;
  SQLITE_TEXT = 3;
  SQLITE_BLOB = 4;
  SQLITE_NULL = 5;

  SQLITE_CREATE_INDEX = 1;              // Index Name      Table Name      */
  SQLITE_CREATE_TABLE = 2;              // Table Name      NULL            */
  SQLITE_CREATE_TEMP_INDEX = 3;         // Index Name      Table Name      */
  SQLITE_CREATE_TEMP_TABLE = 4;         // Table Name      NULL            */
  SQLITE_CREATE_TEMP_TRIGGER = 5;       // Trigger Name    Table Name      */
  SQLITE_CREATE_TEMP_VIEW = 6;          // View Name       NULL            */
  SQLITE_CREATE_TRIGGER = 7;            // Trigger Name    Table Name      */
  SQLITE_CREATE_VIEW = 8;               // View Name       NULL            */
  SQLITE_DELETE = 9;                    // Table Name      NULL            */
  SQLITE_DROP_INDEX = 10;               // Index Name      Table Name      */
  SQLITE_DROP_TABLE = 11;               // Table Name      NULL            */
  SQLITE_DROP_TEMP_INDEX = 12;          // Index Name      Table Name      */
  SQLITE_DROP_TEMP_TABLE = 13;          // Table Name      NULL            */
  SQLITE_DROP_TEMP_TRIGGER = 14;        // Trigger Name    Table Name      */
  SQLITE_DROP_TEMP_VIEW = 15;           // View Name       NULL            */
  SQLITE_DROP_TRIGGER = 16;             // Trigger Name    Table Name      */
  SQLITE_DROP_VIEW = 17;                // View Name       NULL            */
  SQLITE_INSERT = 18;                   // Table Name      NULL            */
  SQLITE_PRAGMA = 19;                   // Pragma Name     1st arg or NULL */
  SQLITE_READ = 20;                     // Table Name      Column Name     */
  SQLITE_SELECT = 21;                   // NULL            NULL            */
  SQLITE_TRANSACTION = 22;              // NULL            NULL            */
  SQLITE_UPDATE = 23;                   // Table Name      Column Name     */
  SQLITE_ATTACH = 24;                   // Filename        NULL            */
  SQLITE_DETACH = 25;                   // Database Name   NULL            */

  SQLITE_DENY = 1;                      // Abort the SQL statement with an error */
  SQLITE_IGNORE = 2;                    // Don't allow access, but don't generate an error */

Type
  TSQLiteDB = Pointer;
  PSQLiteDB = ^TSQLiteDB;

  //For SQLite 3.6.11
  //TSQLiteBackup = Pointer;

  TSQLiteBlob = Pointer;
  TSQLiteResult = ^PAnsiChar;
  TSQLiteStmt = Pointer;
  TPUtf8CharArray = Array[0..MaxInt Div SizeOf(PAnsiChar) - 1] Of PAnsiChar;
  PPUtf8CharArray = ^TPUtf8CharArray;

  TSQLite_Context = Type Pointer;
  TSQLite_Destructor = Procedure(P: Pointer); cdecl;
  TSQLite_Collation_Destructor = Type TSQLite_Destructor;
  TSQLite_Module_Destructor = Type TSQLite_Destructor;
  TSQLite_Result_Destructor = Type TSQLite_Destructor;
  TSQLite_AuxData_Destructor = Type TSQLite_Destructor;

  TSQLite_Exec_Callback = Function(UserData: Pointer; ColumnCount: Integer; ColumnValues, ColumnNames: PPointer): Integer; cdecl;
  TSQLite_Busy_Callback = Function(Sender: TObject; ObjectName: PAnsiChar; BusyCount: Integer): Integer Of Object; cdecl;
  TSQLite_Commit_Callback = Function(pArg: Pointer): Integer; cdecl;
  TSQLite_Collation_Callback = Function(UserData: Pointer; l1: Integer; Const s1: Pointer; l2: Integer; Const s2: Pointer): Integer; cdecl;

  TSQLite_Func_Callback = Procedure(pCtx: TSQLite_Context; nArgs: Integer; Args: PPointerArray); cdecl;
  PSQLite_Func_Callback = ^TSQLite_Func_Callback;

  TSQLite_Step_Callback = Procedure(pCtx: TSQLite_Context; nArgs: Integer; Args: PPointerArray); cdecl;
  TSQLite_Final_Callback = Procedure(pCtx: TSQLite_Context); cdecl;
  TSQLite_Collation_Needed_Callback = Procedure(UserData: Pointer; DB: TSQLiteDB; eTextRep: Integer; Name: PAnsiChar); cdecl;
  TSQLite_Collation_Needed16_Callback = Procedure(UserData: Pointer; DB: TSQLiteDB; eTextRep: Integer; Name: PWideChar); cdecl;
  TSQLite_Profile_Callback = Procedure(UserData: Pointer; Const SQL: PAnsiChar; elapseTime: Int64); cdecl;
  TSQLite_Progress_Callback = Function(UserData: Pointer): Integer; cdecl;
  TSQLite_Rollback_Callback = Procedure(pArg: Pointer); cdecl;
  TSQLite_Authorizer_Callback = Function(UserData: Pointer; Arg2: Integer; Arg3: PAnsiChar; Arg4: PAnsiChar; Arg5: PAnsiChar; Arg6: PAnsiChar): Integer; cdecl;
  TSQLite_Trace_Callback = Procedure(UserData: Pointer; Const SQL: PAnsiChar); cdecl;
  TSQLite_Update_Callback = Procedure(pArg: Pointer; Operation: Integer; DB: TSQLiteDB; TableName: PAnsiChar; RowID: Int64); cdecl;

  PSQLite3_Module = ^TSQLite3_Module;

  PPSQLite3_Vtab = ^PSQLite3_Vtab;
  PSQLite3_Vtab = ^TSQLite3_Vtab;
  TSQLite3_Vtab = Packed Record
    pModule: PSQLite3_Module;
    nRef: Integer;
    zErrMsg: PAnsiChar;
  End;

  TSQLite3_Index_Constraint = Packed Record
    iColumn: Integer;
    op: Byte;
    usable: Byte;
    Dummy: Word;
    iTermOffset: Integer;
  End;
  PSQLite3_Index_Constraint_Array = ^TSQLite3_Index_Constraint_Array;
  TSQLite3_Index_Constraint_Array = Array[0..MaxInt Div SizeOf(TSQLite3_Index_Constraint) - 1] Of TSQLite3_Index_Constraint;

  TSQLite3_Index_Orderby = Packed Record
    iColumn: Integer;
    Desc: Byte;
  End;
  PSQLite3_Index_Orderby_Array = ^TSQLite3_Index_Orderby_Array;
  TSQLite3_Index_Orderby_Array = Array[0..MaxInt Div SizeOf(TSQLite3_Index_Orderby) - 1] Of TSQLite3_Index_Orderby;

  TSQLite3_Index_Constraint_Usage = Packed Record
    argvIndex: Integer;
    omit: Byte;
  End;
  PSQLite3_Index_Constraint_Usage_Array = ^TSQLite3_Index_Constraint_Usage_Array;
  TSQLite3_Index_Constraint_Usage_Array = Array[0..MaxInt Div SizeOf(TSQLite3_Index_Constraint_Usage) - 1] Of TSQLite3_Index_Constraint_Usage;

  PSQLite3_index_info = ^TSQLite3_Index_Info;
  TSQLite3_Index_Info = Packed Record
    nConstraint: Integer;
    aConstraint: PSQLite3_Index_Constraint_Array;
    nOrderBy: Integer;
    aOrderBy: PSQLite3_Index_Orderby_Array;
    aConstraintUsage: PSQLite3_Index_Constraint_Usage_Array;
    idxNum: Integer;
    idxStr: PAnsiChar;
    needToFreeIdxStr: Integer;
    orderByConsumed: Integer;
    estimatedCost: Double;
  End;

  PPSQLite3_Vtab_Cursor = ^PSQLite3_Vtab_Cursor;
  PSQLite3_Vtab_Cursor = ^TSQLite3_Vtab_Cursor;
  TSQLite3_Vtab_Cursor = Packed Record
    pVTab: PSQLite3_Vtab;
  End;

  TSQLite3_Module = Packed Record
    iVersion: Integer;
    xCreate: Function(DB: TSQLiteDB; paux: Pointer; argc: Integer; Const argv: PPUtf8CharArray; pVTab: PPSQLite3_Vtab; pzErr: PPAnsiChar): Integer; cdecl;
    xConnect: Function(DB: TSQLiteDB; paux: Pointer; argc: Integer; Const argv: PPUtf8CharArray; pVTab: PPSQLite3_Vtab; pzErr: PPAnsiChar): Integer; cdecl;
    xBestIndex: Function(pVTab: PSQLite3_Vtab; Info: PSQLite3_index_info): Integer; cdecl;
    xDisconnect: Function(pVTab: PSQLite3_Vtab): Integer; cdecl;
    xDestroy: Function(pVTab: PSQLite3_Vtab): Integer; cdecl;
    xOpen: Function(pVTab: PSQLite3_Vtab; ppCursor: PPSQLite3_Vtab_Cursor): Integer; cdecl;
    xClose: Function(pCursor: PSQLite3_Vtab_Cursor): Integer; cdecl;
    xFilter: Function(pCursor: PSQLite3_Vtab_Cursor; idxNum: Integer; Const idxStr: PAnsiChar; argc: Integer; argv: PPointerArray): Integer; cdecl;
    xNext: Function(pCursor: PSQLite3_Vtab_Cursor): Integer; cdecl;
    xEof: Function(pCursor: PSQLite3_Vtab_Cursor): Integer; cdecl;
    xColumn: Function(pCursor: PSQLite3_Vtab_Cursor; pCtx: TSQLite_Context; i: Integer): Integer; cdecl;
    xRowID: Function(pCursor: PSQLite3_Vtab_Cursor; pRowID: PInt64): Integer; cdecl;
    xUpdate: Function(pVTab: PSQLite3_Vtab; argc: Integer; argv: PPointerArray; pRowID: PInt64): Integer; cdecl;
    xBegin: Function(pVTab: PSQLite3_Vtab): Integer; cdecl;
    xSync: Function(pVTab: PSQLite3_Vtab): Integer; cdecl;
    xCommit: Function(pVTab: PSQLite3_Vtab): Integer; cdecl;
    xRollback: Function(pVTab: PSQLite3_Vtab): Integer; cdecl;
    xFindFunction: Function(pVTab: PSQLite3_Vtab; nArg: Integer; Const zName: PAnsiChar; pxFunc: PSQLite_Func_Callback; ppArg: PPointerArray): Integer; cdecl;
    xRename: Function(pVTab: PSQLite3_Vtab; Const zNew: PAnsiChar): Integer; cdecl;
  End;

  PSQLite3_Mutex_Ptr = ^TSQLite3_Mutex;
  TSQLite3_Mutex = Packed Record
  End;

  PSQLite3_File_Ptr = ^TSQLite3_File;
  PSQLite3_IO_Methods_Ptr = ^TSQLite3_IO_Methods;
  TSQLite3_IO_Methods = Packed Record
    iVersion: Integer;
    xClose: Function(ID: PSQLite3_File_Ptr): Integer; cdecl;
    xRead: Function(ID: PSQLite3_File_Ptr; pBuf: Pointer; iAmt: Integer; iOfst: Int64): Integer; cdecl;
    xWrite: Function(ID: PSQLite3_File_Ptr; Const pBuf: Pointer; iAmt: Integer; iOfst: Int64): Integer; cdecl;
    xTruncate: Function(ID: PSQLite3_File_Ptr; Size: Int64): Integer; cdecl;
    xSync: Function(ID: PSQLite3_File_Ptr; Flags: Integer): Integer; cdecl;
    xFileSize: Function(ID: PSQLite3_File_Ptr; pSize: PInt64): Integer; cdecl;
    xLock: Function(ID: PSQLite3_File_Ptr; lockType: Integer): Integer; cdecl;
    xUnlock: Function(ID: PSQLite3_File_Ptr; lockType: Integer): Integer; cdecl;
    xCheckReservedLock: Function(ID: PSQLite3_File_Ptr; pResOut: PInteger): Integer; cdecl;
    xFileControl: Function(ID: PSQLite3_File_Ptr; op: Integer; pArg: Pointer): Integer; cdecl;
    xLockState: Function(ID: PSQLite3_File_Ptr): Integer; cdecl;
    xSectorSize: Function(ID: PSQLite3_File_Ptr): Integer; cdecl;
    xDeviceCharacteristics: Function(ID: PSQLite3_File_Ptr): Integer; cdecl;
  End;

  TSQLite3_File = Record
    pMethods: PSQLite3_IO_Methods_Ptr;
  End;

  PSQLite3_Vfs_Ptr = ^TSQLite3_Vfs;
  TSQLite3_Vfs = Packed Record
    iVersion: Integer;
    szOsFile: Integer;
    mxPathname: Integer;
    pNext: PSQLite3_Vfs_Ptr;
    zName: PAnsiChar;
    pAppData: Pointer;
    xOpen: Function(pVfs: PSQLite3_Vfs_Ptr; Const zName: PAnsiChar; pFile: PSQLite3_File_Ptr; Flags: Integer; pOutFlags: PInteger): Integer; cdecl;
    xDelete: Function(pVfs: PSQLite3_Vfs_Ptr; Const zName: PAnsiChar; syncDir: Integer): Integer; cdecl;
    xAccess: Function(pVfs: PSQLite3_Vfs_Ptr; Const zName: PAnsiChar; Flags: Integer; pResOut: PInteger): Integer; cdecl;
    xFullPathname: Function(pVfs: PSQLite3_Vfs_Ptr; Const zName: PAnsiChar; nOut: Integer; zOut: PAnsiChar): Integer; cdecl;
    xDlOpen: Function(pVfs: PSQLite3_Vfs_Ptr; Const zFilename: PAnsiChar): Pointer; cdecl;
    xDlError: Procedure(pVfs: PSQLite3_Vfs_Ptr; nByte: Integer; zErrMsg: PAnsiChar); cdecl;
    xDlSym: Function(pVfs: PSQLite3_Vfs_Ptr; PHandle: Pointer; Const zSymbol: PAnsiChar): Pointer; cdecl;
    xDlClose: Procedure(pVfs: PSQLite3_Vfs_Ptr; PHandle: Pointer); cdecl;
    xRandomness: Function(pVfs: PSQLite3_Vfs_Ptr; nByte: Integer; zOut: PAnsiChar): Integer; cdecl;
    xSleep: Function(pVfs: PSQLite3_Vfs_Ptr; microseconds: Integer): Integer; cdecl;
    xCurrentTime: Function(pVfs: PSQLite3_Vfs_Ptr; pTimeOut: PDouble): Integer; cdecl;
  End;

Implementation

End.

 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -