Einzelnen Beitrag anzeigen

Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#14

Re: Access DB beim Rechnerstart laden

  Alt 9. Jul 2006, 11:07
Zitat von jensenwb:
Ich habe in der einen Datenbank ca 70.000 Datensätze und in der dazugehörenden anderen Datenbank ca 117.000 Datensätze. Wenn ich in der kleinen Datenbank einen Datensatz anzeige dann brauche ich in der Dazugehörenden großen Datenbank die entsprechenden Datenätze um die entsprechenden Touren zu ermitteln.
1. Wie holst Du dir den einen Datensatz aus der ersten Tabelle ?

2. Und wie aus der 2-ten. Du wirst nie und nimmer die 117000 Datensätze anzeigen müssen, und auch nicht zu deinem Programm zu transferieren... Durch Setzen deinen MasterDatasource ist es einzig und allein Delphi, der sich ums Filtern kümmert, und nicht Access. Es werden also alle 117000 transferiert, und Delphi zeigt nur die Datensätze an, die matchen...

Deshalb besser:
1. Select * from Tabelle1 where Name='Dagobert Duck' ;

Das liefert dir genau einen Record, deinen Masterrecord. Mit einem entsrpechendem Index auf der Spalte Name, dauert das selbst bei Access keine 1/10 Sekunde.

Dann im OnAfterScroll Event würd ich die 2. Query aufbauen, die so aussehen kann:
Select * from Tabelle2 where AdrId = :Id

Delphi-Quellcode:
begin
   with Tabelle2 do begin
      close ;
      Parambyname ('id').AsInteger := Tabelle1.FieldByName('deinePrimaryKeySpalte').AsInteger ;
      open ;
   end ;
end ;
Das hat den ganz entscheidenden Vorteil, dass Access nur die Datensätze liefert, die auch wirklich relevant sind.
  Mit Zitat antworten Zitat