![]() |
SQLConnection in Konsolenanwendung
Hallo zusammen,
da ist wieder ein Pferdefuß in meinem Prog, der mich nicht weiterkommen lässt: Ich hab eine kleine Konsolenanwendung geschrieben, die eine Verbindung zur Oracle-DB öffnen soll und dort Tabellen auslesen und deren Inhalt in Dateien schreiben soll. Alles soweit sogut, bis auf das "Ding mit der Datenbank". Per SQLConnection versuche ich, auf die DB zu kommen, erhalte beim Kompilieren allerdings schon die Warnung, dass SQLConnection eventuell nicht richtig initialisiert ist. Folgendes hab ich geschrieben:
Delphi-Quellcode:
Create will hier ja eine Komponente haben, nur weiß ich an der Stelle leider nicht, welche (deshalb steht bei mir auch SQLConnection in der Klammer).
SQLConnection := TSQLConnection.Create(SQLConnection);
Beim Ausführen knallt das Programm dann auch an dieser Stelle und wirft eine EAccessViolation (Speicherzugriffsfehler). Wo ist der Fehler?? Gruß von i_need_help |
Re: SQLConnection in Konsolenanwendung
Delphi-Quellcode:
Du kannst deine neu erzeugte Komponente nicht selbst als Owner angeben.
SQLConnection := TSQLConnection.Create(nil);
Abschließend mußt Du selbst mittels
Delphi-Quellcode:
wieder für die Freigabe sorgen.
SQLConnection.Free;
|
Re: SQLConnection in Konsolenanwendung
Hatte ich mir fast gedacht...
Danke, werd es ausprobieren!! :-D |
Re: SQLConnection in Konsolenanwendung
Funktioniert! Danke!
Die Warnung im Compiler ist zwar immer noch da (zeigt jetzt auf SQLConnection.Free), aber das Programm läuft ohne Fehler durch und macht auch genau das, was es soll. Das ist erst einmal die Hauptsache. DANKE DANKE Gruß i_need_help |
Re: SQLConnection in Konsolenanwendung
Zitat:
Ich denke Du wirst SQLConnection evtl. in einem if-Zweig anlegen und free auserhalb dieses. Deshalb gibt es auch einen Ausführungszweig, welcher SQLConnection nicht initalisiert. Falls Du try..finally-Blöcke verwendest
Delphi-Quellcode:
try
SQLConnection := TSQLConnection.Create(nil); <- Außerhalb von try...finally-Block!! try ... finally SQLConnection.Free; end; except ... end; |
Re: SQLConnection in Konsolenanwendung
Es stand in der Tat an ungünstiger Stelle. Doch nun hab ich die Angelegenheit gleich noch viel "eleganter" gelöst: Ich hab den kompletten Datenbank-Connect in eine extra Unit geschrieben. Die Fehlermeldung ist weg! :-D :coder:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23: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