Entwickler-Ecke

Datenbanken - DBs ohne Alias je nach STandort übergeben!?!?!?


Killi - Sa 05.10.02 11:05
Titel: DBs ohne Alias je nach STandort übergeben!?!?!?
Hi!

Ich wusste früher mal, wie ich manuell meiner Query sagen konnte, wo die DB liegt - also ohne Alias, weil das Probleme bei variierenden Installationen, also anderen "STandorten" des Programms auslösen könnte...allerdings weiß ich es nicht mehr genau! Ich weiß nur noch dass man im FormCreate der Query den Pfad übergeben musste und (vielleicht?) auch den DB-Namen....aber ich weiß echt nicht mehr WIE! Könnt ihr mir helfen? Hier mal der Code, der nicht tut:

Quelltext
1:
2:
FilePath:= ExtractFilePath(ParamStr(0)+'daten.db'); //hier hol ich den Pfad des ausgeführten Programms
     SQLDaten.DatabaseName:= FilePath; //und hier will ich ihn der Query übergeben!?

Bloß bringt er dann ne Fehlermeldung, dass der Pfad ungültig wäre o.ä.!


hansa - Sa 05.10.02 11:19

Hi Killi,

kann es sein, daß Du nur den \ vor daten.db vergessen hast ? 8)

Gruß
Hansa


Klabautermann - Sa 05.10.02 11:43
Titel: Re: DBs ohne Alias je nach STandort übergeben!?!?!?
Hallo,

wenn das klappen soll dann so:

Quelltext
1:
2:
FilePath:= ExtractFilePath(ParamStr(0))+'daten.db'; //hier hol ich den Pfad des ausgeführten Programms
     SQLDaten.DatabaseName:= FilePath; //und hier will ich ihn der Query übergeben!?

Wie es genau geht hängt von der von dir verwendeten Datenbank ab.

Gruß
Klabautermann


Killi - Sa 05.10.02 11:45

Nein, hab ich nicht - das extractfilepath setzt schon einen "\" hinter das Ganze! Also sieht das nachher so aus: "C:\delphi\.....\" + "daten.db"! Also müsste alles stimmen!

Aber stimmt das überhaupt was ich da mache??? Weiß das jemand?????


Killi - Sa 05.10.02 11:49

Nein, das geht auch nicht - das ist doch so etwa das Gleiche wie ich gemacht hatte - nur das "daten.db" früher eingebunden!?
Da kommt immer der Fehler:"Ungültiges Verzeichnis
Verzeichnis 'C:\Delphi\wallpapers\daten.db'" - ich benutz ne Paradox 7, einfache Tabelle, macht eigentlich keine Probleme, hab Tabelle erstellt, aber funktioniert das überhaupt was ich da mache? Es hat mal geklappt, bloß weiß ich nicht genau wie....weiß denn keiner was?


bis11 - Sa 05.10.02 12:02

Hi Killi,

Du mußt in den DatabaseName nur den Pfad zu Deiner Datenbank angeben und nicht mehr. Willst Du dann auf die Paradox 7 Tabelle zugreifen, sollte es so funktionieren :
(Label1 gibt den Tabellennamen aus !!)


Quelltext
1:
Label1.Caption := SQLDaten.DatabaseName + 'daten.db';                    


Killi - Sa 05.10.02 12:18

Hey, danke - das hat geklappt!!! ENDLICH! Aber ich dachte ich hätte das schon ausprobiert....hm...naja, DANKE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


Klabautermann - Sa 05.10.02 13:00

Hallo,
Killi hat folgendes geschrieben:
Nein, das geht auch nicht - das ist doch so etwa das Gleiche wie ich gemacht hatte - nur das "daten.db" früher eingebunden!?

Da muss ich widersprechen. Was du hattest

Quelltext
1:
ExtractFilePath(ParamStr(0)+'daten.db')                    

würde z.B. folgendes ergeben:
ExtractFilePath('C:\Programme\MeinProg\Peinprog.EXE' + 'daten.db') = 'C:\Programme\MeinProg\'
Denn das ExtractFilePath würde auch das date.db wieder anschneiden. Die von mir vorgeschlagene Lösung ergäbe:
'C:\Programme\MeinProg\daten.db'
da das Daten.db erst nach dem ExtractFilePath angehängt würde.

Das aber nur zur Ergänzung. Die richtige lösung hast du ja mitlerweile.

Gruß
Klabautermann