起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 742|回复: 20

【结】[问题]**

[复制链接]
发表于 2007-3-15 16:01:04 | 显示全部楼层 |阅读模式
对数据集进行查询操作,结果出来后,偶尔会弹出如下错误.如何避免这个错误的出现?经跟踪发现是代码都执行后出现的错误.....
在线等待回复....

1.jpg

576.05 KB, 下载次数: 266

回复

使用道具 举报

 楼主| 发表于 2007-3-15 18:33:31 | 显示全部楼层
有没有人给解决啊?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-16 09:25:23 | 显示全部楼层
斑竹给关注下啊.
回复 支持 反对

使用道具 举报

发表于 2007-3-16 10:16:03 | 显示全部楼层
这个错误是有对象没有创建就直接调用了
仔细检查一下代码吧
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-16 10:18:52 | 显示全部楼层
哦,
我再仔细看看。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-16 14:25:23 | 显示全部楼层
我检查过了,没有4楼说的没有创建就使用的对象.
我做的是个查询功能,
通过查询条件查询出的记录显示在DataGrid上,
DataGrid 上可以更改一个CheckBox的值.
如果不对更改进行保存而进行下一个查询,
就会出现这个错误.
回复 支持 反对

使用道具 举报

发表于 2007-3-16 14:40:28 | 显示全部楼层
请提供你的代码看看
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-17 11:03:41 | 显示全部楼层
procedure TXBRYGL_FORM.BizFormShow(Sender: TObject);
var
SqlText :string;
begin

Et1_1.Clear;
CM1_1.Clear;
CM1_1.AddItem('',CM1_1);
with Qu1_1 do
  begin
    Close;
    CommandText := ' Select PAHB_ND From PA_HBGBDJ Where PKID is Not Null Group By PAHB_ND';
    try
     Open;
     First;
     While not eof do
      begin
        CM1_1.AddItem(FieldByname('PAHB_ND').AsString,CM1_1);
        next;
      end;
    except
     Close;
    end;
  end;
CM1_1.ItemIndex := 0;
SqlText := 'SELECT PA_HBGBDJ.* FROM PA_HBGBDJ WHERE PA_HBGBDJ.PAHB_XBBS '+
            ' < 0 and PA_HBGBDJ.Pkid is null';
DS1_1.DataSet.Close;
TSQLDataSet(DS1_1.DataSet).Sql.Text := SqlText;
DS1_1.DataSet.Open;
end;

procedure TXBRYGL_FORM.ToolButton8Click(Sender: TObject);
var
SqlText,sBM,sND,sXM:string;
begin
if DS1_1.DataSet.State = TDataSetState.dsEdit then
   begin
    DS1_1.DataSet.Cancel;
   end;
DS1_1.DataSet.Close;
SqlText := 'SELECT PA_HBGBDJ.* FROM PA_HBGBDJ WHERE PA_HBGBDJ.PAHB_XBBS '+
            ' < 0 and  PA_HBGBDJ.PAHB_XZBS <=0';
sXM := SysUtils.Trim(Et1_1.Text);
sBM := ' and PA_HBGBDJ.PAHB_BM = '''+DS1_BM.DataSet.FieldByName('FID').AsString+'''';
if CM1_1.ItemIndex <1 then
    sND := ' '
else
    sND := ' and PA_HBGBDJ.PAHB_ND ='''+CM1_1.Text+'''';
if sXM <> '' then
    begin
       with Qu1_XM do
        begin
          Close;
          CommandText := ' Select PKID From DI_ZG Where DIZG_XM = '''+sXM+'''';
          try
           Open;
           sXM := FieldByName('PKID').AsString;
          except
           Close;
          end;
        end;
       sXM := ' and PA_HBGBDJ.PAHB_XM='''+sXM+'''';
    end;
   SqlText := SqlText + sXM + sBM + sND ;
    DS1_1.DataSet.Close;
    TSQLDataSet(DS1_1.DataSet).Sql.Text := SqlText;
    DS1_1.DataSet.Open;
end;
回复 支持 反对

使用道具 举报

发表于 2007-3-17 11:18:13 | 显示全部楼层
执行哪句出错了呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-17 11:21:27 | 显示全部楼层
procedure TXBRYGL_FORM.ToolButton8Click(Sender: TObject);
var
SqlText,sBM,sND,sXM:string;
begin
if DS1_1.DataSet.State = TDataSetState.dsEdit then
   begin
    DS1_1.DataSet.Cancel;
   end;
DS1_1.DataSet.Close;
SqlText := 'SELECT PA_HBGBDJ.* FROM PA_HBGBDJ WHERE PA_HBGBDJ.PAHB_XBBS '+
            ' < 0 and  PA_HBGBDJ.PAHB_XZBS <=0';
sXM := SysUtils.Trim(Et1_1.Text);
sBM := ' and PA_HBGBDJ.PAHB_BM = '''+DS1_BM.DataSet.FieldByName('FID').AsString+'''';
if CM1_1.ItemIndex <1 then
    sND := ' '
else
    sND := ' and PA_HBGBDJ.PAHB_ND ='''+CM1_1.Text+'''';
if sXM <> '' then
    begin
       with Qu1_XM do
        begin
          Close;
          CommandText := ' Select PKID From DI_ZG Where DIZG_XM = '''+sXM+'''';
          try
           Open;
           sXM := FieldByName('PKID').AsString;
          except
           Close;
          end;
        end;
       sXM := ' and PA_HBGBDJ.PAHB_XM='''+sXM+'''';
    end;
   SqlText := SqlText + sXM + sBM + sND ;
    DS1_1.DataSet.Close;
    TSQLDataSet(DS1_1.DataSet).Sql.Text := SqlText;
    DS1_1.DataSet.Open;
end;
这个事件执行完后,就弹出哪个错误,
而且不是每次都是如此,
偶尔出现的。
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-13 01:47 , Processed in 0.046249 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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