|
procedure TMainForm.BizFormShow(Sender: TObject);
var
lFilter,lDateFilter: string;
begin
dsbYZJL.DataSet.close;
lFilter := '(SSDW LIKE ''' + 'S11JH0340030' + '%'')'; //to do by bwk
lDateFilter:=' AND (to_Date(to_Char(TCNY, ''yyyy.mm''), ''yyyy.mm'') <= to_Date('''
+ IntToStr(2006) + '-' + IntToStr(4) + ''', ''yyyy.mm''))';
TSQLDataset(dsbYZJL.DataSet).SqlFiltered :=False;
TSQLDataset(dsbYZJL.DataSet).SqlFilter:= 'TBNF='+IntToStr(2006)+' and LSH='+IntToStr(4)
+' AND (SBGUID IN (SELECT GUID FROM TABLE_SBJBXX WHERE '
+ lFilter+lDateFilter + '))';
//End Edit
TSQLDataset(dsbYZJL.DataSet).SqlFiltered := True;
Dialogs.ShowMessage(TSQLDataset(dsbYZJL.DataSet).SqlFilter);
dsbYZJL.Dataset.Open;
end;
该界面没有其它代码,只有上面一段代码,起动需要一分钟。界面才刷新完。满足条件的记录只有90条。界面见下图
该SQL语句在Oracle下面只需要零点几秒。
信息中只有一个标准数据集和一个网格,数据集未打开,网格的AutoOpenDataset的Check框为空。运转记录有32万多条。
|
|