lazarus/examples/androidlcl/sqliteform.pas

93 lines
2.1 KiB
ObjectPascal

unit sqliteform;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, db, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
DbCtrls
{$ifdef CPUARM}
,sqlitejniandroid
{$else}
,sqlite3ds
{$endif}
;
type
{ TformSqlite }
TformSqlite = class(TForm)
btnConnect: TButton;
btnSaveDB: TButton;
btnCreateDB: TButton;
Edit1: TEdit;
SqliteDatasource: TDatasource;
DBEdit1: TDBEdit;
DBNavigator1: TDBNavigator;
procedure btnCreateDBClick(Sender: TObject);
procedure btnConnectClick(Sender: TObject);
procedure btnSaveDBClick(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
sqlitedb: {$ifdef CPUARM}TSqliteJNIDataset;{$else}TSqlite3Dataset;{$endif}
end;
var
formSqlite: TformSqlite;
implementation
{$R *.lfm}
{ TformSqlite }
procedure TformSqlite.btnConnectClick(Sender: TObject);
begin
{$ifdef CPUARM}
sqlitedb := TSqliteJNIDataset.Create(Self);
sqlitedb.FileName := '/sdcard/database.db';
{$else}
sqlitedb := TSqlite3Dataset.Create(Self);
sqlitedb.FileName := 'database.db';
{$endif}
sqlitedb.TableName := 'TestTable';
sqlitedb.FieldDefs.Add('FirstFieldStr', ftString);
sqlitedb.FieldDefs.Add('SecondFieldInt', ftInteger);
sqlitedb.SaveOnClose := True;
sqlitedb.Open();
SqliteDatasource.DataSet := sqlitedb;
end;
procedure TformSqlite.btnSaveDBClick(Sender: TObject);
begin
if sqlitedb = nil then Exit;
sqlitedb.Close();
sqlitedb.Open();
end;
procedure TformSqlite.btnCreateDBClick(Sender: TObject);
var
lsqlitedb: {$ifdef CPUARM}TSqliteJNIDataset;{$else}TSqlite3Dataset;{$endif}
begin
{$ifdef CPUARM}
lsqlitedb := TSqliteJNIDataset.Create(Self);
lsqlitedb.FileName := '/sdcard/database.db';
{$else}
lsqlitedb := TSqlite3Dataset.Create(Self);
lsqlitedb.FileName := 'database.db';
{$endif}
//SqliteDatasource.DataSet := sqlitedb;
lsqlitedb.TableName := 'TestTable';
lsqlitedb.FieldDefs.Add('FirstFieldStr', ftString);
lsqlitedb.FieldDefs.Add('SecondFieldInt', ftInteger);
lsqlitedb.CreateTable();
lsqlitedb.Free;
end;
end.