Also ich mache das so... ca. 45000 Datensätze und 37 Felder. Dauert ca 18-25 Sekunden je nach Device. Der Source ist noch aus den Anfängen... Heute würde ich es auch anders machen...
Delphi-Quellcode:
SQLConnection.Open;
Felder := MakeFieldDef(FRecordDef);
SQLQuery.SQL.Text := '
BEGIN;';
SQLQuery.ExecSQL(true);
while not(SQLReader.eof)
do
begin
SQLReader.ReadSQLCrypt;
// Lade die Daten aus einer verschlüsselten Datei
inc(Count);
if (Count
mod 100) = 0
then
StatusProg('
',100.0 / MaxSize * SQLReader.Position,FloattoStrF(100.0 / MaxSize * SQLReader.Position,ffFixed,7,2)+'
%');
D := SQLReader.GetSQLBytes;
SQLQuery.SQL.Text := '
INSERT INTO '+FTableName+'
('+Felder+'
) VALUES (0,'+D+PostFields+'
);';
try
SQLQuery.ExecSQL(false);
except
StatusProg('
EXCEPTION',0,'
');
end;
end;
StatusProg('
',100.0,SIndexWait);
// 'Erzeuge Index, Bitte warten...'
SQLQuery.SQL.Text := '
COMMIT;';
SQLQuery.ExecSQL(true);
SQLConnection.Close;
Mavarik