Hallo shmia und p80286,
danke für die Informationen.
Indexes hab ich, denk ich mal, richtig gesetzt, und die Datenbankstruktur ist, na ja.. wie soll ich sagen... eine "gewachsene Geschichte" ... da mal was dazu, dort mal was weg.. aber passend.
Ein paar Zeilen hab ich für das "Grid select" gefunden, das die ganze Sache wieder ein bisserl schneller macht:
Quelle:
http://www.tek-tips.com/viewthread.c...37295&page=242
Delphi-Quellcode:
procedure TfrmMainData.Button1Click(Sender: TObject);
var
si : SmallInt;
// loop counter
sl : tStringList;
// temporary storage
begin
sl := tStringList.Create;
try
// First, get the selected ID Values.
with sl, dbGrid1, DataSource.DataSet
do
if SelectedRows.Count > 0
then
begin
add( '
where' );
for si := 0
to SelectedRows.Count - 1
do
begin
GotoBookMark( pointer( SelectedRows.Items[ si ] ) );
add( '
o.CustNo = ' +
fieldByName( '
CustNo' ).asString );
if si < SelectedRows.Count - 1
then
add( '
OR ' );
end;
end;
// Now, revise the query
with dmMainData.Query1
do
begin
if active
then close;
SQL.clear;
SQL.add( '
select distinct * from orders o' );
SQL.AddStrings( sl );
Open;
end;
finally
freeAndNil( sl );
end;
end;
Erich Wanker - for life:=1971 to lebensende do begin ..
O
/H\
/ \