sqlite3loadlib.lpr 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. program sqlite3loadlib;
  2. {$mode objfpc}{$H+}
  3. uses
  4. {$IFDEF UNIX}{$IFDEF UseCThreads}
  5. cthreads,
  6. {$ENDIF}{$ENDIF}
  7. Classes, sysutils,
  8. sqldb,
  9. sqldblib, sqlite3conn;
  10. var
  11. LibLoader: TSQLDBLibraryLoader;
  12. Conn: TSQlite3Connection;
  13. Tran: TSQLTransaction;
  14. Q: TSQLQuery;
  15. Existed: boolean;
  16. begin
  17. LibLoader:=TSQLDBLibraryLoader.Create(nil);
  18. try
  19. LibLoader.ConnectionType:='SQLite3';
  20. LibLoader.LibraryName:='d:\auxinst\sqlite\sqlite3.dll';
  21. LibLoader.Enabled := true;
  22. LibLoader.LoadLibrary;
  23. finally
  24. LibLoader.Free;
  25. end;
  26. Conn:=TSQlite3Connection.create(nil);
  27. try
  28. Tran:=TSQLTransaction.create(nil);
  29. Q:=TSQLQuery.Create(nil);
  30. Conn.DatabaseName:='test.sqlite';
  31. existed:=fileexists(conn.databasename);
  32. Conn.Transaction:=Tran;
  33. Q.DataBase:=Conn;
  34. Conn.Open;
  35. Tran.StartTransaction;
  36. if not(existed) then
  37. begin
  38. // create test table
  39. Conn.ExecuteDirect('create table test (id integer, name varchar(255))');
  40. end;
  41. Q.SQL.Text:='select id,name from test ';
  42. Q.Open;
  43. Q.Last; //force recordcount update
  44. writeln('recordcount: '+inttostr(q.RecordCount));
  45. Tran.Commit;
  46. Q.Close;
  47. Conn.Close;
  48. finally
  49. Q.Free;
  50. Tran.Free;
  51. Conn.Free;
  52. //LibLoader.Free;
  53. end;
  54. writeln('Program complete. Press a key to continue.');
  55. readln;
  56. end.