Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi dbexpress und Speicherzugriffsfehler (https://www.delphipraxis.net/49151-dbexpress-und-speicherzugriffsfehler.html)

I_need_help 6. Jul 2005 09:20

Datenbank: Oracle • Zugriff über: dbexpress

dbexpress und Speicherzugriffsfehler
 
Hallöchen zusammen,

sitze seit zwei Tagen vor einem leidigen Problem. Habe in Delphi 7 eine DB-Anwendung (dbexpress) mit SQLConnection und TSQLQuery. Dazu habe ich mir Procedures geschrieben, die die Parameter einrichten, die Verbindung zur DB (Oracle) herstellen und die Verbindung wieder lösen sollen (mit SQLConnection.Free). Dies ist eine extra Unit, die ich in mein HP eingebunden habe.

Rufe ich nun das HP auf (ein Form) und klicke auf den Button (DB-Verbindung testen) läuft beim ersten Mal alles super, klicke ich danach ein zweites Mal - einfach, um das ganze nochmal zu starten - dann bekomme ich einen Speicherzugriffsfehler. Was mache ich falsch???

Vielen lieben Dank schon mal für jeden Tipp

LG i_need_help

marabu 6. Jul 2005 09:25

Re: dbexpress und Speicherzugriffsfehler
 
Da du den relevanten Quelltext nicht zeigen möchtest, musst du mit breakpoints schauen, an welcher Stelle die AV auftritt. Wahscheinlich ein dangling pointer.

Grüße vom marabu

I_need_help 6. Jul 2005 09:34

Re: dbexpress und Speicherzugriffsfehler
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hab den Quellcode mal in ein TXT gepackt und hochgeladen...

marabu 6. Jul 2005 09:40

Re: dbexpress und Speicherzugriffsfehler
 
SQLConnection.Free in DBFreigeben() ist der Übeltäter.

marabu

I_need_help 6. Jul 2005 09:42

Re: dbexpress und Speicherzugriffsfehler
 
Warum? Wie krieg ich die Verbindung zur Datenbank sonst wieder freigegeben?? Habe auch schon SQLConnection.destroy probiert... Oder kann ich die Verbindung einfach bestehen lassen...

marabu 6. Jul 2005 09:46

Re: dbexpress und Speicherzugriffsfehler
 
Die Verbindung hast du durch SQLConnection.Connected := false freigegeben. Durch SQLConnection.Free zerstörst du nur die Komponente SQLConnection in deiner Prozedur, obwohl dafür eigentlich deine Form zuständig ist. Du hast die Komponente ja auch nicht erstellt, sondern einfach auf die Form gezogen - oder?

marabu

I_need_help 6. Jul 2005 10:01

Re: dbexpress und Speicherzugriffsfehler
 
Super, wenn ich nur Connected = false mache funktioniert es. Danke Dank!!!


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