AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Wie überpüfe ich, ob die gdb Datei vorhanden ist, vordem con
Thema durchsuchen
Ansicht
Themen-Optionen

Wie überpüfe ich, ob die gdb Datei vorhanden ist, vordem con

Ein Thema von mojo777 · begonnen am 14. Sep 2004 · letzter Beitrag vom 15. Sep 2004
Antwort Antwort
mojo777

Registriert seit: 10. Sep 2003
402 Beiträge
 
#1

Wie überpüfe ich, ob die gdb Datei vorhanden ist, vordem con

  Alt 14. Sep 2004, 18:09
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
Muh macht die kUh
  Mit Zitat antworten Zitat
Benutzerbild von writeln
writeln

Registriert seit: 30. Aug 2004
Ort: Hamburg
28 Beiträge
 
#2

Re: Wie überpüfe ich, ob die gdb Datei vorhanden ist, vordem

  Alt 14. Sep 2004, 18:33
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.
Sascha
...und ich sach noch: "drück nich auf F9"...
  Mit Zitat antworten Zitat
mojo777

Registriert seit: 10. Sep 2003
402 Beiträge
 
#3

Re: Wie überpüfe ich, ob die gdb Datei vorhanden ist, vordem

  Alt 14. Sep 2004, 18:58
gut, aber an welcher stelle überprüfe ich ob fileexists()?
da wo die Formulare "geladen"/"created" werden?
hmmm...
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

Sorry, falls ich mich hier ein "bisschen" anstelle, hab noch nciht wirklich einen Majorplan.


gruß
Mojo
Muh macht die kUh
  Mit Zitat antworten Zitat
Benutzerbild von writeln
writeln

Registriert seit: 30. Aug 2004
Ort: Hamburg
28 Beiträge
 
#4

Re: Wie überpüfe ich, ob die gdb Datei vorhanden ist, vordem

  Alt 14. Sep 2004, 19:04
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.
Sascha
...und ich sach noch: "drück nich auf F9"...
  Mit Zitat antworten Zitat
Benutzerbild von writeln
writeln

Registriert seit: 30. Aug 2004
Ort: Hamburg
28 Beiträge
 
#5

Re: Wie überpüfe ich, ob die gdb Datei vorhanden ist, vordem

  Alt 14. Sep 2004, 19:13
Es gibt mehrere Varianten, ein Programm zu stoppen:

Aus der Delphi Hilfe:

Zitat:
Die Prozedur Halt löst einen Programmabbruch aus und gibt die Steuerung an das Betriebssystem zurück. Um eine visuelle Delphi-Anwendung normal zu beenden, rufen Sie Application.Terminate auf. Exitcode ist ein optionaler Ausdruck, der den Exit-Code des Programms angibt.
oder einfach

Form1.Close;
Sascha
...und ich sach noch: "drück nich auf F9"...
  Mit Zitat antworten Zitat
mojo777

Registriert seit: 10. Sep 2003
402 Beiträge
 
#6

Re: Wie überpüfe ich, ob die gdb Datei vorhanden ist, vordem

  Alt 14. Sep 2004, 20:17
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:
Die Prozedur Halt löst einen Programmabbruch


Hab dann noch eine Frage am Rande:
Wenn ich Connect auf False setze und die Anwendung starte, sind trotzdem alle Tabellen verfügbar.
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?

Mfg

Mojo
Muh macht die kUh
  Mit Zitat antworten Zitat
Benutzerbild von writeln
writeln

Registriert seit: 30. Aug 2004
Ort: Hamburg
28 Beiträge
 
#7

Re: Wie überpüfe ich, ob die gdb Datei vorhanden ist, vordem

  Alt 14. Sep 2004, 20:57
Zitat:
Die Prozedur Halt löst einen Programmabbruch...
sorry, das hab ich falsch verstanden
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
Sascha
...und ich sach noch: "drück nich auf F9"...
  Mit Zitat antworten Zitat
mojo777

Registriert seit: 10. Sep 2003
402 Beiträge
 
#8

Re: Wie überpüfe ich, ob die gdb Datei vorhanden ist, vordem

  Alt 14. Sep 2004, 23:38


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:
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;
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.
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*

VIELEN VIELEN DANK WRITELN!

PS: War "writeln" nciht ein säääähr wichtiger pascal-befehl??

Gruß
Mojo
Muh macht die kUh
  Mit Zitat antworten Zitat
Benutzerbild von writeln
writeln

Registriert seit: 30. Aug 2004
Ort: Hamburg
28 Beiträge
 
#9

Re: Wie überpüfe ich, ob die gdb Datei vorhanden ist, vordem

  Alt 15. Sep 2004, 07:35
Sauber

Die Lösung mit der Ini-Datei ist doch schön praktisch.

Code:
writeln('enjoy pascal!');
Sascha
...und ich sach noch: "drück nich auf F9"...
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz