![]() |
Wie überpüfe ich, ob die gdb Datei vorhanden ist, vordem con
Hallo,
mein Problem ist, dass ich überprüfen lassen möchte ob die gdb Datei sich in dem Ordner befindet, in dem sie sein soll, als zur Entwurfszeit dies festgelegt wurde.. wenn nicht, dann soll die genaue adresse eingegeben werden z.b. nicht c:\bla\db.gdb sondern 192.186.0.1:c:\bla.db.gdb wo fange ich das ab? Zur Entwurfszeit habe ich die IBDatabase Componente auf Connected eingestellt. NUtze ib6 und delphi6. Vielen Dank im voraus für die Ideen. Gruß Mojo |
Re: Wie überpüfe ich, ob die gdb Datei vorhanden ist, vordem
Den Dateipfad solltest Du entwerder mit
TIBDatabase.Params oder alternativ mit TIBDatabase.DBParamByDPB herausfiltern können. Danach kannst Du mit FileExists() prüfen, ob die entsprechende GDB-Datei bereits existiert. |
Re: Wie überpüfe ich, ob die gdb Datei vorhanden ist, vordem
gut, aber an welcher stelle überprüfe ich ob fileexists()?
da wo die Formulare "geladen"/"created" werden? hmmm... :gruebel: oder vielleicht sofort gaaanz am anfang, bevor die formulare erzeugt werden, in den params nachschauen, dann fileExsists() und wenn nciht exist, programm stoppen? wie stoppt man eigentlich? ich kenne nur showmessage() und application.destroy :twisted: Sorry, falls ich mich hier ein "bisschen" anstelle, hab noch nciht wirklich einen Majorplan. gruß Mojo |
Re: Wie überpüfe ich, ob die gdb Datei vorhanden ist, vordem
Ich würde im onCreate Ereignis prüfen, ob die Datei existiert
und erst danach die Datenbank auf connected:= true setzen. D.h. auch daß Du vorm Compilieren Connected auf false setzen solltest. Sonst bekommst Du auf fremden Systemen u.U. Fehlermeldungen beim Programmstart. |
Re: Wie überpüfe ich, ob die gdb Datei vorhanden ist, vordem
Es gibt mehrere Varianten, ein Programm zu stoppen:
Aus der Delphi Hilfe: Zitat:
Form1.Close; |
Re: Wie überpüfe ich, ob die gdb Datei vorhanden ist, vordem
Also das mit dem fmMain.close und application.halt hab ich nicht ganz gecheckt. ich möchte dann z.b. fmEnterLocation (wo dann die adresse der gdb eingegeben werden soll) in den Vordergrund bringen und die Anwendung anhalten und nicht die Anwendung einfach killen. Es heisst ja:
Zitat:
Hab dann noch eine Frage am Rande: Wenn ich Connect auf False setze und die Anwendung starte, sind trotzdem alle Tabellen verfügbar. :freak: Kann es vielleicht daran liegen, dass wenn z.b. eine ibSqlQuery componente auf Active gesetzt wird, dass die dazugehörige ibDatabase auch automatisch auf connected überspringt? :stupid: Mfg Mojo |
Re: Wie überpüfe ich, ob die gdb Datei vorhanden ist, vordem
Zitat:
Ich denke, am flexibelsten geht das mit einer eigenen Form (am besten mit showmodal aufrufen). Dann kannst Du dort auch einen OpenFileDialog unterbringen und relativ elegant nach der .GDB suchen. Warum Deine Querys Daten anzeigen, ist allerdings interessant... Nimm Doch mal zum Testen die gesammten Verbindungsinformationen aus der ibDataBase raus und guck, was die Querys dann machen. Gruß Sascha |
Re: Wie überpüfe ich, ob die gdb Datei vorhanden ist, vordem
:dancer2:
:balloon: Also: Ich habs sogar recht elegant gelöst. UNd zwar gibt es die möglichkeit bei der TIBDATABASE KOmponente "BeforeConnect" eine funktion zu definieren.. das ist toll! dann kommt das, was mir hier oben geraten wurde (FileExists(),...) und falls nicht, dann fmLocateDB.ShowModal; der "OK" Knopf erhält dann "ModalResult"="OK" und der Abbrechenknopf
Delphi-Quellcode:
Ein Problem besteht jedoch dabei, wenn ich z.b. zur Entwurfszeit einen Ort der DB angegeben habe, wir dieser bei jedem Neustart aufs neue durchsucht... und das ist dool. dann müsste man ja bei jedem start die Position neu eintippen.
Application.Title:='Schließung läuft'; //in der Tastkleiste wird das dann angezeigt, damit man nicht denkt, dass das programm noch läuft..
Application.Terminate; Problem erkannt und gebannt: Der Ort wird zuerst (BeforeConnect) aus einer INI-Datei ausgelesen und FileExists() kommt zum zuge.... Der neu eingetippte Ort der Db, falls der in der ini vorhandene Wert nicht korrekt ist, wird in die INI geschrieben. So. *stolz* :mrgreen: VIELEN VIELEN DANK WRITELN! :love: PS: War "writeln" nciht ein säääähr wichtiger pascal-befehl?? :mrgreen: Gruß Mojo |
Re: Wie überpüfe ich, ob die gdb Datei vorhanden ist, vordem
Sauber :thumb:
Die Lösung mit der Ini-Datei ist doch schön praktisch.
Code:
writeln('enjoy pascal!');
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:31 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 by Thomas Breitkreuz