![]() |
EAccess Violation mit ZeosDBO beim einfügen & löschen
Hallo zusammen,
folgendes Problem: Ich habe eine Verbindung mit den ZEOSDBO Komponenten zu einer MySQL DB hergestellt. Nutze dafür: Concetion, Datasource, und eine Query. Die Verbindung und das Anzeigen etc. von Daten klappt auch wunderbar. Wenn ich einen neuen Datensatz einfüge, wird dieser auch korrekt eingefügt, ich erhalte jedoch sofort die Fehlermeldung: EAccess Violation Error, Zugriffsverletzung bei Adresse XYZ in Modul "Programmname" Lesen von Adresse 0000000. Programm wurde angehalten.... Das Programm bleibt dann hier stehen (Unit ZPlainMySQLDriver): function TZMySQL323PlainDriver.GetRowCount(Res: PZMySQLResult): Int64; begin Result := ZPlainMySql323.PMYSQL_RES(Res).row_count; end; Beim löschen eines Datensatzes ist es genau das gleiche Problem. Ich nutze Delphi4 Standard mit den ZEOSDBO Komponenten 6.012.stable Kennt jemand das Problem vielleicht und kann mir einen Tip geben woran es liegt? Danke für die Infos im Voraus! TheFox |
Re: EAccess Violation mit ZeosDBO beim einfügen & lösche
Hai FoxtheFox,
wie fügst Du denn die Daten ein? Ich nutze die selbe Zeos-Version und habe keine Problem. |
Re: EAccess Violation mit ZeosDBO beim einfügen & lösche
Also, ich nutze fplgende Anweisungen:
INSERT INTO kundendb VALUES=(...) oder DELETE FROM kundendb WHERE KndNR=xyz Eigentlich ganz einfache Anweisungen. Sie werden ja auch ohne SQLFehler übertragen. Das ist ja das Merkwürdige. Gruß TheFox |
Re: EAccess Violation mit ZeosDBO beim einfügen & lösche
Arbeitest Du mit einem DB-Grid oder so etwas?
Ich glaube da hatte ich auch mal probleme (setzt dieses Dinger eh nicht mehr ein). Wenn ja: Mache mal ein .Refrech nach deinem ExecSQL. |
Re: EAccess Violation mit ZeosDBO beim einfügen & lösche
ja, ich nutze ein DBGrid Plus.
Werd das mit dem Refresh nach dem Execute mal probieren. Nur wie lääst Du dir die Daten denn anzeigen, wenn Du kein DBGrid mehr verwendest? |
Re: EAccess Violation mit ZeosDBO beim einfügen & lösche
Hi,
hab es jetzt hinbekommen, ohne Fehler. Daten abfragen mit Select... klappt wie folgt: SQL_Kunden_ReadOnly_Query.Active:=false; SQL_Kunden_ReadOnly_Query.SQL.clear; SQL_Kunden_ReadOnly_Query.SQL.Add('SELECT * FROM kunden ORDER BY Name'); SQL_Kunden_ReadOnly_Query.Active:=true; Klappt so einwandfrei. SQL_Kunden_Query.SQL.Clear; SQL_Kunden_Query.SQL.Add('DELETE FROM kunden where KndNR=11'); SQL_Kunden_query.ExecSQL; So funzt es jetzt ohne fehler beim löschen oder einfügen. Aber wo ist denn der Unterschied zwischen Query.Active:=true bzw. Query.ExecSQL?? Gruß TheFox |
Re: EAccess Violation mit ZeosDBO beim einfügen & lösche
Zitat:
Query.Active := True oder Query.Open wird verwendet wenn dein SQL-Befehl eine Ergbnissmenge hat (SELECT) Query.ExecSQL wird verwendet wenn der Befehl keine Ergbnissmenge hat (INSERT,UPDATE,DELETE usw.) Ich lasse mir die Daten entweder in einem StringGrid oder einer ListView anzeigen die ich selber fülle. Da bin ich wesentlich flexibler als mit einem DBStrinGrid. |
Re: EAccess Violation mit ZeosDBO beim einfügen & lösche
Hi,
dann haben wirs ja schon. Ich habe alles mit Query.active=true gemacht. Und schon tritt der Fehler EAccessViolation bei mir auf. Dann haben wir das ja geklärt. Danke für die Hilfe. Gruß TheFox |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:53 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