起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 433|回复: 12

数据保存的时候报错,麻烦帮分析下**

[复制链接]
发表于 2008-3-10 10:14:10 | 显示全部楼层 |阅读模式
一个表单的数据保存时候,大部分时候保存没有问题,但偶尔会出现如下错误提示,
请分析下原因:

代码如下;
with DS.Connection.Transaction do
    begin
      lTransactionHandle := Start(False);    //启动事务 Start
      try
        DS.ApplyUpdates;
        if not TINFO_LJCGRK(InfoBroker.Info).updateStockKC_SAVE(FOperstatus) then raise exception.Create('更新库存信息失败');
        Commit(lTransactionHandle);   //  提交事务
        if ChkSavePrint.Checked then
        begin
          TINFO_LJCGRK(InfoBroker.Info).PreparePrintView(DS.FieldByName('ID').asString);
          TSheetDoc(RptView.doc).exporter.Printex(false, true);
         // RptView.Print ;
        end;
        if (Sender as TToolButton).Caption ='保存' then
          ModalResult:=Business.Forms.Controls.mrOk
        else begin
          FOperstatus:='新增';
          DisplayRecord;
          if DataEdtPCODE.CanFocus then DataEdtPCODE.SetFocus ;
        end;
      except
        Rollback(lTransactionHandle);  //回滚事务
        raise;
      end;
    end;

2.jpg

11.97 KB, 下载次数: 235

回复

使用道具 举报

 楼主| 发表于 2008-3-10 10:16:58 | 显示全部楼层
还有错误界面

1.jpg

11.67 KB, 下载次数: 215

回复 支持 反对

使用道具 举报

发表于 2008-3-10 10:33:37 | 显示全部楼层
1楼的图
把Commit 和 except之间的代码都弄到Try except end的外面去
回复 支持 反对

使用道具 举报

发表于 2008-3-10 10:37:35 | 显示全部楼层
2楼的错误,从图片上看不象是平台的报错
如果是执行SQL语句报错的话,平台一般是 xxx getRecords xxx 之类的提示信息
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-10 13:10:30 | 显示全部楼层
好,试试。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-10 17:04:36 | 显示全部楼层
我看到了错误的提示:如下图。
取数据的代码如下:现在是啥原因呢? 代码应该没有问题,是否应用服务器? 注:出现问题的岗位人员操作速度比较快,保存数据的频率比较快。是否啥原因导致数据库锁表?

static function TWSL.GetDataSetBySQL(strSQL:String)bject; //根据提交的SQL文本返回数据集
var
  lDS : TQuery;
begin
  lDS:=TQuery.Create(nil);
  try
    try
      lDS.ConnectionString:='DATABASEURL=Biz:ECISECISDB.Database';
      lDS.CommandText:=strSQL;
      lDS.Open;

    except
      on E: Exception do
        raise exception.Create('执行SQL语句失败,SQL文本:'+strSQL+' 异常内容:'+E.Message);    end;
    Result:=lDS.Data;
  finally
    lDS.Free;
  end;
end;

temppng19.png

13.59 KB, 下载次数: 227

回复 支持 反对

使用道具 举报

发表于 2008-3-11 10:14:22 | 显示全部楼层
请楼主检查一下 windows\system32\midas.dll 文件的日期、版本号等
跟 X3 Server\client\NewVersion\install\midas.dll 文件比较一下
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-11 13:44:42 | 显示全部楼层
看了,是一样的。版本。
回复 支持 反对

使用道具 举报

发表于 2008-3-11 14:48:19 | 显示全部楼层
楼主,看这个问题有点晕,1楼的问题已经ok了,是吧。

2楼的错误就是6楼的代码,是吗?

那么1和2楼有关系吗?

另外,你说“出现问题的岗位人员操作速度比较快,保存数据的频率比较快。是否啥原因导致数据库锁表?”
1、你是否启动了立即事务?
2、如果操作的速度快(快到何程度),如果不快,是否正常。
3、保存数据不频繁就正常了。
回复 支持 反对

使用道具 举报

发表于 2008-3-14 08:45:40 | 显示全部楼层
??
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-14 04:55 , Processed in 0.040979 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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