Entwickler-Ecke
Datenbanken - SQL-Script als Ressource
UGrohne - So 26.01.03 19:26
Titel: SQL-Script als Ressource
So, Leute,
ich hab hier ein SQL-Script, das eine Datenbank erzeugen soll, das Teil ist halt ziemlich lang, aber als einzelne Datei will ichs nicht haben. Ich dachte mir, ich mach das als Ressource da rein.
Hab also eine .rc-Datei erzeugt mit
Quelltext
1:
| SQLScript RCDATA SQLScript.txt |
Dann in die Unit eingebunden. Und jetzt die Frage: Wie lass ich das Teil ausführen, d.h. wie kriege ich das aus der Ressource raus und mit welcher Komponente kann man am besten solche komplett-Scripts durchziehen. Hab an IBSQL gedacht, aber wie hol ichs aus der Ressource raus.
Oder gibts bessere Möglichkeiten?
Gruß
Udontknow - Mo 27.01.03 11:25
Hi!
Die Klasse TResourceStream sollte dir weiterhelfen.
Cu, :)
Udontknow
UGrohne - Mo 27.01.03 13:22
Hab mir das jetzt mal angeschaut und eine Variable TResourceStream erstellt, diese mit Create aufgerufen und das Zeug eingetragen. Aber er bringt mir immer den Fehler, Ressource nicht gefunden.
Kannste mir vielleicht mal ein kleines CodeBeispiel posten, ich häng hier grad irgendwie ein bisschen :(
gruß
Udontknow - Mo 27.01.03 17:43
Klar, kein Problem.
Also, ich gehe folgendermassen vor:
Ich habe eine Textdatei namens Test.txt, in dieser steht "Dies ist ein Test!".
In einer weiteren Datei lege ich, wie du es schon gemacht hast, die zu kompilierenden Ressourcen fest. Ich habe dazu eine Datei testres.txt mit dem Inhalt "test RCDATA test.txt" angelegt.
Mit dem Programm BRCC32 kompiliere ich nun die Resource-Datei:
Quelltext
1:
| BRCC32.exe testres.txt |
Daraufhin wird eine Datei mit Namen testres.res erzeugt. Diese haue ich nun einfach in meine Unit:
Anschliessend kann ich den Inhalt der Resource folgendermassen abrufen:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| procedure TForm1.Button1Click(Sender: TObject); var Stream:TResourceStream; begin Stream:=TResourceStream.Create(hInstance,'test',RT_RCDATA); try Memo1.Lines.LoadFromStream(Stream); finally Stream.Free; end; end; |
Ich denke, du hast den Fehler gemacht, anstelle des ursprünglichen Ressourcennamens ('test') den Namen des erzeugten Files ('testres') an den Stream zu übergeben.
Cu,
Udontknow
UGrohne - Mo 27.01.03 17:48
Ne, ich hab nen ganz anderen blöden Fehler gemacht. Hab die Prozedur ursprünglich im Mainform gehabt, sie dann aber in ein Unterform kopiert, aber vergessen, die Resource da einzubinden *g*
Trotzdem danke....
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!