![]() |
Resourcen und LoadFromStream
Also irgendwie hab ich ein merkwürdiges Verhalten beim Schliessen einer Form. Deshalb mal hier meine Bitte, sich den Code anzuschauen. Ich lade aus einer Resource einen einfachen Text, in diesem Fall eine Datenbank Skript, und möchte dies ausführen. Das tuts auch, jedoch beim Schliessen der Form krige ich eine Schutzverletzung... Hier mal der Code, wo ich ziemlich sicher bin, daß der mit dem Problem zusammenhängt:
Delphi-Quellcode:
In qryNewDB steht anschliessend eigentlich das korrekte Skript drin, und wird auch korrekt ausgeführt. Die Schutzverletzung tritt erst auf, wenn ich die Form schliesse. Auch, wenn ich das Skript aus der Resource lade, und es NICHT ausführe, sondern einfach wieder das Form schliesse, kommts zur Fehlermeldung. Lasse ich den geposteten Code weg, so klappts.
res := TResourceStream.Create(hinstance,'emptydb', RT_RCDATA);
try res.Position := 0 ; qryNewDB.SQL.LoadFromStream(res); finally res.free ; end ; Wo liegt denn da der Haken. Gehe ich falsch mit den Resourcen um, oder wie? |
Re: Resourcen und LoadFromStream
Hi Tom,
Zitat:
Grüße vom marabu |
Re: Resourcen und LoadFromStream
Probier's mal mit except statt finally.
Ich hab mal folgenden Code probiert:
Delphi-Quellcode:
Zuerst zeigt er die Meldung FERTIG und dann eine Fehlermeldung.
var
f:file; begin try erase(f); erase(f); finally showmessage('fertig'); end; end; Wenn ich
Delphi-Quellcode:
nehme, zeigt er nur FERTIG.
var
f:file; begin try erase(f); erase(f); except showmessage('fertig'); end; end; |
Re: Resourcen und LoadFromStream
Zitat:
Bist Du sicher, das es an den Resourcen liegt? Kommentier mal die Zeilen aus und mach ein ...sql.loadfromfile('blabla.sql'); Tritt der Fehler dann immer noch auf, ist es definitiv kein Resourcen Problem. Evtl. interessiert Dich auch folgendes Tutorial: ![]() |
Re: Resourcen und LoadFromStream
Zitat:
try ... finally ... end; wird verwendet um auf jeden Fall ein mit ...Create(...); erzeugtes Objekt wieder mit Free aus dem Speicher zu entfernen. Das ist schon richtig an dieser Stelle. Schau mal in der Onlinehilfe bei Try nach, dort steht das auch noch mal ausführlich. |
Re: Resourcen und LoadFromStream
Also nach noch weiterem Rumtesten liegt es wohl doch nicht nur an den Resourcen. Meines Achtens wurden zuviele weitere Units crosslinked, und das scheint wohl irgendwie die eine oder andere Schutzverletzung auszulösen. Ich hab jetzt mal die Unit als eine eigensatändiges Projekt kompiliert, und alle überflüssigen Units rausgeschmissen, und jetzt scheints zu klappen. Naja, verstehe wer will. Denn, die Schutzverletzung trat auch erst auf, nachdem ich von den Zeos Komponenten zu den MyDAC Komponenten umgestiegen bin. In irgendeiner Form scheints auch daran gelegen zu haben.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:18 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