Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi EAccess Violation mit ZeosDBO beim einfügen & löschen (https://www.delphipraxis.net/20735-eaccess-violation-mit-zeosdbo-beim-einfuegen-loeschen.html)

FoxtheFox 22. Apr 2004 10:47


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

Sharky 22. Apr 2004 11:02

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.

FoxtheFox 22. Apr 2004 13:30

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

Sharky 22. Apr 2004 14:28

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.

FoxtheFox 22. Apr 2004 15:28

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?

FoxtheFox 22. Apr 2004 16:42

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

Sharky 23. Apr 2004 05:08

Re: EAccess Violation mit ZeosDBO beim einfügen & lösche
 
Zitat:

Zitat von FoxtheFox
..Aber wo ist denn der Unterschied zwischen Query.Active:=true bzw. Query.ExecSQL...

Hai,

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.

FoxtheFox 23. Apr 2004 09:24

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 06:19 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