|
@@ -0,0 +1,60 @@
|
|
|
+program sqlite3loadlib;
|
|
|
+
|
|
|
+{$mode objfpc}{$H+}
|
|
|
+
|
|
|
+uses
|
|
|
+ {$IFDEF UNIX}{$IFDEF UseCThreads}
|
|
|
+ cthreads,
|
|
|
+ {$ENDIF}{$ENDIF}
|
|
|
+ Classes, sysutils,
|
|
|
+ sqldb,
|
|
|
+ sqldblib, sqlite3conn;
|
|
|
+
|
|
|
+var
|
|
|
+ LibLoader: TSQLDBLibraryLoader;
|
|
|
+ Conn: TSQlite3Connection;
|
|
|
+ Tran: TSQLTransaction;
|
|
|
+ Q: TSQLQuery;
|
|
|
+ Existed: boolean;
|
|
|
+begin
|
|
|
+ LibLoader:=TSQLDBLibraryLoader.Create(nil);
|
|
|
+ try
|
|
|
+ LibLoader.ConnectionType:='SQLite3';
|
|
|
+ LibLoader.LibraryName:='d:\auxinst\sqlite\sqlite3.dll';
|
|
|
+ LibLoader.Enabled := true;
|
|
|
+ LibLoader.LoadLibrary;
|
|
|
+ finally
|
|
|
+ LibLoader.Free;
|
|
|
+ end;
|
|
|
+
|
|
|
+ Conn:=TSQlite3Connection.create(nil);
|
|
|
+ try
|
|
|
+ Tran:=TSQLTransaction.create(nil);
|
|
|
+ Q:=TSQLQuery.Create(nil);
|
|
|
+ Conn.DatabaseName:='test.sqlite';
|
|
|
+ existed:=fileexists(conn.databasename);
|
|
|
+ Conn.Transaction:=Tran;
|
|
|
+ Q.DataBase:=Conn;
|
|
|
+ Conn.Open;
|
|
|
+ Tran.StartTransaction;
|
|
|
+ if not(existed) then
|
|
|
+ begin
|
|
|
+ // create test table
|
|
|
+ Conn.ExecuteDirect('create table test (id integer, name varchar(255))');
|
|
|
+ end;
|
|
|
+ Q.SQL.Text:='select id,name from test ';
|
|
|
+ Q.Open;
|
|
|
+ Q.Last; //force recordcount update
|
|
|
+ writeln('recordcount: '+inttostr(q.RecordCount));
|
|
|
+ Tran.Commit;
|
|
|
+ Q.Close;
|
|
|
+ Conn.Close;
|
|
|
+ finally
|
|
|
+ Q.Free;
|
|
|
+ Tran.Free;
|
|
|
+ Conn.Free;
|
|
|
+ //LibLoader.Free;
|
|
|
+ end;
|
|
|
+ writeln('Program complete. Press a key to continue.');
|
|
|
+ readln;
|
|
|
+end.
|