Hi,
bin
SQL-Newbie und habe ein Problem. Ich habe eine Tabelle in einer
Access-Datenbank mit etwa 100.000 Sätzen, Ich möchte ab einer bestimmten Position (Kundennummer ist Primary-Key) jeweils 10 Datensätze einlesen.
Delphi-Quellcode:
var
Connstr: System.
String;
Sql: System.
String;
Conn: OleDbConnection;
DAdapter: OleDbDataAdapter;
DSet: DataSet;
DTable: DataTable;
DRow: DataRow;
begin
Connstr:= '
Provider=Microsoft.Jet.OLEDB.4.0; Data Source=..\AccessDatenbank.mdb';
Conn := oledbconnection.create(connstr);
Sql := '
SELECT TOP 20 * FROM Debitor ORDER BY Kundennummer';
DAdapter := OleDbDataAdapter.Create(
Sql, Conn);
DSet:= DataSet.Create();
DAdapter.fill(DSet,0,10,'
Debitor');
conn.open;
DTable := DSet.Tables['
Debitor'];
DRow := DTable.Rows[0];
kundennummer := DRow['
Kundennummer'].ToString;
conn.close;
end;
Es dauert ewig und drei Tage bis der
SQL-Befehl abgearbeitet ist und die ersten 10 Sätze zur Bearbeitung zur Verfügung stehen. Meine Frage: mach ich irgendwas falsch oder ist
Access für solche grossen Datenmengen einfach nur ungeeignet?
Danke und Gruß
Eddie