![]() |
Datenbank: MySQL • Version: 4.1.9 • Zugriff über: ZEOS Lib
Zeos + MySQL + Update kommt nicht an
Hallo, Freunde der Nacht.
Ich bekomme via Zeos-Lib meine Daten aus einem Grid einfach nicht in meine MySQL-DB hinein. Folgender Aufbau: ZConnection ist connected und ReadOnly = false Daran hängt ein ZQuery mit RequestLive = true Daran wiederum ein ZUpdateQuery An dem Query ist eine DataSource, die ihrerseits an ein DBGrid + DBNavigator angeflanscht ist. Also ein im Grunde ganz simpler Aufbau zum Editieren der Tabellen mit Vollzugriff und ohne sonstigen Schnickschnack. Werden jetzt Änderungen/Hinzufügungen im Grid gemacht, und via Navigator gepostet, so gibt es keinerlei Fehlermeldungen aber die Tabelle bleibt leer. Zwar bleiben die gemachten Einträge bis zum Reload im Grid, aber die DB ist leer. Die Query ist auch keine zusammengejointe, sondern ein simples "SELECT * FROM xyz". ZQuery.CachedUpdate ist auch false, und mein Latein am Ende :). One single Word: HILFE :) |
Re: Zeos + MySQL + Update kommt nicht an
Hai dizzy des Tages ;-)
Ich mache das ganze ohne ein UpDateQuery und es geht ohne Probleme. |
Re: Zeos + MySQL + Update kommt nicht an
Hallo dizzy,
ein paar Sachen scheinen mir etwas durcheinandergewürfelt zu sein bei Dir... Grds. kann man für den Fall eines "SELECT * FROM ..." einen Zeos-Table nehmen. Tabelle aus der Datenbank zuweisen und fertig. Der Fehler bei Dir liegt wahrscheinlich nicht im ZConnection, die Du ja richtig auf "ReadOnly=false" gesetzt hast, sondern im ZQuery. Es gibt davon 2 bei Zeos ein ReadOnly und eins, welches Updaten kann. Entweder hast Du das falsche ZQuery genommen, oder beim richtigen ReadOnly auf true zu stehen. Wenn Du nichts sortieren möchtest o.ä., würde ich das Ganze so machen: DBGrid -> TDataSet -> ZTable -> ZConnection Gruß Igotcha |
Re: Zeos + MySQL + Update kommt nicht an
Danke euch beiden, aber so wirklich klappt beides nicht...
Arbeite ich ohne UpdateObject, so gibt's eine Exception der Zeos ("Can not update this Querytype"). Mit UpdateObject ist die schonmal weg, nur passiert garnix ^^. Zitat:
Zitat:
Zitat:
Mit den "normalen" DB-Kompos geht's doch so schön einfach, waurm nicht hier auch? :) |
Re: Zeos + MySQL + Update kommt nicht an
Zitat:
|
Re: Zeos + MySQL + Update kommt nicht an
Also ich nutze auch die Query um Daten inzufügen, das alles ganz problemlos?
Mal ganz dumm gefragt? Hast du die nötigen Berechtigungen in MySQL überhaupt Daten einzufügen. Ich seh keinen Fehler in deiner Lösung. Oder nutzt du vielleicht einen anderen Tabellentyp als MyISAM? Vielleicht fehlt dir ein Commit, falls du InnoDB verwendest? |
Re: Zeos + MySQL + Update kommt nicht an
Könnte es damit zusammenhängen, dass ich Windows NT 4.0 Client einsetzen muss(!) ?
(Wobei mich das wundern würde - sonst hätte spätestens der MySQL-Administrator sicherlich gemeckert...) |
Re: Zeos + MySQL + Update kommt nicht an
Zitat:
|
Re: Zeos + MySQL + Update kommt nicht an
In TZConnection gibst in dem Zusammenhang die Methoden
Delphi-Quellcode:
Setze mal ein StartTransaction in dein BeforeEdit und BeforeInsert Ereignis, und ein entsprechendes Commit in dein AfterPost.
StartTransaction ;
Commit ; Rollback ; Nachtrag: Eventuell reicht es auch schon aus, TransactIsolationLevel auf eine anderen Wert als taNone zu setzen? |
Re: Zeos + MySQL + Update kommt nicht an
Das klang zunächst vielversprechend, aber leider keine Änderung. Was mich auch sehr stutzig macht ist, dass ich ohne UpdateObject o.g. Exception bekomme. Nur weiss ich mit dieser Klasse nicht umzugehen, da ich keine Ahnung hab ob da noch was rein muss, oder ob es reicht sie auf's Formular zu legen, und an das Query zu binden.
So langsam tendiere ich ja fast wieder zu Paradox-Tabellen :stupid: :D \\edit: Das Transactionlevel brachte leider auch nix. Ich glaube eher, dass das Query irgendwie einen fehlerhaften Update-String erzeugt, da ja die Exception kommt. Das UpdateObject in leerer Form scheint diesen String zu leeren, so dass einfach nichts passiert. So erkläre ich mir die aktuelle Situation, aber zu lösen weiss ich sie nicht... |
Re: Zeos + MySQL + Update kommt nicht an
Hast du eventuell einen falschen Treiber (Protokoll) gewählt?
Wie verhält es sich denn, wenn du manuell im Code einen Datensatz einfügst und deine Select-Query anschliessend neu öffnest? |
Re: Zeos + MySQL + Update kommt nicht an
Ein manueller INSERT funktioniert völlig problemlos...
|
Re: Zeos + MySQL + Update kommt nicht an
Zitat:
|
Re: Zeos + MySQL + Update kommt nicht an
Code:
Ohne die Bindung zum UpdateQuery gibt's die Exception, mit selbiger keine, aber auch keine Daten in der DB.
ZConnection -> ZQuery -> DataSource -> DBGrid
| | | +-----> DBNavigator | +----> ZUpdateQuery Jetzt hab ich schon gesehen: Ich nutze MySQL 4.1, habe aber nur die DLLs bis 4.0. Jedoch: Ein manueller Insert müsste dann ja auch fehlschlagen :?. Jetzt bin ich völlig verwirrt :freak: |
Re: Zeos + MySQL + Update kommt nicht an
Zitat:
|
Re: Zeos + MySQL + Update kommt nicht an
Zitat:
|
Re: Zeos + MySQL + Update kommt nicht an
Wie auch grad per PM geschrieben: Es gibt eine Lösung zu dem Passwortproblem. Da ich aber keine Alpha-Version der Zeos-Lib verwenden wollte, da dies ein kommerzielles Produkt wird, bei dem es um abrechnungsrelevante Daten geht, hab ich natürlich die vorige "release" genommen :?
Gibt es etwas in der Alpha, was sie u.U. "kritisch" macht? |
Re: Zeos + MySQL + Update kommt nicht an
Zitat:
Ich habe mit der alpha noch überhaupt keine Probleme gehabt. |
Re: Zeos + MySQL + Update kommt nicht an
Tjo, dann werde ich jetzt mal die Alpha antesten. (Wie bekomm ich die alte jetzt nur wieder sauber weg? *sigh*)
Ich habe da so die Vorahnung, dass das die Problemlösung sein könnte :) Es sei allen Beteiligten schon mal ganz überschwenglich gedankt! :thumb: Ich denke ich werde mich morgen intensiv und in neuer Frische damit beschäftigen, für heute hab ich genug Magensäure gebildet :D. Herzlichen, Fabian |
Re: Zeos + MySQL + Update kommt nicht an
Zitat:
|
Re: Zeos + MySQL + Update kommt nicht an
Buhuuuuu! Ich hab's doch getan. Neue Version (danke Sharky) sauber installiert, Projekt neu gebastelt, Connect klappt, und es gibt die selbe ekelige Exception wie oben. Ich brech zusammen...
In letzter Konsequenz muss ich mir die Update-Strings selber basteln, aber das kann es eigentlich nicht sein. Zumal ich das DBGrid dann getrost vergessen kann :?. Ich werd morgen alles nochmal frisch installieren und tüdeln, und mal sehen was dann ist. Vielleicht scheint ja morgen die Sonne über Zeos-Land :). |
Re: Zeos + MySQL + Update kommt nicht an
Hai dizzy,
ich kann das einfach nicht verstehen. Kannst Du das Projekt (inkl. der SQL-Codes zum erzeugen der Tabellen) mal anhängen? Da muss doch irgendwo anders der Wurm drinnen stecken. |
Re: Zeos + MySQL + Update kommt nicht an
Ich werd morgen gleich als erstes gleich ein kleines Test-Projekt hochladen. Jetzt bin ich vom Platz weg, und komme da nicht mehr dran.
:dp: |
Re: Zeos + MySQL + Update kommt nicht an
Liste der Anhänge anzeigen (Anzahl: 1)
Södale! Heute, nach ganz gutem Frühstück, bin ich mit neuem Elan dran gegangen. Hab Delphi erstmal komplett gekillt, neu installiert, und eine ganz frische Zeos 6.5.1 dazu gepackt.
Jetzt hab ich den Kaffee aber auch schon wieder auf, weil das o.g. Problem mit der Exception hält sich beständig. Es ist nichts dran zu rütteln :cry: Ich hab jetzt mal ein kleines Testprog gebaut, dass einfach nur eine Table mit Navigator enthält, und einen Button bei dessem Click ein Insert-Statement "manuell" gesendet wird. Das nämlich klappt, die Bearbeitung im Grid (bzw. das Post dazu) klappt nicht. Die Einstellungen in ZConnection1 müssen natürlich an die lokalen Umstände angepasst werden ;). Das Create-Statement der erwarteten Tabelle:
SQL-Code:
Funktioniert dieses Progrämmchen (bzw. das Editieren im Grid) bei euch (bzw: dir, Sharky *liebäugel* ;))?
CREATE TABLE `dsk`.`dizzytest` (
`Index` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, `C001` INTEGER UNSIGNED NOT NULL, `C002` VARCHAR(45) NOT NULL, `C003` DOUBLE NOT NULL, PRIMARY KEY(`Index`) ) TYPE = InnoDB; Mann was wäre ich froh wenn das laufen würde. Ich muss bis ende nächster Woche eine präsentationsfähige Vorabversion mit größtenteils implementierter Funktionalität ankarren :?. Danke euch nochmals, und im Voraus :) :dp: \\edit: Nehme ich anstelle der ZQuery ein ZTable, so klappt alles ganz wunderbar! Aber ich kann mit ner Table leider nicht viel anfangen, da ich zuweilen recht komplexe Filter brauche, die sich via SQL ganz gut machen ließen, und der Benutzer eigentlich nie ganze Tabels vorgesetzt bekommen soll, sondern nur maskiertes Zeug :). Irgendetwas läuft da reichlich schief, aber ich komme auch mit Durchwühlen des Zeos-Forums und Debugging quer durch die Zeos-Units nicht wirklich weiter. Keine Ahnung :? |
Re: Zeos + MySQL + Update kommt nicht an
So langsam glaube ich a) ich bin unfähig, oder/und b) MySQL hasst mich zu tiefst :cry:
Ich habe jetzt mal Zeos ganz raus gelassen, da das o.g. Problem ja nunmal innerhalb der Komponenten auftritt, und keine Lösung in Sicht ist. (Habe auch im Zeos-Forum gepostet, aber vor 1 Monat ist da ja nicht mit Hilfe zu rechnen ;)). Ich habe jetzt einfach mal versucht über ADO dran zu kommen. Also: Aktuellen ODBC-Treiber gesaugt, installiert, und eine Datenquelle auf meine DB eingerichtet -> Test beim Einrichten erfolgreich. Delphi auf, ADOConnection drauf, ConnectionString zusammengebastelt, Test -> "EOleException: Schwerer Fehler" tolle Fehlerbeschreibung :evil:. Ich habe mit ADO und Paradox schon erfolgreich zusammen gearbeitet - ist nicht so, dass ich da ganz planlos dran bin. Aber ich komme mir so vor. Egal was ich mache, ich komme nicht zum Ziel :wall: \\edit: Das Testen des ConnectionStrings meldet: Fehler beim Initialisieren des Providers: Schwerer Fehler. Supie ^^ |
Re: Zeos + MySQL + Update kommt nicht an
So! Hab's jetzt doch mit ADO hinbekommen. Zeos ist für mich erstmal gestorben :evil:. Der Mehraufwand der Installation und Einrichtung einer Datenquelle ist ja mal kaum ein Gegenargument - Hauptsache es klappt auch mit dem LiveUpdate.
Der Trick war: Man darf keinen Anfangskatalog angeben, wenngleich die Möglichkeit besteht, und sogar die verfügbaren Kataloge im DropdownMenue stehen. Ganz herzlichen Dank an euch, und besonders Sharky für seine Testerei mit mir :). Ich betrachte dieses Thema nun als erledigt (endlich) *froi*. Gruss, Fabian |
Re: Zeos + MySQL + Update kommt nicht an
Zitat:
Sorry, gestern hatte ich keine Zeit mich darum zu kümmern. So, soll ich dir jetzt die Lösung für Zeos sagen (habe 45 sekunden gebraucht) oder lieber nicht? Also..... frage mich jetzt nicht warum..... aber durch diese Änderung deines SQL-Querys von:
Delphi-Quellcode:
in
SQL.Add('SELECT * FROM `dizzytest`;');
Delphi-Quellcode:
habe ich den Fehler "entfernt"
SQL.Add('SELECT * FROM dizzytest');
|
Re: Zeos + MySQL + Update kommt nicht an
Zitat:
Das Problem ist mir mal aufgefallen, als ich ein SQL Skript auf die Art ausführen wollt. Da hat ZEOS auch rumgezickt. Warum dem so ist, weiss ich auch nicht? |
Re: Zeos + MySQL + Update kommt nicht an
Zitat:
bei mir ist es genau umgedreht. Das abschliessende ; macht mir keine Sorgen, dafür aber die `` |
Re: Zeos + MySQL + Update kommt nicht an
Was soll ich sagen :wall:
Sind wohl noch längst nicht ausgereift, die ZEOS Komponenten... Ich benutze für ein Projekt noch ne uralte Version von Zeos, da klappts einwandfrei mit den ``. Naja, zumindest ist das Problem jetzt mal erkannt. |
Re: Zeos + MySQL + Update kommt nicht an
Ich brech nochmal zusammen :wall:. Just as simple as it can be, woll? Da denkt man, man tut SQL was gutes wenn man die Syntax verwendet, die vom eigenen Administrationstool generiert wird, und nööö, besser anders :lol:.
(Die ` waren's, das Semikolon ist okay. Mit ` und ohne ; gibt's bei mir den gleichen Fehler.) Und dafür mach ich so einen Aufstand. Sorry :D (Den Tipp hatte ich just auch im Zeos-Forum bekommen - viel schneller als ich das erwartet hatte.) Jetzt stehe ich vor dem Problem: Nehm ich jetzt die MyODBC-Variante, oder Zeos? Mit den ADO-Kompos hab ich schon mal gearbeitet. Auf der anderen Seite ist nativer Zugriff auch nicht übel... Gibt es relevante Geschwindigkeitsunterschiede? Hihi, zu erst ging garnix, und jetzt kann ich mich nicht für eines entscheiden. Sachen gibts... :dp: - Fabian |
Re: Zeos + MySQL + Update kommt nicht an
Hai dizzy,
die Frage ist wohl was weniger Aufwand bedeutet? Bei den ZEOS reicht es ja die DLL mit im Anwendungsverzeichniss zu haben. Und andere "Fehler" sind mir noch nicht untergekommen bei ZEOS. Ausserdem hat man den Quellcode :-) |
Re: Zeos + MySQL + Update kommt nicht an
Zitat:
Zitat:
Nochmals ganz dickes Danke, und sobald ich wieder fest stecke ruf ich wieder laut in die DP hinein :). Bisher aber klappt alles nach Wunsch *froi*. Schlaft gut, Fabian |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:13 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