So langsam geht es voran mit meinen ersten Gehversuchen mit
MySQL und der ZEOS-Komponenten.
Nun bin ich dabei meine Probedaten zu konvertieren (dBase->
MySQL) um etwas zum Arbeiten zu haben.
Nun habe ich das erste Problem:
Das konvertieren klappt soweit. Ich kann einen einzelnen Datensatz ohne weitees kopieren. Auch Hundert, geht alles.
Lasse ich jedoch die ganze Tabelle durchlaufen (211.000 Datensätze) ist meine
SQL-Zieltabelle leer
Es funktioniert nur, wenn ich vorher einen Datensatz einzeln kopiert oder einen leeren Datensatz in der Zieltabelle erzeugt hatte.
So richtig Zweck der Übung kann das ja aber auch nicht sein, ich muß mich ja darauf verlassen daß meine Daten auf jeden Fall ankommen, auch in einer frisch erzeugten Tabelle.
Hier mal en Codeausschnitt:
Delphi-Quellcode:
procedure TForm1.DataKopiere(Sender: TObject);
var i, n: integer;
ok: boolean;
t: string;
t1, t2: tFieldType;
begin
n := table1.FieldCount -1; // Table 1 ist die dBase Quelltabelle
zQuery1.append;
zQuery1.edit;
for i := 0 to n do begin
t := table1.fields[i].fieldname;
t1 := table1.fieldbyname(t).DataType;
t2 := zQuery1.fieldbyname(t).DataType;
ok := true;
if table1.fieldbyname(t).isNull then ok := false;
if ok and (t1 = ftInteger) then begin
zQuery1.fieldbyname(t).asInteger := table1.fieldbyname(t).asInteger;
ok := false;
end;
if ok and (t1 = ftLargeInt) then begin
zQuery1.fieldbyname(t).asInteger := table1.fieldbyname(t).asInteger;
ok := false;
end;
//... usw. für die vierschiendene Zelltypen
end;
zQuery1.Post;
table1.next;
end;
Hat jemand eine Idee ?
Ulf