Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi MySQL -- Einfügen -- Posten -- Dreifache Ergebnismenge??? (https://www.delphipraxis.net/52865-mysql-einfuegen-posten-dreifache-ergebnismenge.html)

Rexet 5. Sep 2005 18:46

Datenbank: MySQL • Zugriff über: Standard-Delphi BDE Komponenten

MySQL -- Einfügen -- Posten -- Dreifache Ergebnismenge???
 
Hallo! :???:

Hab ein etwas eigenartiges Problem, wenn ich Daten mit den datensensitiven Komponenten von Delphi in die Datenbank speichern möchte....

Also... Nachdem ich das insert der Datenmenge ausgelöst habe und ich einen Haufen Daten direkt auf meiner Maske eigegeben habe will ich das ganze per Knopfdruck "posten". Wenn ich aber poste, dann bekomme ich in meinem DBCtrlGrid die zwei oder dreifache Anzahl der nun eigentlich existierenden Datensätze. Wenn ich einen Datensatz editiere und danach speichere passiert dieses Verhalten übrigens nicht. Auch beim Löschen gibts keine Probleme. Einzig das Insert scheint das merkwürdige Verhalten auszulösen.
Die Anzahl mit "recordcount" ermittelt stimmt genau, wenn ich einen datensatz lösche wird meistens auch die richtige Anzahl angezeigt...

Nur zur Veranschaulichung: (Die Buchstaben stehen für einen bestimmten Datensatz)

vorm Posten (Datensatz wurde gerade eingefügt und Daten eingegeben)

DBctrlGrid

z <- (Der neue Datensatz)
x
y


Nach dem Posten!

z
x
y
z
x
y

Alle Datensätze sind nun doppelt.... WARUM bloß? :wall:

Luckie 5. Sep 2005 18:56

Re: MySQL -- Einfügen -- Posten -- Dreifache Ergebnismenge??
 
Löst du das post eventuell noch mal wo anders per Code aus? Anders kann ich es mir nicht vortsellen.

Jelly 5. Sep 2005 22:49

Re: MySQL -- Einfügen -- Posten -- Dreifache Ergebnismenge??
 
Was für einen Datenbankcursor nutzt du. Ich weiss nicht was es bei MySQL an Einstellungen gibt, aber bei anderen Serversystemen ist es nicht irrelevant, wie die Daten zum Client übertragen werden.

Andere Fehlerquelle kann das DBGrid selbst sein. Hatte ich auch mal mit Komponenten von Drittanbietern, insbesondere wenn es um die grafische Darstellung der Daten im Grid ging. Wenn dein Recordcount stimmt, scheint der Datensatz ja auch nur einmal drin zu sein. Kannst ja mal noch zusätzlich versuchen, durch eine while not EOF Schleife alle IDs der Datensätze in einer Listbox zu speichern und das Ergebnis mit deinem DBGrid zu vergleichen

Bernhard Geyer 6. Sep 2005 07:23

Re: MySQL -- Einfügen -- Posten -- Dreifache Ergebnismenge??
 
Hast Du auch die passenden ODBC-Einstellungen für BDE vorgenommen.

Generell würde ich für den MySQL-Zugriff native-Komponenten nehmen und die BDE dorhinlegen wohin sie gehört: In den Restmüll! Sie ist nunmal vollkommmen veraltet und macht immer mehr Probleme.

RavenIV 6. Sep 2005 08:00

Re: MySQL -- Einfügen -- Posten -- Dreifache Ergebnismenge??
 
Zitat:

Zitat von Bernhard Geyer
Generell würde ich für den MySQL-Zugriff native-Komponenten nehmen und die BDE dorhinlegen wohin sie gehört: In den Restmüll! Sie ist nunmal vollkommmen veraltet und macht immer mehr Probleme.

ich kann dir die ZEOS-Komponenten ans Herz legen, die funktionieren richtig gut.
vor allem hast du es einfach, wenn du mal das DBMS wechseln möchtest.

Hilfe und Tutorial findest du hier in DP.

gruessle

Rexet 9. Sep 2005 13:33

Re: MySQL -- Einfügen -- Posten -- Dreifache Ergebnismenge??
 
Danke für die Tipps bisher... Das Problem ist leider immer noch aktiv. Ich hab schon öfters über diese Zeos-Komponenten gelesen, aber war leider immer etwas mißtrauisch. Das wird sich wohl ändern müssen wenn ich nen Fortschritt erzielen möchte...

Hab auf der Homepage von denen gelesen daß sie bis Delphi7 eine Version haben, ich benutz aber Delphi2005. Gibts da Probleme?
-danke, D.

Noch ne Andere Theorie: Ich vermute Probleme mit dem Insert weil man zu dem Zeitpunkt ja noch keinen fixen ID-Wert für den Datensatz hat. Also eigentlich nur "0"... Vielleicht liegt auch hier das Problem begraben...

Rexet 12. Sep 2005 10:36

Re: MySQL -- Einfügen -- Posten -- Dreifache Ergebnismenge??
 
So... Hab mir die Zeos Komponenten installiert und das einfügen klappt problemlos!
Danke für die Anregungen,
mfG, David aus Wien


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:10 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