|
@@ -14,9 +14,9 @@ uses Classes,strings,sqlite3;
|
|
{*************************************************************}
|
|
{*************************************************************}
|
|
{*************************************************************}
|
|
{*************************************************************}
|
|
type
|
|
type
|
|
- TSQLiteExecCallback = function(Sender: pointer; Columns: Integer; ColumnValues: ppchar; ColumnNames: ppchar): integer of object; cdecl;
|
|
|
|
|
|
+ TSQLiteExecCallback = function(Sender: pointer; Columns: Integer; ColumnValues: PPAnsiChar; ColumnNames: PPAnsiChar): integer of object; cdecl;
|
|
TSQLiteBusyCallback = function(Sender: TObject; BusyCount: integer): longint of object; cdecl;
|
|
TSQLiteBusyCallback = function(Sender: TObject; BusyCount: integer): longint of object; cdecl;
|
|
- TOnData = Procedure(Sender: TObject; Columns: Integer; ColumnNames, ColumnValues: String) of object;
|
|
|
|
|
|
+ TOnData = Procedure(Sender: TObject; Columns: Integer; ColumnNames, ColumnValues: AnsiString) of object;
|
|
TOnBusy = Procedure(Sender: TObject; BusyCount: integer; var Cancel: Boolean) of object;
|
|
TOnBusy = Procedure(Sender: TObject; BusyCount: integer; var Cancel: Boolean) of object;
|
|
TOnQueryComplete = Procedure(Sender: TObject) of object;
|
|
TOnQueryComplete = Procedure(Sender: TObject) of object;
|
|
|
|
|
|
@@ -31,12 +31,12 @@ type
|
|
end;
|
|
end;
|
|
var
|
|
var
|
|
fSQLite:Psqlite3;
|
|
fSQLite:Psqlite3;
|
|
- fMsg: String;
|
|
|
|
|
|
+ fMsg: AnsiString;
|
|
fIsOpen: Boolean;
|
|
fIsOpen: Boolean;
|
|
fBusy: Boolean;
|
|
fBusy: Boolean;
|
|
fError: longint;
|
|
fError: longint;
|
|
- fVersion: String;
|
|
|
|
- fEncoding: String;
|
|
|
|
|
|
+ fVersion: AnsiString;
|
|
|
|
+ fEncoding: AnsiString;
|
|
fTable: TStrings;
|
|
fTable: TStrings;
|
|
fLstName: TStringList;
|
|
fLstName: TStringList;
|
|
fLstVal: TStringList;
|
|
fLstVal: TStringList;
|
|
@@ -53,18 +53,18 @@ type
|
|
{*************************************************************}
|
|
{*************************************************************}
|
|
{*************************************************************}
|
|
{*************************************************************}
|
|
public
|
|
public
|
|
- constructor Create(const DBFileName: String);
|
|
|
|
|
|
+ constructor Create(const DBFileName: AnsiString);
|
|
destructor Destroy; override;
|
|
destructor Destroy; override;
|
|
- function Query(const Sql: String; Table: TStrings ): boolean;
|
|
|
|
- function ErrorMessage(ErrNo: Integer): string;
|
|
|
|
- function IsComplete(Sql: String): boolean;
|
|
|
|
|
|
+ function Query(const Sql: AnsiString; Table: TStrings ): boolean;
|
|
|
|
+ function ErrorMessage(ErrNo: Integer): AnsiString;
|
|
|
|
+ function IsComplete(Sql: AnsiString): boolean;
|
|
function LastInsertRow: integer;
|
|
function LastInsertRow: integer;
|
|
function Cancel: boolean;
|
|
function Cancel: boolean;
|
|
function DatabaseDetails(Table: TStrings): boolean;
|
|
function DatabaseDetails(Table: TStrings): boolean;
|
|
- property LastErrorMessage: string read fMsg;
|
|
|
|
|
|
+ property LastErrorMessage: AnsiString read fMsg;
|
|
property LastError: longint read fError;
|
|
property LastError: longint read fError;
|
|
- property Version: String read fVersion;
|
|
|
|
- property Encoding: String read fEncoding;
|
|
|
|
|
|
+ property Version: AnsiString read fVersion;
|
|
|
|
+ property Encoding: AnsiString read fEncoding;
|
|
property OnData: TOnData read fOnData write fOnData;
|
|
property OnData: TOnData read fOnData write fOnData;
|
|
property OnBusy: TOnBusy read fOnBusy write fOnBusy;
|
|
property OnBusy: TOnBusy read fOnBusy write fOnBusy;
|
|
property OnQueryComplete: TOnQueryComplete read fOnQueryComplete write fOnQueryComplete;
|
|
property OnQueryComplete: TOnQueryComplete read fOnQueryComplete write fOnQueryComplete;
|
|
@@ -73,37 +73,37 @@ type
|
|
property List_FieldName: TStringList read fList_FieldName;
|
|
property List_FieldName: TStringList read fList_FieldName;
|
|
property List_Field: TList read fList_Field;
|
|
property List_Field: TList read fList_Field;
|
|
property Nb_Champ: integer read fNb_Champ write fNb_Champ;
|
|
property Nb_Champ: integer read fNb_Champ write fNb_Champ;
|
|
- procedure SQLOnData(Sender: TObject; Columns: Integer; ColumnNames, ColumnValues: String);
|
|
|
|
|
|
+ procedure SQLOnData(Sender: TObject; Columns: Integer; ColumnNames, ColumnValues: AnsiString);
|
|
end;
|
|
end;
|
|
|
|
|
|
-function Pas2SQLStr(const PasString: string): string;
|
|
|
|
-function SQL2PasStr(const SQLString: string): string;
|
|
|
|
-function QuoteStr(const s: string; QuoteChar: Char ): string;
|
|
|
|
-function UnQuoteStr(const s: string; QuoteChar: Char ): string;
|
|
|
|
-procedure ValueList(const ColumnNames, ColumnValues: String; NameValuePairs: TStrings);
|
|
|
|
|
|
+function Pas2SQLStr(const PasString: AnsiString): AnsiString;
|
|
|
|
+function SQL2PasStr(const SQLString: AnsiString): AnsiString;
|
|
|
|
+function QuoteStr(const s: AnsiString; QuoteChar: AnsiChar ): AnsiString;
|
|
|
|
+function UnQuoteStr(const s: AnsiString; QuoteChar: AnsiChar ): AnsiString;
|
|
|
|
+procedure ValueList(const ColumnNames, ColumnValues: AnsiString; NameValuePairs: TStrings);
|
|
{*************************************************************}
|
|
{*************************************************************}
|
|
{*************************************************************}
|
|
{*************************************************************}
|
|
implementation
|
|
implementation
|
|
Const
|
|
Const
|
|
- DblQuote: Char = '"';
|
|
|
|
- SngQuote: Char = #39;
|
|
|
|
- DblSngQuote: String = #39#39;
|
|
|
|
- Crlf: String = #13#10;
|
|
|
|
- Tab: Char = #9;
|
|
|
|
|
|
+ DblQuote: AnsiChar = '"';
|
|
|
|
+ SngQuote: AnsiChar = #39;
|
|
|
|
+ DblSngQuote: AnsiString = #39#39;
|
|
|
|
+ Crlf: AnsiString = #13#10;
|
|
|
|
+ Tab: AnsiChar = #9;
|
|
var
|
|
var
|
|
- MsgNoError : String;
|
|
|
|
|
|
+ MsgNoError : AnsiString;
|
|
{*************************************************************}
|
|
{*************************************************************}
|
|
{*************************************************************}
|
|
{*************************************************************}
|
|
-function QuoteStr(const s: string; QuoteChar: Char ): string;
|
|
|
|
|
|
+function QuoteStr(const s: AnsiString; QuoteChar: AnsiChar ): AnsiString;
|
|
{*************************************************************
|
|
{*************************************************************
|
|
-SQlite3 enclosing string with quotes
|
|
|
|
|
|
+SQlite3 enclosing AnsiString with quotes
|
|
G. Marcou
|
|
G. Marcou
|
|
*************************************************************}
|
|
*************************************************************}
|
|
begin
|
|
begin
|
|
Result := Concat(QuoteChar, s, QuoteChar);
|
|
Result := Concat(QuoteChar, s, QuoteChar);
|
|
end;
|
|
end;
|
|
{*************************************************************}
|
|
{*************************************************************}
|
|
-function UnQuoteStr(const s: string; QuoteChar: Char ): string;
|
|
|
|
|
|
+function UnQuoteStr(const s: AnsiString; QuoteChar: AnsiChar ): AnsiString;
|
|
{*************************************************************
|
|
{*************************************************************
|
|
SQlite3 Remove enclosing quotes from string
|
|
SQlite3 Remove enclosing quotes from string
|
|
G. Marcou
|
|
G. Marcou
|
|
@@ -119,7 +119,7 @@ begin
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
{*************************************************************}
|
|
{*************************************************************}
|
|
-function Pas2SQLStr(const PasString: string): string;
|
|
|
|
|
|
+function Pas2SQLStr(const PasString: AnsiString): AnsiString;
|
|
{*************************************************************
|
|
{*************************************************************
|
|
SQlite3 SQL string are use double quotes, Pascal string use
|
|
SQlite3 SQL string are use double quotes, Pascal string use
|
|
single quote.
|
|
single quote.
|
|
@@ -139,7 +139,7 @@ begin
|
|
Result := QuoteStr(Result,SngQuote);
|
|
Result := QuoteStr(Result,SngQuote);
|
|
end;
|
|
end;
|
|
{*************************************************************}
|
|
{*************************************************************}
|
|
-function SQL2PasStr(const SQLString: string): string;
|
|
|
|
|
|
+function SQL2PasStr(const SQLString: AnsiString): AnsiString;
|
|
{*************************************************************
|
|
{*************************************************************
|
|
SQlite3 SQL string are use double quotes, Pascal string use
|
|
SQlite3 SQL string are use double quotes, Pascal string use
|
|
single quote.
|
|
single quote.
|
|
@@ -158,7 +158,7 @@ begin
|
|
Result := UnQuoteStr(Result,SngQuote);
|
|
Result := UnQuoteStr(Result,SngQuote);
|
|
end;
|
|
end;
|
|
{*************************************************************}
|
|
{*************************************************************}
|
|
-procedure ValueList(const ColumnNames, ColumnValues : String;
|
|
|
|
|
|
+procedure ValueList(const ColumnNames, ColumnValues : AnsiString;
|
|
NameValuePairs : TStrings);
|
|
NameValuePairs : TStrings);
|
|
{*************************************************************
|
|
{*************************************************************
|
|
SQlite3 build (name=value) pair list
|
|
SQlite3 build (name=value) pair list
|
|
@@ -184,9 +184,9 @@ begin
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
{*************************************************************}
|
|
{*************************************************************}
|
|
-{function SystemErrorMsg(ErrNo: Integer ): String;
|
|
|
|
|
|
+{function SystemErrorMsg(ErrNo: Integer ): AnsiString;
|
|
var
|
|
var
|
|
- buf: PChar;
|
|
|
|
|
|
+ buf: PAnsiChar;
|
|
size: Integer;
|
|
size: Integer;
|
|
MsgLen: Integer;
|
|
MsgLen: Integer;
|
|
begin}
|
|
begin}
|
|
@@ -225,16 +225,16 @@ end;
|
|
{*************************************************************}
|
|
{*************************************************************}
|
|
function ExecCallback(Sender : Pointer;
|
|
function ExecCallback(Sender : Pointer;
|
|
Columns : Integer;
|
|
Columns : Integer;
|
|
-ColumnValues : PPChar;
|
|
|
|
-ColumnNames : PPchar): integer; cdecl;
|
|
|
|
|
|
+ColumnValues : PPAnsiChar;
|
|
|
|
+ColumnNames : PPAnsiChar): integer; cdecl;
|
|
{*************************************************************
|
|
{*************************************************************
|
|
SQlite3 Build table and data from callback
|
|
SQlite3 Build table and data from callback
|
|
G. Marcou
|
|
G. Marcou
|
|
*************************************************************}
|
|
*************************************************************}
|
|
var
|
|
var
|
|
- PVal, PName : ^PChar;
|
|
|
|
|
|
+ PVal, PName : ^PAnsiChar;
|
|
n : integer;
|
|
n : integer;
|
|
- sVal, sName : String;
|
|
|
|
|
|
+ sVal, sName : AnsiString;
|
|
begin
|
|
begin
|
|
Result := 0;
|
|
Result := 0;
|
|
with TObject(Sender) as TSQLite do
|
|
with TObject(Sender) as TSQLite do
|
|
@@ -271,16 +271,16 @@ end;
|
|
{*************************************************************}
|
|
{*************************************************************}
|
|
procedure TSQLite.SQLOnData(Sender : TObject;
|
|
procedure TSQLite.SQLOnData(Sender : TObject;
|
|
Columns : Integer;
|
|
Columns : Integer;
|
|
-ColumnNames, ColumnValues : String);
|
|
|
|
|
|
+ColumnNames, ColumnValues : AnsiString);
|
|
{*************************************************************
|
|
{*************************************************************
|
|
SQlite3 Fill up field list names and field list values
|
|
SQlite3 Fill up field list names and field list values
|
|
G. Marcou
|
|
G. Marcou
|
|
*************************************************************}
|
|
*************************************************************}
|
|
Var
|
|
Var
|
|
- InterS,val : String;
|
|
|
|
|
|
+ InterS,val : AnsiString;
|
|
Field : TStringList;
|
|
Field : TStringList;
|
|
{************************************************}
|
|
{************************************************}
|
|
- function Pos1(a: String ; s : char) : integer;
|
|
|
|
|
|
+ function Pos1(a: AnsiString ; s : AnsiChar) : integer;
|
|
var i,j : Integer;
|
|
var i,j : Integer;
|
|
begin
|
|
begin
|
|
j:=-1;
|
|
j:=-1;
|
|
@@ -331,7 +331,7 @@ begin
|
|
end;
|
|
end;
|
|
|
|
|
|
{*************************************************************}
|
|
{*************************************************************}
|
|
-constructor TSQLite.Create(const DBFileName: String);
|
|
|
|
|
|
+constructor TSQLite.Create(const DBFileName: AnsiString);
|
|
{*************************************************************
|
|
{*************************************************************
|
|
SQlite3 constructor
|
|
SQlite3 constructor
|
|
G. Marcou
|
|
G. Marcou
|
|
@@ -383,14 +383,14 @@ begin
|
|
inherited Destroy;
|
|
inherited Destroy;
|
|
end;
|
|
end;
|
|
{*************************************************************}
|
|
{*************************************************************}
|
|
-function TSQLite.Query(const Sql: String; Table: TStrings ): boolean;
|
|
|
|
|
|
+function TSQLite.Query(const Sql: AnsiString; Table: TStrings ): boolean;
|
|
{*************************************************************
|
|
{*************************************************************
|
|
SQLite3 query the database
|
|
SQLite3 query the database
|
|
G. Marcou
|
|
G. Marcou
|
|
*************************************************************}
|
|
*************************************************************}
|
|
//var
|
|
//var
|
|
-// fPMsg: PChar;
|
|
|
|
-//var Psql : pchar;
|
|
|
|
|
|
+// fPMsg: PAnsiChar;
|
|
|
|
+//var Psql : PAnsiChar;
|
|
begin
|
|
begin
|
|
fError := SQLITE_ERROR;
|
|
fError := SQLITE_ERROR;
|
|
if fIsOpen then
|
|
if fIsOpen then
|
|
@@ -459,7 +459,7 @@ begin
|
|
Result := -1;
|
|
Result := -1;
|
|
end;
|
|
end;
|
|
{*************************************************************}
|
|
{*************************************************************}
|
|
-function TSQLite.ErrorMessage(ErrNo: Integer): string;
|
|
|
|
|
|
+function TSQLite.ErrorMessage(ErrNo: Integer): AnsiString;
|
|
{*************************************************************
|
|
{*************************************************************
|
|
SQLite3 Return comprehensive error message
|
|
SQLite3 Return comprehensive error message
|
|
G. Marcou
|
|
G. Marcou
|
|
@@ -471,12 +471,12 @@ begin
|
|
Result := sqlite3_errmsg(fSQLite);
|
|
Result := sqlite3_errmsg(fSQLite);
|
|
end;
|
|
end;
|
|
{*************************************************************}
|
|
{*************************************************************}
|
|
-function TSQLite.IsComplete(Sql: String): boolean;
|
|
|
|
|
|
+function TSQLite.IsComplete(Sql: AnsiString): boolean;
|
|
{*************************************************************
|
|
{*************************************************************
|
|
SQLite3 Return true when complete
|
|
SQLite3 Return true when complete
|
|
G. Marcou
|
|
G. Marcou
|
|
*************************************************************}
|
|
*************************************************************}
|
|
-var Psql : pchar;
|
|
|
|
|
|
+var Psql : PAnsiChar;
|
|
begin
|
|
begin
|
|
Psql:=StrAlloc (length(Sql)+1);
|
|
Psql:=StrAlloc (length(Sql)+1);
|
|
strpcopy(Psql,Sql);
|
|
strpcopy(Psql,Sql);
|