在批处理模式下.
我向库中增加N条记录(使用insert,然后adoquery.execute),最后调用adoquery.UpdateBatch()方法提交数据.提示说不能在关闭的数据集(adoquery)上执行该操作.
是不是执行了adoquery.execute方法后数据集就立即关闭了呢?怎么上面的问题(即用execute增加数据,不是append方法?
我向库中增加N条记录(使用insert,然后adoquery.execute),最后调用adoquery.UpdateBatch()方法提交数据.提示说不能在关闭的数据集(adoquery)上执行该操作.
是不是执行了adoquery.execute方法后数据集就立即关闭了呢?怎么上面的问题(即用execute增加数据,不是append方法?
解决方案 »
- 急急急!!!网络数据通讯问题(多线程如何解决???)
- 如何将EXCEL导进Dbgrid中去? 如何将EXCEL导进access中去?
- delphi7+SQLserver2000中怎样存取图片?
- datetime转换成浮点数.怎样转,比如'2006-03-07 01:02:03' 转成 ????.?????
- 失恋了,散分。就结头10人
- 关于Delphi的Watch!(必给分!!)
- 在三层中,本地客户端怎样调用数据库中的存储过程?
- 如何是的stringgrid的某个cell获得焦点
- 进来看看
- 如何用程序创建一个数据库文件?
- 请问我用什么方法来学Delphi????
- sql中的数据表名称可以用变量么?
如果使用的临时query,adoquery的sql语句没有改变,则直接打开adoquery就可以了
我现在怀疑这个做法能增加效率吗?因为调用updaebatch方法后,数据不还是要一条条写进sql数据库吗,并不能减少网络数据流量.与不使用处理方式导入数据效果一样的.(我的理解对吗?)不管能不能增加效率,假如非要使用批处理方法.但下面程序段在没有调用updatebatch之前就已经导入了sql数据库了,高手帮我看看哪儿设置(写)错了设置:adoqSql的cursortype为keyset,locktype为batchoptimistic 其它没特殊设置
adoqAcs没有特殊设置.
简写程序:sql:='select * from accessTable';
adoqAcs.Close;
adoqAcs.CommandText :=sql;
adoqAcs.Open;
while not adoqAcs.Eof do
begin
adoqSql.Close;
adoqSql.SQL.Clear;
strInsert:='insert into sqlTable(Field1,Field2) values(:Val1,:val2)';
adoqSql.SQL.Add(strInsert);
adoqSql.Parameters.ParamByName('val1').Value :=adoqAcs.fieldbyname('f1').Value);
adoqSql.Parameters.ParamByName('val2').Value :=adoqAcs.fieldbyname('f2').Value);
adoqSql.ExecSQL ;
adoqSql.Next;
end;还有一按钮调用提交方法:adoqSql.updatebatch() //还有调用我发现数据已经写进mssql数据库了罗嗦比较多.大家耐心点.
我已经调了一下午了.再加点分吧