起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 304|回复: 13

【结贴】[问题]类未注册异常**

[复制链接]
发表于 2009-3-24 15:42:45 | 显示全部楼层 |阅读模式
我使用tsqldataset提交修改时报错
是在一个循环中提交的,前几次没有问题
如图

aaa.png

10.39 KB, 下载次数: 185

回复

使用道具 举报

发表于 2009-3-24 15:51:16 | 显示全部楼层
1、你是怎么提交的?用的是数据导航的保存按钮还是代码?
2、如果是代码,请把你的代码贴出来看看,
3、你说“在一个循环中提交的,前几次没有问题”,那请问,你应该跟踪过,循环到第几次出错呢?当前数据集的记录个数是几呢?
回复 支持 反对

使用道具 举报

发表于 2009-3-24 15:53:27 | 显示全部楼层
服务端有报错吗?
你怎么做的循环提交?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-24 16:03:55 | 显示全部楼层
try
    transactionHandle:=self.DataSetMatUseList.Connection.Transaction.Start(true);
    ds.Edit;
    ds.FieldByName('DeleteFlag').AsInteger:=1;//逻辑删除
  ds.FieldByName('UpdateTime').AsDateTime:=Business.Data.SysSrv.SysService.Time;
    ds.FieldByName('UpdatorId').AsString:=self.getCurrentCreatorID();
    ds.FieldByName('MatModifyState').AsString:=_MatModifyState;
    ds.ApplyUpdates;

  if ds.FieldByName('MaterialTypeName').AsString<>'标准件' then
    begin
      self.qryMatDel.CommandText:='delete am_tmaterial where id=''' + ds.FieldByName('LinkedID').AsString + '''';
      self.qryMatDel.Execute;
    end;
    self.DataSetMatUseList.Connection.Transaction.Commit(transactionHandle);
  except
    self.DataSetMatUseList.Connection.Transaction.RollBack(transactionHandle);
    jsdialogs.ShowError('删除'+ ds.FieldByName('materialno').AsString +  '失败!','错误');
  end;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-24 16:06:54 | 显示全部楼层
出错次数不确定
回复 支持 反对

使用道具 举报

发表于 2009-3-24 16:17:35 | 显示全部楼层
4楼的代码不是全的吧。是不是外边还有一个循环?是否相当于是循环一次就启动提交一次事务?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-24 16:18:48 | 显示全部楼层
这是个函数,在一个循环中调用的
回复 支持 反对

使用道具 举报

发表于 2009-3-24 16:23:01 | 显示全部楼层
建议把事务放到循环外边。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-24 16:25:13 | 显示全部楼层

谢谢!
我试试看
回复 支持 反对

使用道具 举报

发表于 2009-3-24 16:27:58 | 显示全部楼层
好的,记得反馈哦。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-23 10:16 , Processed in 0.050571 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表