Unit SqlitePassApi_v3

DescriptionusesClasses, Interfaces, Objects and RecordsFunctions and ProceduresTypesConstantsVariables

Description

This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

—————————————————————————

Sqlite3 library translation for use with fpc compiler Original code from Mike Cariotoglou Email: mike@deltasingular.gr Modified by Luc DAVID Email: luckylazarus@free.fr 2006 - 2007

Major changes are indicated in the \Documentation\changes.pdf file Last update 09.09.2007

—————————————————————————

uses

Overview

Functions and Procedures

procedure LoadFunctions(LibraryHandle: Integer);

Types

ppvaluepvalue;
pvalue=pointer;
TBusyHandler = function(user:pointer; count:integer):integer; cdecl;
TDestructor = procedure(data:pointer); cdecl;
TExecCallback = function(Sender: pointer; ColumnsCount: Integer; ColumnValues: ppchar; ColumnNames: ppchar): integer; cdecl;
TFuncFinalizer = procedure(context:pointer); cdecl;
TFuncHandler = procedure(context:pointer; nArgs:integer; args:ppvalue); cdecl;
TUserCollation = function(user:pointer; lenA:integer; a:pchar; lenB:integer; b:pchar):integer; cdecl;
TUserCollationNeeded = procedure(user:pointer; db:pointer; eTextRep:integer; zName:pchar); cdecl;

Constants

SQLITE_ABORT = 4;
SQLITE_ANY = 5;
SQLITE_AUTH = 23;
SQLITE_BLOB = 4;
SQLITE_BUSY = 5;
SQLITE_CANTOPEN = 14;
SQLITE_CONSTRAINT = 19;
SQLITE_CORRUPT = 11;
SQLITE_DONE = 101;
SQLITE_EMPTY = 16;
SQLITE_ERROR = 1;
SQLITE_FLOAT = 2;
SQLITE_FORMAT = 24;
SQLITE_FULL = 13;
SQLITE_INTEGER = 1;
SQLITE_INTERNAL = 2;
SQLITE_INTERRUPT = 9;
SQLITE_IOERR = 10;
SQLITE_LOCKED = 6;
SQLITE_MISMATCH = 20;
SQLITE_MISUSE = 21;
SQLITE_NOLFS = 22;
SQLITE_NOMEM = 7;
SQLITE_NOTADB = 26;
SQLITE_NOTFOUND = 12;
SQLITE_NULL = 5;
SQLITE_OK = 0;
SQLITE_OPEN_CREATE = 4;
SQLITE_OPEN_DELETEONCLOSE = 8;
SQLITE_OPEN_EXCLUSIVE = 10;
SQLITE_OPEN_FULLMUTEX = 10000;
SQLITE_OPEN_MAIN_DB = 100;
SQLITE_OPEN_MAIN_JOURNAL = 800;
SQLITE_OPEN_MASTER_JOURNAL = 4000;
SQLITE_OPEN_NOMUTEX = 8000;
SQLITE_OPEN_READONLY = 1;
SQLITE_OPEN_READWRITE = 2;
SQLITE_OPEN_SUBJOURNAL = 2000;
SQLITE_OPEN_TEMP_DB = 200;
SQLITE_OPEN_TEMP_JOURNAL = 1000;
SQLITE_OPEN_TRANSIENT_DB = 400;
SQLITE_PERM = 3;
SQLITE_PROTOCOL = 15;
SQLITE_RANGE = 25;
SQLITE_READONLY = 8;
SQLITE_ROW = 100;
SQLITE_SCHEMA = 17;
SQLITE_STATIC = 0;
SQLITE_TEXT = 3;
SQLITE_TOOBIG = 18;
SQLITE_TRANSIENT = -1;
SQLITE_UTF16 = 4;
SQLITE_UTF16BE = 3;
SQLITE_UTF16LE = 2;
SQLITE_UTF8 = 1;

Variables

EnginesCount: Integer;
SqliteDbv3_aggregate_context:function(context:pointer; nBytes:integer):pointer; cdecl;
SqliteDbv3_aggregate_count:function(SqliteDbv3_context:pointer):integer; cdecl;
SqliteDbv3_bind_blob:function(stmt:pointer; idx:integer; value:pointer; size:integer; xDel:integer):integer; cdecl;
SqliteDbv3_bind_double:function(stmt:pointer; idx:integer; value:double):integer; cdecl;
SqliteDbv3_bind_int:function(stmt:pointer; idx:integer; value:integer):integer; cdecl;
SqliteDbv3_bind_int64:function(stmt:pointer; idx:integer; value:int64):integer; cdecl;
SqliteDbv3_bind_null:function(stmt:pointer; idx:integer):integer; cdecl;
SqliteDbv3_bind_parameter_count:function(stmt:pointer):integer; cdecl;
SqliteDbv3_bind_parameter_index:function(stmt:pointer; zName:pchar):integer; cdecl;
SqliteDbv3_bind_parameter_name:function(stmt:pointer; idx:integer):pchar; cdecl;
SqliteDbv3_bind_text:function(stmt:pointer; idx:integer; value:pchar; size:integer; xDel:Integer):integer; cdecl;
SqliteDbv3_busy_handler: function(db: Pointer; CallbackPtr:TBusyHandler; user:pointer):integer; cdecl;
SqliteDbv3_busy_timeout: function(db: Pointer; TimeOut: integer):integer; cdecl;
SqliteDbv3_changes: function(db: Pointer): integer; cdecl;
SqliteDbv3_clear_binding:function(stmt:pointer):integer; cdecl;
SqliteDbv3_close: function(db: Pointer):integer; cdecl;
SqliteDbv3_collation_needed:function(db:pointer; userData:pointer; func:TUserCollationNeeded):integer; cdecl;
SqliteDbv3_column_blob:function(pStmt:pointer; col:integer):pointer; cdecl;
SqliteDbv3_column_bytes:function(pStmt:pointer; col:integer):integer; cdecl;
SqliteDbv3_column_count:function(pStmt:pointer):integer; cdecl;
SqliteDbv3_column_decltype:function(pStmt:pointer; idx:integer):pchar; cdecl;
SqliteDbv3_column_double:function(pStmt:pointer; col:integer):double; cdecl;
SqliteDbv3_column_int:function(pStmt:pointer; col:integer):integer; cdecl;
SqliteDbv3_column_int64:function(pStmt:pointer; col:integer):int64; cdecl;
SqliteDbv3_column_name:function(pStmt:pointer; idx:integer):pchar; cdecl;
SqliteDbv3_column_origin_name:function(pStmt:pointer; idx:integer):pchar; cdecl;
SqliteDbv3_column_table_name:function(pStmt:pointer; idx:integer):pchar; cdecl;
SqliteDbv3_column_text:function(pStmt:pointer; col:integer):pchar; cdecl;
SqliteDbv3_column_type:function(pStmt:pointer; col:integer):integer; cdecl;
SqliteDbv3_complete: function(P: PChar): integer; cdecl;
SqliteDbv3_create_collation:function(db:pointer; zName:pchar; eTextRep:integer; userData:pointer; func:TUserCollation):integer; cdecl;
SqliteDbv3_create_function:function( db:pointer; zFunctionName:pchar; nArg:integer; eTextRep:integer; userData:pointer; xFunc, xStep:TFuncHandler; xFinal:TFuncFinalizer):integer; cdecl;
SqliteDbv3_data_count:function(pStmt:pointer):integer; cdecl;
SqliteDbv3_errcode:function(db:pointer):integer; cdecl;
SqliteDbv3_errmsg:function(db:pointer):pchar; cdecl;
SqliteDbv3_exec: function(db: Pointer; SQLStatement: PChar; CallbackPtr: TExecCallBack; CbParam: pointer; ErrMsg: PPChar): integer; cdecl;
SqliteDbv3_finalize:function(pStmt:pointer):integer; cdecl;
SqliteDbv3_free: procedure(P: PChar); cdecl;
SqliteDbv3_free_table: procedure(Table: PAnsiChar); cdecl;
SqliteDbv3_get_auxdata:function(context:pointer; idx:integer):pointer; cdecl;
SqliteDbv3_get_table: function(db: Pointer; SQLStatement: PAnsiChar; var ResultPtr: Pointer; var RowCount: cardinal; var ColCount: cardinal; var ErrMsg: PAnsiChar): integer; cdecl;
SqliteDbv3_interrupt: procedure(db: Pointer); cdecl;
SqliteDbv3_last_insert_rowid: function(db: Pointer): int64; cdecl;
SqliteDbv3_open: function(dbname: PChar; var db:pointer; flags: integer; vfs: PChar):integer; cdecl;
SqliteDbv3_prepare_v2:function(db:pointer; Sql:pchar; nBytes:integer; var stmt:pointer; var pzTail:pchar):integer; cdecl;
SqliteDbv3_reset:function(pStmt:pointer):integer; cdecl;
SqliteDbv3_result_blob:procedure(context:pointer; value:pointer; size:integer; xDel:integer); cdecl;
SqliteDbv3_result_double:procedure(context:pointer; value:double); cdecl;
SqliteDbv3_result_error:procedure(context:pointer; msg:pchar; len:integer); cdecl;
SqliteDbv3_result_int:procedure(context:pointer; value:integer); cdecl;
SqliteDbv3_result_int64:procedure(context:pointer; value:int64); cdecl;
SqliteDbv3_result_null:procedure(context:pointer); cdecl;
SqliteDbv3_result_text:procedure(context:pointer; value:pchar; len:integer; xDel:integer); cdecl;
SqliteDbv3_result_value:procedure(context:pointer; value:pvalue); cdecl;
SqliteDbv3_set_auxdata:procedure(context:pointer; idx:integer; data:pointer; xDel:integer); cdecl;
SqliteDbv3_sql: function(stmt: pointer):pchar; cdecl;
SqliteDbv3_SqliteLibVersion: function(): PChar; cdecl;
SqliteDbv3_step:function(pStmt:pointer):integer; cdecl;
SqliteDbv3_total_changes: function(db: Pointer): integer; cdecl;
SqliteDbv3_user_data:function(context:pointer):pointer; cdecl;
SqliteDbv3_value_blob:function(v:pvalue):pointer; cdecl;
SqliteDbv3_value_bytes:function(v:pvalue):integer; cdecl;
SqliteDbv3_value_double:function(v:pvalue):double; cdecl;
SqliteDbv3_value_int:function(v:pvalue):integer; cdecl;
SqliteDbv3_value_int64:function(v:pvalue):int64; cdecl;
SqliteDbv3_value_text:function(v:pvalue):pchar; cdecl;
SqliteDbv3_value_type:function(v:pvalue):integer; cdecl;

Description

Functions and Procedures

procedure LoadFunctions(LibraryHandle: Integer);

This function is called by TSqlitePassEngine to load library functions

Types

ppvaluepvalue;
 
pvalue=pointer;
 
TBusyHandler = function(user:pointer; count:integer):integer; cdecl;
 
TDestructor = procedure(data:pointer); cdecl;
 
TExecCallback = function(Sender: pointer; ColumnsCount: Integer; ColumnValues: ppchar; ColumnNames: ppchar): integer; cdecl;
 
TFuncFinalizer = procedure(context:pointer); cdecl;
 
TFuncHandler = procedure(context:pointer; nArgs:integer; args:ppvalue); cdecl;
 
TUserCollation = function(user:pointer; lenA:integer; a:pchar; lenB:integer; b:pchar):integer; cdecl;
 
TUserCollationNeeded = procedure(user:pointer; db:pointer; eTextRep:integer; zName:pchar); cdecl;
 

Constants

SQLITE_ABORT = 4;

Access permission denied

SQLITE_ANY = 5;

Use native byte order

SQLITE_AUTH = 23;

Uses OS features not supported on host

SQLITE_BLOB = 4;
 
SQLITE_BUSY = 5;

Callback routine requested an abort

SQLITE_CANTOPEN = 14;

Insertion failed because database is full

SQLITE_CONSTRAINT = 19;

Too much data for one row of a table

SQLITE_CORRUPT = 11;

Some kind of disk I/O error occurred

SQLITE_DONE = 101;

sqlite_step() has another row ready

SQLITE_EMPTY = 16;

Database lock protocol error

SQLITE_ERROR = 1;

Successful result

SQLITE_FLOAT = 2;
 
SQLITE_FORMAT = 24;

Authorization denied

SQLITE_FULL = 13;

(Internal Only) Table or record not found

SQLITE_INTEGER = 1;

sqlite_step() has finished executing

SQLITE_INTERNAL = 2;

SQL error or missing database

SQLITE_INTERRUPT = 9;

Attempt to write a readonly database

SQLITE_IOERR = 10;

Operation terminated by sqlite_interrupt()

SQLITE_LOCKED = 6;

The database file is locked

SQLITE_MISMATCH = 20;

Abort due to contraint violation

SQLITE_MISUSE = 21;

Data type mismatch

SQLITE_NOLFS = 22;

Library used incorrectly

SQLITE_NOMEM = 7;

A table in the database is locked

SQLITE_NOTADB = 26;

2nd parameter to sqlite_bind out of range

SQLITE_NOTFOUND = 12;

The database disk image is malformed

SQLITE_NULL = 5;
 
SQLITE_OK = 0;

—– SQLite declarations —–

SQLITE_OPEN_CREATE = 4;
 
SQLITE_OPEN_DELETEONCLOSE = 8;
 
SQLITE_OPEN_EXCLUSIVE = 10;
 
SQLITE_OPEN_FULLMUTEX = 10000;
 
SQLITE_OPEN_MAIN_DB = 100;
 
SQLITE_OPEN_MAIN_JOURNAL = 800;
 
SQLITE_OPEN_MASTER_JOURNAL = 4000;
 
SQLITE_OPEN_NOMUTEX = 8000;
 
SQLITE_OPEN_READONLY = 1;

** These bit values are intended for use in the 3rd parameter to the sqlite3_open_v2() ** interface and in the 4th parameter to the xOpen method of the sqlite3_vfs object.

SQLITE_OPEN_READWRITE = 2;
 
SQLITE_OPEN_SUBJOURNAL = 2000;
 
SQLITE_OPEN_TEMP_DB = 200;
 
SQLITE_OPEN_TEMP_JOURNAL = 1000;
 
SQLITE_OPEN_TRANSIENT_DB = 400;
 
SQLITE_PERM = 3;

An internal logic error in SQLite

SQLITE_PROTOCOL = 15;

Unable to open the database file

SQLITE_RANGE = 25;

Auxiliary database format error

SQLITE_READONLY = 8;

A malloc() failed

SQLITE_ROW = 100;

File opened that is not a database file

SQLITE_SCHEMA = 17;

(Internal Only) Database table is empty

SQLITE_STATIC = 0;

sqlite3_create_function only

SQLITE_TEXT = 3;
 
SQLITE_TOOBIG = 18;

The database schema changed

SQLITE_TRANSIENT = -1;
 
SQLITE_UTF16 = 4;
 
SQLITE_UTF16BE = 3;
 
SQLITE_UTF16LE = 2;
 
SQLITE_UTF8 = 1;

** These are the allowed values for the eTextRep argument to ** sqlite3_create_collation and sqlite3_create_function.

Variables

EnginesCount: Integer;

Keeps track of engines using the library

SqliteDbv3_aggregate_context:function(context:pointer; nBytes:integer):pointer; cdecl;
 
SqliteDbv3_aggregate_count:function(SqliteDbv3_context:pointer):integer; cdecl;
 
SqliteDbv3_bind_blob:function(stmt:pointer; idx:integer; value:pointer; size:integer; xDel:integer):integer; cdecl;
 
SqliteDbv3_bind_double:function(stmt:pointer; idx:integer; value:double):integer; cdecl;
 
SqliteDbv3_bind_int:function(stmt:pointer; idx:integer; value:integer):integer; cdecl;
 
SqliteDbv3_bind_int64:function(stmt:pointer; idx:integer; value:int64):integer; cdecl;
 
SqliteDbv3_bind_null:function(stmt:pointer; idx:integer):integer; cdecl;
 
SqliteDbv3_bind_parameter_count:function(stmt:pointer):integer; cdecl;
 
SqliteDbv3_bind_parameter_index:function(stmt:pointer; zName:pchar):integer; cdecl;
 
SqliteDbv3_bind_parameter_name:function(stmt:pointer; idx:integer):pchar; cdecl;
 
SqliteDbv3_bind_text:function(stmt:pointer; idx:integer; value:pchar; size:integer; xDel:Integer):integer; cdecl;

SqliteDbv3_bind_value:function(stmt:pointer; idx:integer; value:pointer):integer; cdecl;

SqliteDbv3_busy_handler: function(db: Pointer; CallbackPtr:TBusyHandler; user:pointer):integer; cdecl;
 
SqliteDbv3_busy_timeout: function(db: Pointer; TimeOut: integer):integer; cdecl;
 
SqliteDbv3_changes: function(db: Pointer): integer; cdecl;
 
SqliteDbv3_clear_binding:function(stmt:pointer):integer; cdecl;

Binding values to parameters

SqliteDbv3_close: function(db: Pointer):integer; cdecl;

—– Database functions —–

SqliteDbv3_collation_needed:function(db:pointer; userData:pointer; func:TUserCollationNeeded):integer; cdecl;
 
SqliteDbv3_column_blob:function(pStmt:pointer; col:integer):pointer; cdecl;
 
SqliteDbv3_column_bytes:function(pStmt:pointer; col:integer):integer; cdecl;
 
SqliteDbv3_column_count:function(pStmt:pointer):integer; cdecl;

Column information

SqliteDbv3_column_decltype:function(pStmt:pointer; idx:integer):pchar; cdecl;

returns text which is the declared type of the column in the CREATE TABLE statement

SqliteDbv3_column_double:function(pStmt:pointer; col:integer):double; cdecl;
 
SqliteDbv3_column_int:function(pStmt:pointer; col:integer):integer; cdecl;
 
SqliteDbv3_column_int64:function(pStmt:pointer; col:integer):int64; cdecl;
 
SqliteDbv3_column_name:function(pStmt:pointer; idx:integer):pchar; cdecl;
 
SqliteDbv3_column_origin_name:function(pStmt:pointer; idx:integer):pchar; cdecl;
 
SqliteDbv3_column_table_name:function(pStmt:pointer; idx:integer):pchar; cdecl;
 
SqliteDbv3_column_text:function(pStmt:pointer; col:integer):pchar; cdecl;
 
SqliteDbv3_column_type:function(pStmt:pointer; col:integer):integer; cdecl;
 
SqliteDbv3_complete: function(P: PChar): integer; cdecl;
 
SqliteDbv3_create_collation:function(db:pointer; zName:pchar; eTextRep:integer; userData:pointer; func:TUserCollation):integer; cdecl;

Sort functions

SqliteDbv3_create_function:function( db:pointer; zFunctionName:pchar; nArg:integer; eTextRep:integer; userData:pointer; xFunc, xStep:TFuncHandler; xFinal:TFuncFinalizer):integer; cdecl;

user defined functions

SqliteDbv3_data_count:function(pStmt:pointer):integer; cdecl;
 
SqliteDbv3_errcode:function(db:pointer):integer; cdecl;
 
SqliteDbv3_errmsg:function(db:pointer):pchar; cdecl;
 
SqliteDbv3_exec: function(db: Pointer; SQLStatement: PChar; CallbackPtr: TExecCallBack; CbParam: pointer; ErrMsg: PPChar): integer; cdecl;
 
SqliteDbv3_finalize:function(pStmt:pointer):integer; cdecl;
 
SqliteDbv3_free: procedure(P: PChar); cdecl;
 
SqliteDbv3_free_table: procedure(Table: PAnsiChar); cdecl;
 
SqliteDbv3_get_auxdata:function(context:pointer; idx:integer):pointer; cdecl;
 
SqliteDbv3_get_table: function(db: Pointer; SQLStatement: PAnsiChar; var ResultPtr: Pointer; var RowCount: cardinal; var ColCount: cardinal; var ErrMsg: PAnsiChar): integer; cdecl;
 
SqliteDbv3_interrupt: procedure(db: Pointer); cdecl;
 
SqliteDbv3_last_insert_rowid: function(db: Pointer): int64; cdecl;
 
SqliteDbv3_open: function(dbname: PChar; var db:pointer; flags: integer; vfs: PChar):integer; cdecl;

Open a database and store the handle in 'db'

SqliteDbv3_prepare_v2:function(db:pointer; Sql:pchar; nBytes:integer; var stmt:pointer; var pzTail:pchar):integer; cdecl;

SqliteDbv3_prepare:function(db:pointer; Sql:pchar; nBytes:integer; var stmt:pointer; var pzTail:pchar):integer; cdecl;

SqliteDbv3_reset:function(pStmt:pointer):integer; cdecl;
 
SqliteDbv3_result_blob:procedure(context:pointer; value:pointer; size:integer; xDel:integer); cdecl;
 
SqliteDbv3_result_double:procedure(context:pointer; value:double); cdecl;
 
SqliteDbv3_result_error:procedure(context:pointer; msg:pchar; len:integer); cdecl;
 
SqliteDbv3_result_int:procedure(context:pointer; value:integer); cdecl;
 
SqliteDbv3_result_int64:procedure(context:pointer; value:int64); cdecl;
 
SqliteDbv3_result_null:procedure(context:pointer); cdecl;
 
SqliteDbv3_result_text:procedure(context:pointer; value:pchar; len:integer; xDel:integer); cdecl;
 
SqliteDbv3_result_value:procedure(context:pointer; value:pvalue); cdecl;
 
SqliteDbv3_set_auxdata:procedure(context:pointer; idx:integer; data:pointer; xDel:integer); cdecl;
 
SqliteDbv3_sql: function(stmt: pointer):pchar; cdecl;
 
SqliteDbv3_SqliteLibVersion: function(): PChar; cdecl;

—– Global Info functions —–

SqliteDbv3_step:function(pStmt:pointer):integer; cdecl;
 
SqliteDbv3_total_changes: function(db: Pointer): integer; cdecl;
 
SqliteDbv3_user_data:function(context:pointer):pointer; cdecl;
 
SqliteDbv3_value_blob:function(v:pvalue):pointer; cdecl;
 
SqliteDbv3_value_bytes:function(v:pvalue):integer; cdecl;
 
SqliteDbv3_value_double:function(v:pvalue):double; cdecl;
 
SqliteDbv3_value_int:function(v:pvalue):integer; cdecl;
 
SqliteDbv3_value_int64:function(v:pvalue):int64; cdecl;
 
SqliteDbv3_value_text:function(v:pvalue):pchar; cdecl;
 
SqliteDbv3_value_type:function(v:pvalue):integer; cdecl;
 

Generated by PasDoc 0.11.0 on 2009-01-11 21:17:59