sqlite3extdemo.pp 902 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. program test;
  2. {$mode objfpc}{$H+}
  3. uses
  4. sysutils,
  5. sqlite3conn,
  6. sqlite3ext,
  7. sqldb;
  8. const
  9. SharedPrefix = {$ifdef mswindows}''{$else}'lib'{$endif};
  10. var
  11. con: TSQLite3Connection;
  12. trans: TSQLTransaction;
  13. q: TSQLQuery;
  14. begin
  15. con := TSQLite3Connection.Create(nil);
  16. trans := TSQLTransaction.Create(con);
  17. q := TSQLQuery.Create(con);
  18. try
  19. trans.DataBase := con;
  20. q.DataBase := con;
  21. q.Transaction := trans;
  22. con.DatabaseName := 'test.sqlite3';
  23. con.Open;
  24. con.LoadExtension(ExtractFilePath(ParamStr(0)) +
  25. SharedPrefix + 'myext.' + SharedSuffix);
  26. q.SQL.Text := 'SELECT mysum(2, 3);';
  27. q.Open;
  28. WriteLn('MYSUM: ', q.Fields[0].AsInteger); // prints "MYSUM: 5"
  29. q.Close;
  30. q.SQL.Text := 'SELECT myconcat(''abc'', ''123'');';
  31. q.Open;
  32. WriteLn('MYCONCAT: ', q.Fields[0].AsString); // prints "MYCONCAT: abc123"
  33. finally
  34. con.Free;
  35. end;
  36. end.