Delphi7 + sqlite3 怎么提高效率?

Delphi7+sqlite3我使用aslite3控件连接的,现在在向数据库中插入数据时速度很慢,怎么能提高呢?ForLoop:=0ToCount-1Do//这个循环大概... Delphi7 + sqlite3

我使用aslite3控件连接的,现在在向数据库中插入数据时速度很慢,怎么能提高呢?
For Loop:= 0 To Count - 1 Do //这个循环大概100次,此循环大概就需要7,8秒
Begin
ASQLite3InlineSQL1.Append ('INSERT INTO table1 (F1,F2,F3,F4,F5) VALUES (' + '''' + V1.Strings [Loop] + '''' + ',' + '''' + V2 + '''' + ',' + '''' + V3 + '''' + ',' + '''' + V4 + ''''+ ',' + IntToStr(V5) + ');');
End;

ASQLite3InlineSQL1.SQL:= loc_obj_SQLs;
ASQLite3DB1.ExecuteInlineSQL:= True;
ASQLite3DB1.ExecStartTransaction(''); //网上找的代码说是事务处理,不知道正确不正确
ASQLite3DB1.SQLite3_ExecSQL(loc_obj_SQLs.Text);
ASQLite3DB1.Commit
展开
 我来答
jarvok
推荐于2017-07-25 · 超过13用户采纳过TA的回答
知道答主
回答量:47
采纳率:0%
帮助的人:32.7万
展开全部
Sqlite 插入羡樱册兄宏之前,先开启事务, 最后 Commit 这样速度是没有加是颂行的 N倍以上。。
代码大概如下...不知道你用的哪个版本...请修改为相应的:
Connection1.BeginTrans;
for i := 0 to 100 do
begin
//Insert into table...往数据表插入数据
end;
Connection1.EndTrans;
更多追问追答
追问
版本不太清楚,但是没有BeginTrans这个方法,我用的ExecStartTransaction方法也是事物处理吧?
追答
你最好把源代码相关部分完整的帖一下.你上面帖的代码看出来是启用了事务的...但为什么效率还低,可能在其他代码上.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gongxf3
2011-03-12
知道答主
回答量:1
采纳率:0%
帮助的人:0
展开全部
最后commit一次就行
追问
commit没在循环中
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式