起步软件技术论坛-X3

 找回密码
 立即注册
搜索
楼主: linjiawei

2809版本上线使用问题**

[复制链接]
 楼主| 发表于 2007-7-2 10:27:36 | 显示全部楼层
在原来版本上都是好的,升级上来啥也没改就有问题了。现在服务器老是有Start Action..XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 问题。一出现这个信息不行了。
回复 支持 反对

使用道具 举报

发表于 2007-7-2 10:32:09 | 显示全部楼层
请楼主提供你的再现环境,我这里简单测试是好的
在2800和2809都是好的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-7-2 10:48:00 | 显示全部楼层
刚才发现主从关系有三层。
主要看信息层的procedure TPurchasePlanInfo.ShowPurchasePlanAllocDlg(); 这个过程
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-7-2 10:50:58 | 显示全部楼层
附件大于2M怎么发不上去。已发送到support@justep.com
回复 支持 反对

使用道具 举报

发表于 2007-7-2 10:55:01 | 显示全部楼层
qq发吧
回复 支持 反对

使用道具 举报

发表于 2007-7-2 14:01:57 | 显示全部楼层
正在分析,不过请楼主先使用2625版本吧,等我们找到原因,马上跟贴告知
回复 支持 反对

使用道具 举报

发表于 2007-7-2 17:29:10 | 显示全部楼层
看过你的代码了,没有什么特殊的,除了把一些长时间的操作放到了事务里,请楼主这样修改一下
1  采用非立即事务
2  把
          if not Active then Open;
          Last;
          DataSetsdsMaterialToPurchase.DisableControls;
          DataSetsdsMaterialToPurchase.First;
还有
DataSetsdsMaterialToPurchase.EnableControls;
都放到事务外来处理
======================================
procedure TPURCHASEPLANINFO.ShowPurchasePlanAllocDlg();
var
  AHandle: TTransactionHandle;
  dlgPurchasePlan: TPurchasePlanAllotDlg;
begin
  with DataSetsdsPurchasePlan do
  begin
    if not Active then Open;
    if IsEmpty then Append;
  end;
  dlgPurchasePlan := TPurchasePlanAllotDlg.Create(self.Context);
  try
    if (dlgPurchasePlan.ShowModal = Controls.mrOk) then
    begin
      AHandle := DataSetsdsPurchasePlan.Connection.Transaction.Start(False);
      try
        with DataSetsdsPurchasePlanDetail do
        begin
          if not Active then Open;
          Last;
          DataSetsdsMaterialToPurchase.DisableControls;
          DataSetsdsMaterialToPurchase.First;
          while not DataSetsdsMaterialToPurchase.eof do
          begin

            if DataSetsdsMaterialToPurchase.FieldByName('Selected').AsString = 'T' then
            begin
              Append;
              FieldByName('MaterialID').AsString := DataSetsdsMaterialToPurchase.FieldByName('MaterialID').AsString;
              FieldByName('Name').AsString := DataSetsdsMaterialToPurchase.FieldByName('Name').AsString;
              FieldByName('SpecType').AsString := DataSetsdsMaterialToPurchase.FieldByName('SpecType').AsString;
              FieldByName('Units').AsString := DataSetsdsMaterialToPurchase.FieldByName('Units').AsString;
              FieldByName('UBound').AsFloat := DataSetsdsMaterialToPurchase.FieldByName('UBound').AsFloat;
              FieldByName('LBound').AsFloat := DataSetsdsMaterialToPurchase.FieldByName('LBound').AsFloat;
              FieldByName('CurCounts').AsFloat := DataSetsdsMaterialToPurchase.FieldByName('CurCounts').AsFloat;
              FieldByName('NeedCounts').AsFloat := DataSetsdsMaterialToPurchase.FieldByName('NeedCounts').AsFloat;
              FieldByName('OrderCounts').AsFloat := DataSetsdsMaterialToPurchase.FieldByName('OrderCounts').AsFloat;
              FieldByName('PlanOrderCount').AsFloat := DataSetsdsMaterialToPurchase.FieldByName('CheckPlanSum').AsFloat;
              // 物料编号
              MaterialID := DataSetsdsMaterialToPurchase.FieldByName('MaterialID').AsString;
              // 采购计划明细序号
              PlanXH := FieldByName('PKID').AsString;
              // 更新申请明细
              UpdateAppplyPlanID(PlanXH,MaterialID);
              Post;
            end;
            DataSetsdsMaterialToPurchase.Next;
          end;
          DataSetsdsMaterialToPurchase.EnableControls;
        end;
        if DataSetsdsPurchasePlan.State in [TDataSetState.dsInsert,TDataSetState.dsEdit] then
          DataSetsdsPurchasePlan.Post;
          DataSetsdsPurchasePlan.ApplyUpdates;
        DataSetsdsPurchasePlan.Connection.Transaction.Commit(AHandle);
      except
        DataSetsdsPurchasePlan.Connection.Transaction.Rollback(AHandle);
      end;
    end;
    DataSetsdsPurchaseApply.Refresh;
  finally
    dlgPurchasePlan.Free;
  end;
end;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-7-2 17:45:03 | 显示全部楼层
UpdateAppplyPlanID(PlanXH,MaterialID);不能放到事务外
回复 支持 反对

使用道具 举报

发表于 2007-7-2 18:09:39 | 显示全部楼层
已经在QQ沟通了
1、  采用非立即事务
2  、把
    if not Active then Open;
          Last;
          DataSetsdsMaterialToPurchase.DisableControls;
          DataSetsdsMaterialToPurchase.First;
还有
DataSetsdsMaterialToPurchase.EnableControls;
都放到事务外来处理

然后把结果尽快反馈上来,等候回复
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-7-2 18:34:31 | 显示全部楼层
都改为非立即事务目前好像没有问题了。

谢谢两位,这几天真是寝食难安。
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-6-23 11:45 , Processed in 0.044036 second(s), 13 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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