在关闭窗体时,出现上述错误。代码如下。
procedure TQuxianFrm.SeeExcExecute(Sender: TObject);    
var
  s1,s2:string;
begin
  if ComboBox3.Text='' then
  begin
    ShowMessage('没有选择分站号');
    Exit;
  end;
  if Label4.caption='' then
  begin
    ShowMessage('没有选择具体支柱');
    Exit;
  end;
  s1 := FormatdateTime('ddddd',dtpBeginTime.DateTime)+' 00:00:00';
  s2 := FormatdateTime('ddddd',dtpEndTime.DateTime)+' 23:59:59';
  if StrToDatetime(s1) > StrToDatetime(s2) then
  begin
    ShowMessage('查询时间范围错误!');
    exit;
  end;
  RefreshData(s1,s2,Trim(Label4.Caption),Trim(combobox3.Text));   
end;procedure TQuxianFrm.RefreshData(bgtime:string;endtime:string;cpbh:string;fenzhan:string);  
var
  s1,s2,sql,sql1,sql3,sqlb,fjall,sql2: string;
  i,j:integer;
begin
  s1 := bgtime;
  s2 := endtime;
  ///////////////////////////////////////////
  ADOQuery3.Close;
  ADOQuery3.SQL.Text:='';
  sqlb := 'select * from sysobjects where crdate between  '''+ s1 +''' and '''+s2+''' and name like ''%fz'+trim(fenzhan)+'%''';
  ADOQuery3.SQL.Add(sqlb);
  ADOQuery3.Open;
  if (ADOQuery3.RecordCount=0) then                                    
  begin
    ShowMessage('没有可查询数据');
    Exit;
  end ;
  if cpbh<>'' then
  begin
    ADOQuery3.First;
    sql2:='';
    while not ADOQuery3.Eof   do
    begin
          name:=ADOQuery3.FieldValues['Name'];
          sql2:='insert into data select *from '+ name +' where  fjh='''+cpbh+'''';
          ADOQuery4.close;
          ADOQuery4.SQL.Clear;
          ADOQuery4.SQL.Text:=sql2;
          ADOQuery4.ExecSQL;
          ADOQuery3.Next;
    end;
    sql3:=' select *from data order by upsj asc ';
    ADOQuery5.close;
    ADOQuery5.SQL.Clear;
    ADOQuery5.SQL.Text:=sql3;
    ADOQuery5.Open;
    ADOQuery5.First;
    if   ADOQuery5.RecordCount <=0 then
    begin
        ShowMessage('没有可查询数据!');
    end
    else
    begin
      if  ADOQuery5.RecordCount>0 then
      begin
        series1.ParentChart:=DBChart1;
        series1.LinePen.Width:=1;
        series1.Title:='通道一';
        series1.Active:=false;
        series1.DataSource:=ADOQuery5;
        series1.XLabelsSource:='upsj';
        series1.YValues.ValueSource:='td1';
        series1.Active:=true;
        series2.ParentChart:=DBChart1;
        series2.LinePen.Width:=1;
        series2.Title:='通道二';
        series2.Active:=false;
        series2.DataSource:=ADOQuery5;
        series2.XLabelsSource:='upsj';
        series2.YValues.ValueSource:='td2';
        series2.Active:=true;
      end;
    end  
  end;
end;

解决方案 »

  1.   

    你这个代码是在线程里面,还是dll?你要单步调试跟踪,定位到行上面,就好解决了。
      

  2.   

    建议lz把问题描述清楚点,你就贴这段代码怎么好分析,你地代码是在dll中 还是在线程里面,还是?
    我遇到这个问题是在dll中。string类型的问题,建议lz好好分析、
      

  3.   

    没看完,看了两句查询语句就有问题,不想往下看了
    sql2:='insert into data select *from '+ name +' where  fjh='''+cpbh+''''; 
    sql3:=' select *from data order by upsj asc ';