Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
fpc-src / usr / share / fpcsrc / 3.2.0 / packages / fcl-db / examples / sqlite3loadlib.lpr
Size: Mime:
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.