SQLite之TZConnection事务下为何插入记录很慢?

freemaker 2009-05-29 01:31:02
function ExecSQL(SQLList: TStringList): Boolean;
var
ZQuery: TZQuery;
begin
Result := True;
ZQuery := TZQuery.Create(nil);
try
try
ZQuery.Connection := ZConn;
for I:=0 to SQLList.Count-1 do
begin
ZQuery.SQL.Clear;
ZQuery.SQL.Add(SQLList.Strings[I]);
ZQuery.ExecSQL;
end;
ZConn.Commit;
except
Result := False;
ZConn.Rollback;
end;
finally
FreeAndNil(ZQuery);
end;
end;


400条记录20多秒,不可思议。据说用事务比较快,是不是我哪里用得有问题?
请懂得朋友指正下。
...全文
133 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
freemaker 2009-05-29
  • 打赏
  • 举报
回复
function ExecSQL(SQLList: TStringList): Boolean;
var
ZQuery: TZQuery;
begin
Result := True;
ZQuery := TZQuery.Create(nil);
try
try
ZConn.StartTranction;
ZQuery.Connection := ZConn;
for I:=0 to SQLList.Count-1 do
begin
ZQuery.SQL.Clear;
ZQuery.SQL.Add(SQLList.Strings[I]);
ZQuery.ExecSQL;
end;
ZConn.Commit;
except
Result := False;
ZConn.Rollback;
end;
finally
FreeAndNil(ZQuery);
end;
end;


昨晚贴上来的时候被我不小心删错了,还有ZConn.StartTranction;
SQLList是创建语句和插入数据的语句,用作初始化数据库。
真想知道你们是怎么做的。

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧