社区
数据库相关
帖子详情
使用ADO中的事务往SQLSERVER中插入数据时,为什么只有最后一行提交了(再线等待)
litongling
2003-11-14 08:40:59
但是去除了事务直接写却可以提交全部的数据。
...全文
126
7
打赏
收藏
使用ADO中的事务往SQLSERVER中插入数据时,为什么只有最后一行提交了(再线等待)
但是去除了事务直接写却可以提交全部的数据。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jpyc
2003-11-16
打赏
举报
回复
好象ADO不能处理多条的
litongling
2003-11-14
打赏
举报
回复
如果把事务的开始放到WHILE中,达不到预期的要求,我想是把所有的临时表中的数据都添加到SQLSERVER中,有错误全部回滚的。如果添加到WHILE 中那么只对应的是一条纪录而已。
再一个事务中只能有一个EXECSQL吗,我记得以前使用BDE时,可以执行多个EXECSQL的。
这次我是第一次使用ADO。代码也是以前BDE中的。在BDE中应该是可以的呀
xfgncit98
2003-11-14
打赏
举报
回复
up
miszyf
2003-11-14
打赏
举报
回复
楼上说得好象有道理
XXSingle
2003-11-14
打赏
举报
回复
楼主把事务提交放到了循环语局的外边,这个事务就不怎么起作用了,
因每一行都执行了一次execsql,到了最后一条才退出循环,然后
CommitTrans 提交事务,很明显这个事件只对最后一个execsql起作用;
估计这就是你问了为什么的原因,把你的事务处理放到while的里边试试吧
litongling
2003-11-14
打赏
举报
回复
begin
if (clientdataset1.State = dsedit) then
clientdataset1.Post ;
try
datamodule1.adoconnection1.BeginTrans ;
clientdataset1.First ;
while not clientdataset1.Eof do {把在CLIENTDATASE1中的所有数据都添加到RK的表中。}
begin
with datamodule1.adoQuery1 do
begin
close;
sql.Clear ;
sql.add('insert jihuabiao(xuhao,bianhao,tuhao,mingcheng,shuliang,jindu,moxingchang,zhuzaochang,leixing,linghao,jihuabeizhu)');
sql.add('values(:xuhao,:bianhao,:tuhao,:mingcheng,:shuliang,:jindu,:moxingchang,:zhuzaochang,:leixing,:linghao,:jihuabeizhu)');
Parameters.ParamByName('xuhao').Value :=jhxuhao;
Parameters.parambyname('bianhao').Value :=edit1.text;
Parameters.parambyname('tuhao').Value :=clientdataset1.fieldbyname('tuhao').AsString ;
Parameters.parambyname('mingcheng').Value :=clientdataset1.fieldbyname('mingcheng').AsString ;
Parameters.parambyname('shuliang').Value :=clientdataset1.fieldbyname('shuliang').Asfloat;
Parameters.parambyname('jindu').Value :=clientdataset1.fieldbyname('jindu').Asdatetime ;
Parameters.parambyname('moxingchang').Value :=clientdataset1.fieldbyname('moxingchang').AsString ;
Parameters.parambyname('zhuzaochang').Value :=clientdataset1.fieldbyname('zhuzaochang').AsString ;
Parameters.parambyname('leixing').Value :=clientdataset1.fieldbyname('leixing').AsString ;
Parameters.parambyname('linghao').Value :=clientdataset1.fieldbyname('linghao').AsString ;
Parameters.parambyname('jihuabeizhu').Value :=clientdataset1.fieldbyname('beizhu').AsString ;
execsql;
end;
clientdataset1.Next ;
end;
datamodule1.ADOConnection1.CommitTrans ;
clientdataset1.enablecontrols;
except
if datamodule1.ADOConnection1.InTransaction then
datamodule1.adoconnection1.RollbackTrans ;
showmessage('错误,请检查输入是否正确');
clientdataset1.enablecontrols;
end;
end;
txlicenhe
2003-11-14
打赏
举报
回复
你的代码?
PHP程序开发范例宝典III
实例227
使用
聚集函数First或Last求
数据
表
中
第一条或
最后
一条记录 352 8.10 多表查询 354 实例228
使用
select语句进行多表查询 354 实例229
使用
表的别名 355 实例230 合并多个结果集 356 8.11 嵌套查询...
C#编程经验技巧宝典
76 <br>0111 计算字符串
中
子字符串出现的次数 76 <br>0112 获得字符串
中
大写字母的个数 77 <br>0113 获得某字符在字符串
中
最后
出现的位置 78 <br>0114 如何找出字符串
中
某一字符的所有位置 78...
IIS6.0 IIS,互联网信息服务
inf,hide,7”的行,把这
一行
替换为“iis=iis2.dll,OcEntry, iis2.inf,,7”,之后保存文件。 步骤2 把Windows 2000专业版的光盘
插入
光驱,用Winrar打开光盘i386目录下的iis.dl_和iis. in_这两个CAB格式的文件,将解...
mysql5.1
中
文手册
在SQL语句
中
使用
COLLATE 10.3.9. COLLATE子句优先 10.3.10. BINARY操作符 10.3.11. 校对确定较为复杂的一些特殊情况 10.3.12. 校对必须适合字符集 10.3.13. 校对效果的示例 10.4. 字符集支持影响...
SQL Server
数据
库之
使用
事务
一个显式
事务
必须通过 BEGIN TRANSACTION 语句开始,从连接上一个 SQL Server
数据
库服务器的那一刻开始,在此连接上执行的所 T-SQL 语句都是
事务
的一部分,知道
事务
结束为止,能
使用
GEGIN TRANSACTION 语句来开启...
数据库相关
2,497
社区成员
88,445
社区内容
发帖
与我相关
我的任务
数据库相关
Delphi 数据库相关
复制链接
扫一扫
分享
社区描述
Delphi 数据库相关
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章