AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Bug oder Feature ? MySQL + Zeos + viele Datensätze
Thema durchsuchen
Ansicht
Themen-Optionen

Bug oder Feature ? MySQL + Zeos + viele Datensätze

Ein Thema von Ulf346C · begonnen am 15. Jun 2005 · letzter Beitrag vom 15. Jun 2005
Antwort Antwort
Ulf346C

Registriert seit: 15. Okt 2003
Ort: Magdeburg
85 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#1

Bug oder Feature ? MySQL + Zeos + viele Datensätze

  Alt 15. Jun 2005, 09:29
Datenbank: MySQL • Version: 4.1 • Zugriff über: SQL Server
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
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.027 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#2

Re: Bug oder Feature ? MySQL + Zeos + viele Datensätze

  Alt 15. Jun 2005, 09:44
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;
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Ulf346C

Registriert seit: 15. Okt 2003
Ort: Magdeburg
85 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#3

Re: Bug oder Feature ? MySQL + Zeos + viele Datensätze

  Alt 15. Jun 2005, 11:05
...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

  Mit Zitat antworten Zitat
Benutzerbild von ltiefland
ltiefland

Registriert seit: 2. Mai 2005
Ort: Marl
63 Beiträge
 
Delphi 2005 Professional
 
#4

Re: Bug oder Feature ? MySQL + Zeos + viele Datensätze

  Alt 15. Jun 2005, 11:21
Setze mal testweise ein COMMIT nach dem DELETE ab. Vielleicht hilft das!
Lars Tiefland
Live Long And Prosper,
Lars Tiefland
admin at GBS, a Mod for STEF2, New mod versions and support!
Download Opera 8
  Mit Zitat antworten Zitat
Ulf346C

Registriert seit: 15. Okt 2003
Ort: Magdeburg
85 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#5

Re: Bug oder Feature ? MySQL + Zeos + viele Datensätze

  Alt 15. Jun 2005, 12:25
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.
  Mit Zitat antworten Zitat
Ulf346C

Registriert seit: 15. Okt 2003
Ort: Magdeburg
85 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#6

Re: Bug oder Feature ? MySQL + Zeos + viele Datensätze

  Alt 15. Jun 2005, 13:25
wieder dasselbe

sobald ich irgendwelche SQL-Kommando manuell absetze, geht das Einfügen nicht mehr... erst nach Programm-Neustart geht es wieder.
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.027 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#7

Re: Bug oder Feature ? MySQL + Zeos + viele Datensätze

  Alt 15. Jun 2005, 13:29
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
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Ulf346C

Registriert seit: 15. Okt 2003
Ort: Magdeburg
85 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#8

Re: Bug oder Feature ? MySQL + Zeos + viele Datensätze

  Alt 15. Jun 2005, 15:13
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.
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.027 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#9

Re: Bug oder Feature ? MySQL + Zeos + viele Datensätze

  Alt 15. Jun 2005, 15:20
Zitat von Ulf346C:
Man muß wohl unterscheiden zwischen Abfragen und Kommandos.
So ist es! (Abfragen mit Open und Kommandos mit ExecSQL)
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz