首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

◆小弟我的疑惑:请教哪个比较节省资源,存储速度比较快?

2012-03-08 
◆我的疑惑:请问哪个比较节省资源,存储速度比较快??我的程序中有个数据库操作的地方,受到外界触发时候就进

◆我的疑惑:请问哪个比较节省资源,存储速度比较快??
我的程序中有个数据库操作的地方,受到外界触发时候就进行操作存储;

现在疑惑使用哪种方法比较节省资源?存储速度比较快?

我使用的是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多次不同值的新增存储操作。


现在疑惑使用哪种方法比较节省资源?存储速度比较快?谢谢各位了!!

[解决办法]
没做过测试,我想【方法二】要好一点吧,只是把Close加到在程序退出关闭时候
【方法二】
仅仅在程序触发时候做如下操作
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;

热点排行