blob: bc005bec3d309ec77067e8f456f32ecfbea48428 (
plain) (
tree)
|
|
program lazarustest;
uses
SQLiteTable3 in 'SQLiteTable3.pas',
SQLite3 in 'SQLite3.pas',
sysutils;
procedure DoTest();
var
slDBpath : string;
sldb : TSQLiteDatabase;
sltb : TSQLIteTable;
sSQL : String;
Notes : String;
begin
// needed for linux build.
slDBPath := ExtractFilepath( paramstr(0) ) + 'test.db';
sldb := TSQLiteDatabase.Create(slDBPath);
try
if sldb.TableExists('testTable') then
begin
sSQL := 'DROP TABLE testtable';
sldb.execsql(sSQL);
end;
sSQL := 'CREATE TABLE testtable ([ID] INTEGER PRIMARY KEY,[OtherID] INTEGER NULL,';
sSQL := sSQL + '[Name] VARCHAR (255),[Number] FLOAT, [notes] BLOB, [picture] BLOB COLLATE NOCASE);';
sldb.execsql(sSQL);
sldb.execsql('CREATE INDEX TestTableName ON [testtable]([Name]);');
//begin a transaction
sldb.BeginTransaction;
sSQL := 'INSERT INTO testtable(Name,OtherID,Number,Notes) VALUES ("Some Name",4,587.6594,"Here are some notes");';
//do the insert
sldb.ExecSQL(sSQL);
sSQL := 'INSERT INTO testtable(Name,OtherID,Number,Notes) VALUES ("Another Name",12,4758.3265,"More notes");';
//do the insert
sldb.ExecSQL(sSQL);
//end the transaction
sldb.Commit;
//query the data
sltb := slDb.GetTable('SELECT * FROM testtable');
try
if sltb.Count > 0 then
begin
//display first row
writeln( sltb.FieldAsString(sltb.FieldIndex['Name']) );
writeln( inttostr(sltb.FieldAsInteger(sltb.FieldIndex['ID'])) );
writeln( floattostr( sltb.FieldAsDouble(sltb.FieldIndex['Number'])) );
end;
finally
sltb.Free;
end;
finally
sldb.Free;
end;
end;
begin
try
DoTest();
writeln( 'SqlLite3 unit IS lazarus compatible' );
except
writeln( 'ERROR : SqlLite3 unit is NOT lazarus compatible' );
end;
end.
|