在关闭窗体时,出现上述错误。代码如下。
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;
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;
我遇到这个问题是在dll中。string类型的问题,建议lz好好分析、
sql2:='insert into data select *from '+ name +' where fjh='''+cpbh+'''';
sql3:=' select *from data order by upsj asc ';