![]() |
Datenbank: MySQL • Version: 4.1 • Zugriff über: SQL Server
Bug oder Feature ? MySQL + Zeos + viele Datensätze
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 :shock: 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:
Hat jemand eine Idee ?
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; Ulf |
Re: Bug oder Feature ? MySQL + Zeos + viele Datensätze
Hi Ulf,
du machst das viel zu umständlich. Wenn man schon diese schicken Variants hat, dann sollte man sie auch benutzen ;-)
Delphi-Quellcode:
procedure TForm1.DataKopieren(Sender: TObject);
var i: Integer; begin Table1.First; while not Table1.Eof do begin ZQuery1.Append; // Append versetzt schon in den Edit-Mode! for i := 0 to Pred(Table1.FieldCount) do ZQuery1.FieldValues[i] := Table1.FieldValues[i]; ZQuery1.Post; Table1.Next; end; end; |
Re: Bug oder Feature ? MySQL + Zeos + viele Datensätze
...die Variants kommen noch; stehen im "augeblendeten" Quelltext.
Übliche Typen kopiere ich lieber "richtig", wegen der Geschwindigkeit. Die DB hat mehrere Mio. Datensätze. Zum eigentlichen Problem, ich habe das ein wenig eingegrenzt. Programmstart SELECT * FROM auftrag alle Datensätze sind da, ich kann auch kopieren DELETE FROM auftrag alle Datensätze sind gelöscht, Tabelle ist wieder da ich kann sie aber nicht mehr bearbeiten. erst nach Programm Neustart geht das wieder :roll: |
Re: Bug oder Feature ? MySQL + Zeos + viele Datensätze
Setze mal testweise ein COMMIT nach dem DELETE ab. Vielleicht hilft das!
|
Re: Bug oder Feature ? MySQL + Zeos + viele Datensätze
ich habe alle DB-Objekte gelöscht und neu angelegt. Jetzt geht es. Wer weiß, was ich bei meiner Probiererei alles verstellt hatte ;)
Allerdings wenn ich versuche die DB-Verbindung zu kappen (zConnection1.disconnect) bekomme ich immer noch einen Laufzeitfehler, obwohl alle Tabellen geschlossen sind. |
Re: Bug oder Feature ? MySQL + Zeos + viele Datensätze
wieder dasselbe :gruebel:
sobald ich irgendwelche SQL-Kommando manuell absetze, geht das Einfügen nicht mehr... erst nach Programm-Neustart geht es wieder. |
Re: Bug oder Feature ? MySQL + Zeos + viele Datensätze
Hi Ulf,
häng mal bitte dein Testprojekt an und evtl die Tabellen-Definition. So ist das alles nur ein Rumgerate, was beiden Seiten nichts hilft. MfG Stevie |
Re: Bug oder Feature ? MySQL + Zeos + viele Datensätze
oh, ich glaube ich hab's.
Man muß wohl unterscheiden zwischen Abfragen und Kommandos. In meinem zwischenzeitlich entstandenen Codesalat wurde die SQL Statements mal mit .open und mal mit .ExecSql ausgeführt. Je nach Reihenfolge brachte das den SQL-Prozessor wohl aus dem Tritt, so daß ich zwar eine Ergebnismenge auf dem Bildschirm hatte aber nicht mehr bearbeiten konnte. Ich habe das jetzt sauber getrennt und es scheint zu funktionieren. |
Re: Bug oder Feature ? MySQL + Zeos + viele Datensätze
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:08 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz