Entwickler-Ecke
Datenbanken - databasename zur laufzeit zuweisen
tortom1000 - Mi 11.02.09 19:05
Titel: databasename zur laufzeit zuweisen
Hallo,
ich habe folgendes Problem:
In einer Ini-Datei befindet sich der Name der Datenbank in der Form 192.168.0.1:c:\programme\meinprogramm\datenbank.fdb.
Wenn ich die Ini-Datei bei OnCreate der Form einlesen möchte, bleiben die Variablen trotz korrekter Zuweisung undefiniert. Daher kann ich den DatabaseName im OnCreate der Form nicht zuweisen.
Im OnShow der Form funktioniert das Einlesen aus der Ini-Datei, aber das ist zu spät, da dann das Programm bereit abgestürzt ist ohne die erforderliche Datenbank.
Weiß hierzu jemand Rat?
Das Auslesen aus der Ini-Datei mache ich, damit ich bezüglich des Rechnernamens bzw. seiner IP und des Datenbankpfades variabel bin.
Gruß Tortom
Moderiert von
Narses: Beitragsformatierung überarbeitet.
Xentar - Mi 11.02.09 19:23
Bei mir geht das auch im OnCreate...
Zeig uns, wie du das machst, und wir sagen dir, was falsch ist.
tortom1000 - Mi 11.02.09 22:47
Hallo Xentar,
grundsätzlich geht die Zuweisung bei mir auch, wenn ich einen festen Wert zuweise.
Da ich den Wert aber aus der Ini-Datei auslesen muß bzw. möchte, damit ich bei dem
Datenbankpfad variabel bin, funktioniert es mit dem auslesen aus der Ini-Datei
im Oncreate nicht.
Die von mir verwendete Prozedur zum auslesen sieht folgendermaßen aus:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| procedure INI_einlesen; var ini: TIniFile; begin ini:=TIniFile.Create(progdir + 'datenbank.ini'); try databasename:=ini.ReadString('DATENBANK','Datenbankname','undefiniert'); finally ini.free; end; end; |
Die Prozedure funktioniert z.B. im OnShow-Ereignis einwandfrei, nur halt nicht
im OnCreate.
Keine Ahnung, was das falsch ist
Moderiert von
Narses: Delphi-Tags hinzugefügt
Xentar - Mi 11.02.09 22:50
1. Kann es sein, dass progdir zu dem Zeitpunkt noch nicht definiert ist?
2. und wo wird databasename weiterverwendet? Den musst du ja irgendwo der Komponente zuweisen..
3. Hast mal nen Haltepunkt gesetzt, ob überhaupt der richtige Wert in databasename drinsteht?
4. Delphi Tags hier im Forum verwenden
Zeig mal mehr code..
Chemiker - Mi 11.02.09 23:44
Hallo tortom1000,
ich benutze dafür ein DataModul. Zu beachten ist, dass es als erstes aufgerufen wird.
z.B.:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| begin Application.Initialize; Application.Title := 'MEIN PROGRAMM'; Application.CreateForm(TDM, DM); Application.CreateForm(TfrmSPSDAPHauptMenue, frmSPSDAPHauptMenue);
usw. |
Bis bald Chemiker
tortom1000 - Do 12.02.09 08:31
Schande über mein Haupt. Ich Depp hatte progdir tatsächlich
erst im OnShow definiert.
Dann kann das auch nicht gehen.
Ich hab das nun geändert und es funktioniert auf Anhieb.
Vielen Dank für deine/eure Hilfe.
Tortom
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 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!