我的程序中有个数据库操作的地方,受到外界触发时候就进行操作存储;现在疑惑使用哪种方法比较节省资源?存储速度比较快?我使用的是ADOConnection1、ADOQuery1控件操作数据库
--------------------------------------------------------
【方法一】在程序启动时候:
AdoQuery1.SQL.Add('select * from Table1 ......');
AdoQuery1.Open在程序退出关闭时候:
AdoQuery1.Close而程序运行中受到触发时候进行新增操作
AdoQuery1.Append;
ADOQuery1.FieldByName('ABC').AsString:=T_A;
ADOQuery1.UpdateBatch();
--------------------------------------------------------
【方法二】
仅仅在程序触发时候做如下操作
ADOQuery1.sql.clear;
ADOQuery1.sql.add('Insert into Table1 (......) Values (......)');
ADOQuery1.execsql;
ADOQuery1.close;--------------------------------------------------------
◆程序受到的触发有时候非常频繁,最多时候会每秒钟50次;
也就是说每秒要做50多次不同值的新增存储操作。
现在疑惑使用哪种方法比较节省资源?存储速度比较快?谢谢各位了!!
--------------------------------------------------------
【方法一】在程序启动时候:
AdoQuery1.SQL.Add('select * from Table1 ......');
AdoQuery1.Open在程序退出关闭时候:
AdoQuery1.Close而程序运行中受到触发时候进行新增操作
AdoQuery1.Append;
ADOQuery1.FieldByName('ABC').AsString:=T_A;
ADOQuery1.UpdateBatch();
--------------------------------------------------------
【方法二】
仅仅在程序触发时候做如下操作
ADOQuery1.sql.clear;
ADOQuery1.sql.add('Insert into Table1 (......) Values (......)');
ADOQuery1.execsql;
ADOQuery1.close;--------------------------------------------------------
◆程序受到的触发有时候非常频繁,最多时候会每秒钟50次;
也就是说每秒要做50多次不同值的新增存储操作。
现在疑惑使用哪种方法比较节省资源?存储速度比较快?谢谢各位了!!
解决方案 »
- 如何把数据库的内容赋到TopGrid上?
- char数组要怎么传到sql中并取回?内详
- 分销商管理软件
- 高分讨论,C/S模式数据库连接?
- 怎么找不到installshield express?
- DBGrid,如何让某一列,显示两位小数的实数?
- 菜鸟问一个问题!!
- 象FlashGet一样,在IE的菜单出现我的程序。
- 请问ADO访问access数据库时,对于AutoIncrement字段如何在insert a record后取得该值?
- dancemaple(枫之舞) 和 galeboy(狂风) 请进。
- 当from的Enabled为false时不能改变Cursor?
- 关于ClientDataSet保存数据的问题?
【方法二】
仅仅在程序触发时候做如下操作
ADOQuery1.sql.clear;
ADOQuery1.sql.add('Insert into Table1 (......) Values (......)');
ADOQuery1.execsql;
//ADOQuery1.close;
应该用第二个方法,但是得用参数查询,不要用
ADOQuery1.sql.clear;
ADOQuery1.sql.add('Insert into Table1 (......) Values (......)');
ADOQuery1.execsql;
应该在ADOQuery1里面把Insert into 事先写好,把数值变成参数:
insert into .. Values (:val1,:val2,..)
调用的时候,写
ADOQuery1.Parameters[0].Value:=...;
ADOQuery1.Parameters[1].Value:=...;
ADOQuery1.execsql;