PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [Delphi 7]TTable Databasename



Borky
16.06.2007, 12:52
Ich habe angefangen ein Programm zu entwickel, welches auf Datenbank-tabellen bassiert. nun habe ich folgende Ordnerstruktur:
Hauptordner (hier liegt die Projektdatei, sprich exe und co)
- Data (hier liegen die Units)
- Bin (hier liegen die *.db datein)

nun habe ich das Problem, das ich von einer Unit aus über die TTable auf eine Tabelle zugreifen möchte. Nun hab ich mich belesen, und herrausgefunden, das der Pfad der Tabele(n) in die Eigenschaft Databasename rein gehöhrt. Dort sind bereits 3 Dinge angegeben. Wenn ich jedoch über normale, relative Pfade (../bin oder nur bin) bekomm ich eine fehlermeldung. Was muss unter diese Eigenschaft, damit ich auf die Tabellen zugreifen kann?

In diesem Sinne Borky

Ok habs mittlerweile seber hinbekommen, war nur ein falsches gesetztes zteichen (\ stat/)

Crash-Override
16.06.2007, 15:30
In "bin" aka "Binary" die Database statt im naheliegenden "data" ist dumm. Quellcodes oder Units in "src" oder "source", Datenbank in "data" oder "database" und binäre Anwenugnen aka. Exe/Elf-Datein in "bin" bzw. "binary".

ach ja und wenn du in Delphi relative Pfade nimmst hast du was falsch gemacht. Mach das _niemals_! Mit ExtractFilePath(Application.ExeName) oder NonVCL ExtractFilePath(paramstr(0)) bekommst du den Pfad der laufenden Exe (mit \ am Ende). Da kannst du dann relativ zu arbeiten. Ohne das ist es Selbstmord und kann ganz schön schief gehen wenn ein User eine Verknüpfung zum Programm falsch erstellt.

FF
17.06.2007, 17:26
du willst mir doch nicht erzählen, das die pfade relativ zur verknüpfung und nicht relativ zum ordner der eigentlichen exe sind o_O

Crash-Override
17.06.2007, 17:52
du willst mir doch nicht erzählen, das die pfade relativ zur verknüpfung und nicht relativ zum ordner der eigentlichen exe sind o_O

Die Pfade sind relativ zu dem in der verknüpfung angegebenem Anwendungspfad. Unter Windows ist es möglich die exe in einem beliebigen Verzeichnis zu starten, genau wie bei Linux und Co.
Einfaches Beispiel: ls (unter Windows dir, wobei dir hier kein Programm ist unter Windows, deswegen hier das Linux-Beispiel).
Das Programm liegt unter /bin/ls
Und ich bin im Verzeichnis /home/bg und will den Inhalt meines Ordners "Pictures" wissen und gebe "ls ./Pictures" ein. Was gibt er dann aus? /bin/Pictures oder /home/bg/Pictures? letzteres natürlich. Relative Angaben beziehen sich auf den Ort von wo es ausgeführt wird (bei Verknüfungen unter Windows "Anwendungspfad") nicht nach dem Ort der Anwendung ("Exe"). Klar, bei grafischen Anwendungen ist es weniger Problematisch, aber ich hab auch schon User gesehen die einfach mal ein Programm woanders hinkopiert haben und dann fehler bei Verknüpfungen gemacht haben. Und wieso nicht auf Nummer sicher gehen wenn es so einfach ist?