起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 139|回复: 4

【结】窗口关闭之后,报错!!!!**

[复制链接]
发表于 2008-6-25 14:29:01 | 显示全部楼层 |阅读模式
窗口关闭之后,报错!!!!

1.jpg

23.64 KB, 下载次数: 82

回复

使用道具 举报

发表于 2008-6-25 14:41:21 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-6-25 14:43:40 | 显示全部楼层
我的代码很简单,而且有释放对象。


procedure TLRZJQBXX.DataNavigatorBeforeAction(Sender: TObject; var Accept: Boolean);
var
  lDept:string;
  lQuery:TQuery;
  lDlg:TQBXXXZ;
  i :integer;
begin
  lDlg := TQBXXXZ.Create(Context);
  lQuery := TQuery.Create(nil);
  lDept := TContextUtils.GetDept(Context).DisplayName;

  case (Sender as TBizDataSetAction).ID of
    BizActnConsts.ActionDataSetAppend :  // 新增
    begin
      try
        lQuery.ConnectionString := TPublicFuncLib.GetSMBDBConnectionStr;
        lQuery.CommandText :='select a.guid,a.fwdw,a.zjbh,qblx,jhrq ,khxm   '+
                'from ZJQBXXB a inner join ZJXXB b on a.zjbh=b.zjbh inner join '+
                '     (select khbm,khxm  from fl_grkh                          '+
                '       union all                                              '+
                '       select  khbm,gsmc from fl_gskh ) as c                  '+
                'on b.yhbh=c.khbm                                              '+
                'where a.fwdw='''+lDept+''' and a.jhrq <= getdate() and a.SFTGSH=''否''   ';
        lQuery.Open;
        lQuery.First;
        dsbZJQBXZ.DataSet.Open;
        for i:=1 to dsbZJQBXZ.DataSet.RecordCount do
          begin
            dsbZJQBXZ.DataSet.Delete;
          end;
        while not lQuery.Eof do
           begin

             dsbZJQBXZ.DataSet.Append;
             dsbZJQBXZ.DataSet.FieldByName('guid').AsString :=lQuery.FieldByName('guid').AsString;
             dsbZJQBXZ.DataSet.FieldByName('TYFWZX').AsString :=lQuery.FieldByName('fwdw').AsString;;
             dsbZJQBXZ.DataSet.FieldByName('ZJBH').AsString :=lQuery.FieldByName('ZJBH').AsString;
             dsbZJQBXZ.DataSet.FieldByName('QBLX').AsString :=lQuery.FieldByName('QBLX').AsString;
             dsbZJQBXZ.DataSet.FieldByName('JHRQ').AsString:=lQuery.FieldByName('JHRQ').AsString;
             dsbZJQBXZ.DataSet.FieldByName('KHMC').AsString :=lQuery.FieldByName('KHXM').AsString;

             dsbZJQBXZ.DataSet.Post;
             lQuery.Next;
           end;
        finally
          //lQuery.Close;
          lQuery.Free;
        end;

      try
        lDlg.ShowModal;

        dsbZJQBXZ.DataSet.Open;
        if dsbZJQBXZ.DataSet.RecordCount >0 then
        begin
          if lDlg.FFlag=1 then
            begin
             dsbZJQBSJJ.DataSet.Filtered := false;

              TSQLDataset(dsbZJQBSJJ.DataSet).close;
              TSQLDataset(dsbZJQBSJJ.DataSet).SQL.Text :=
                'select *  from ZJQBXXB where guid =' + sysutils.QuotedStr(dsbZJQBXZ.DataSet.FieldByName('guid').AsString);
              TSQLDataset(dsbZJQBSJJ.DataSet).open;
               if dsbZJQBSJJ.DataSet.RecordCount>0 then
                 begin
                   dsbZJQBSJJ.DataSet.Edit;
                   dsbZJQBSJJ.DataSet.FieldByName('khmc').AsString:=dsbZJQBXZ.DataSet.FieldByName('KHMC').AsString;
                 end;


             {dsbZJQBSJJ.DataSet.Open;
              if dsbZJQBSJJ.DataSet.Locate('zjbh;jhrq',Variants.VarArrayOf([dsbZJQBXZ.DataSet.FieldByName('ZJBH').AsString,
                 dsbZJQBXZ.DataSet.FieldByName('JHRQ').AsString]),[]) then
                 begin
                   dsbZJQBSJJ.DataSet.Edit;
                   dsbZJQBSJJ.DataSet.FieldByName('khmc').AsString:=dsbZJQBXZ.DataSet.FieldByName('KHMC').AsString;
                 end;}
            end;
        end;
      finally
        lDlg.Free;
      end;
      Accept := false;
    end;
  end;
end;

procedure TLRZJQBXX.BizFormShow(Sender: TObject);
var
  lDept :string;
begin
  lDept := TContextUtils.GetDept(Context).DisplayName;

  dsbZJQBSJJ.DataSet.Filter:='FWDW='''+lDept+''' ';
  dsbZJQBSJJ.DataSet.Filtered :=true;
  dsbZJQBSJJ.DataSet.Open;

  dsbZJQBSJJ.DataSet.Filter:='1<>1';
  dsbZJQBSJJ.DataSet.Filtered :=true;

end;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-6-25 14:44:14 | 显示全部楼层
创建了两个对象,但马上就释放了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-6-25 14:52:48 | 显示全部楼层
我自己解决了。
在case 之后创建对象。


结吧!!!

谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-18 08:38 , Processed in 0.045795 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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