Ja, aber könnte es dann nicht so sein, dass sowohl die
DLL, als auch die DataSet-Komponente die gesamten Daten separat im Speicher vorhalten?
Damit hätte doch dann die Anwendung die Daten zweimal im Speicher?
Oder ein anderer Ansatz:
Statt mit 'nem DataSet und Append, 'ne
Query nehmen. Das könnte dann sinngemäß ungefähr (ungetestet) so aussehen:
Delphi-Quellcode:
AssignFile(F, 'C:\daten.txt');
reset(F);
form1.Query1.SQL.Clear;
form1.Query1.SQL.Add('EXECUTE BLOCK BEGIN');
repeat
begin
readln(F, temp);
x := x + 1;
form1.Query1.SQL.Add(Format('insert into tabellenname (Name) Values (%s);',[QuotedStr(temp)]));
// Jeweils 1000 Namen "am Stück" in die Tabelle einfügen.
// Statt 1000 ggfls. einen angepassten größeren oder kleineren Wert nehmen.
if x Mod 1000 do begin
form1.Query1.SQL.Add('END');
form1.Query1.ExecSQL;
form1.Query1.SQL.Clear;
form1.Query1.SQL.Add('EXECUTE BLOCK BEGIN');
end;
end
until eof(F);
if form1.Query1.SQL.Count > 1 then begin
form1.Query1.SQL.Add('END');
form1.Query1.ExecSQL;
form1.Query1.SQL.Clear;
end;
CloseFile(f);
showmessage('...fertig. ' + inttostr(x) + ' Datensätze');