|
发表于 2009-7-2 23:27:32
|
显示全部楼层
为了提高效率,Sqlite4fpc会把数据缓存在内存中,所以必须手工对Dataset进行ApplyUpdates。如果使用query,可使用SQLTransaction来控制事务的开始和提交。下面是我写的测试代码,供参考:
procedure TForm1.Button1Click(Sender: TObject);
var
strs:TStringList;
begin
SQLite3Connection1.Connected:= true;
strs := TStringList.Create;
try
SQLite3Connection1.GetTableNames(strs,false);
if strs.Count=0 then
begin
SQLite3Connection1.ExecuteDirect('CREATE TABLE test(ID INTEGER PRIMARY KEY autoincrement, F1 VARCHAR(100), F2 INTEGER, F3 VARCHAR(100));');
end;
finally
strs.Free;
end;
qry.Close;
qry.SQL.Clear;
SQLTransaction1.StartTransaction;
qry.SQL.Add('insert into test(F1,F2,F3) values '+format('("%s",%d,"%s");',['test1',1,'testtest1']));
qry.ExecSQL;
SQLTransaction1.Commit;
end; |
|