起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 186|回复: 1

对象的释放?? TDispatchHelper.Create出来的都要释放吗

[复制链接]
发表于 2010-3-23 16:33:17 | 显示全部楼层 |阅读模式
Workbooks := TDispatchHelper.Create(app.PropertyGet('Workbooks', []));
    Worksheets := TDispatchHelper.Create(Workbooks.InvokeMethod('Open', [edFile.Text]));
    vSheet := TDispatchHelper.Create(Worksheets.PropertyGet('Worksheets', [1]));

for r := 5 to maxr - 1 do begin //每一行循环
      Business.Forms.Forms.Application.ProcessMessages;
      //单号
      cells := TDispatchHelper.Create(vSheet.PropertyGet('Cells', [r, 1]));
      if cells.PropertyGet('value', []) <> nil then begin
        if objecthelper.ToString(cells.PropertyGet('value', [])) <> '' then HideOrderNo := objecthelper.ToString(cells.PropertyGet('value', []));     //单号
      end;
      //单号
      cells := TDispatchHelper.Create(vSheet.PropertyGet('Cells', [r, 2]));
      if cells.PropertyGet('value', []) <> nil then begin
        orderno := objecthelper.ToString(cells.PropertyGet('value', []));
      end;
      //条码
      cells := TDispatchHelper.Create(vSheet.PropertyGet('Cells', [r, 3]));
      if cells.PropertyGet('value', []) <> nil then begin
        BoxCode := objecthelper.ToString(cells.PropertyGet('value', []));
      end;

      // 款号
      cells := TDispatchHelper.Create(vSheet.PropertyGet('Cells', [r, 4]));
      if cells.PropertyGet('value', []) <> nil then begin
        ProdCode := objecthelper.ToString(cells.PropertyGet('value', []));
      end;

      // 颜色
      cells := TDispatchHelper.Create(vSheet.PropertyGet('Cells', [r, 5]));
      if cells.PropertyGet('value', []) <> nil then begin
        ColorValue := objecthelper.ToString(cells.PropertyGet('value', []));
      end;

      // 交货时间
      cells := TDispatchHelper.Create(vSheet.PropertyGet('Cells', [r, DealCol]));
      if cells.PropertyGet('value', []) <> nil then begin
        //DealTime := objecthelper.ToString(cells.PropertyGet('value', []));

        DealTime := FormatDateTime('yyyy-mm-dd', objecthelper.ToDelphiDateTime(cells.PropertyGet('value', []), 0));
      end;

      //该行的列循环开始
      for c := 7 to DealCol - 1 do begin
        cells := TDispatchHelper.Create(vSheet.PropertyGet('Cells', [r, c]));
        if cells.PropertyGet('value', []) <> nil then begin
          sColValue := objecthelper.ToString(cells.PropertyGet('value', []));
        end else sColValue := '';
        if (sColValue <> '') and (sColValue <> '0')  then  begin
          //配码
          cells := TDispatchHelper.Create(vSheet.PropertyGet('Cells', [3, c]));
          if cells.PropertyGet('value', []) <> nil then begin
            SizeRate := objecthelper.ToString(cells.PropertyGet('value', []));
          end;

          //配码率
          cells := TDispatchHelper.Create(vSheet.PropertyGet('Cells', [4, c]));
          if cells.PropertyGet('value', []) <> nil then begin
            MateRate := objecthelper.ToString(cells.PropertyGet('value', []));
          end;
          //数量
          cells := TDispatchHelper.Create(vSheet.PropertyGet('Cells', [r, c]));
          if cells.PropertyGet('value', []) <> nil then begin
            MateNum := objecthelper.ToString(cells.PropertyGet('value', []));
          end;
          sqlStr := 'insert into SC_ORDERPRODUCEBOX(linksn,Meetcode,ProdCode,ColorValue,SizeRate,MateRate,qty,Unit,Barcode,DealTime,MateNum,Orderno,Rowno,nHideOrderNo)'+
              ' values('+Quotedstr(Business.System.JSCommon.CreateGUIDStr)+','+QuotedStr(MeetCode)+','+QuotedStr(ProdCode)+','+ QuotedStr(ColorValue)+','+
              QuotedStr(SizeRate)+','+QuotedStr(MateRate)+','+MateNum+',''大件'','+QuotedStr(BoxCode)+','+
              QuotedStr(DealTime)+',12,'+QuotedStr(orderno)+','+IntToStr(r)+','+QuotedStr(HideOrderNo)+')';
          with qryTmp do begin
            Close;
            CommandText := sqlStr;
            Execute;
          end;
        end;
      end;
      progbar.Position := progbar.Position + 1;
    end;


那我每访问完一个都要(cells as System.IDisposable).Dispose; 吗? 有没有更好的办法。
回复

使用道具 举报

发表于 2010-3-23 16:48:34 | 显示全部楼层
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-10 05:02 , Processed in 0.041479 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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