Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Verzeichnis ändert sich (https://www.delphipraxis.net/61297-verzeichnis-aendert-sich.html)

davar 19. Jan 2006 16:49


Verzeichnis ändert sich
 
:( Hallo Leute,

ich habe nun folgendes Problem:

im Quellcode arbeite ich mit Paradoxtabellen, die ich nicht über einen Alias, sondern mit direkter Verzeichnisangabe anspreche. Und da sich die Tabellen in einem Unterverzeichnis befinden, gebe ich das Verzeichnis relativ an, also z.B. 'DBs\tabelle.db'.

Jetzt habe ich jedoch eine Imagelist hinzugefügt, die sich Images aus einem weiteren Unterverzeichnis, nämlich 'images' holt.

Und jetzt geht es nicht mehr. :(

Delphi sucht die Tabellen jetzt nämlich in 'images\DBs\' und findet logischerweise nichts.

Kann man die Verzeichnisangabe irgendwie wieder "zurücksetzen"?

Ich habe mir ja überlegt, die Pfadangaben mit "ExtractFilePath(Application.ExeName)" + 'DBs\..' " anzugeben, aber dann habe ich wiederum ein Problem mit den Querys, weil ich nicht weiss, wie ich es dort hinkriegen kann.
Da gibt es nämlich so etwas wie
Delphi-Quellcode:
DBs.QHTrHin.SQL.add('SELECT * FROM DBs\Tabelle WHERE Kunde = :kunde');
Kann mir jemand einen Rat geben? :coder2:

Luckie 19. Jan 2006 16:52

Re: Verzeichnis ändert sich
 
Und genau das ist der Grund, warum man nie mit relativen Pfaden arbeiten soll, sondern nur mit absoluten. Mit Delphi-Referenz durchsuchenParamStr(0) bekommst du den Pfad deiner Anwendung samt Namen und mit Delphi-Referenz durchsuchenExtractFilepath extrahierst du nur den Pfad.

Matze 19. Jan 2006 16:56

Re: Verzeichnis ändert sich
 
Hallo

Zitat:

Zitat von davar
Ich habe mir ja überlegt, die Pfadangaben mit "ExtractFilePath(Application.ExeName)" + 'DBs\..' " anzugeben, aber dann habe ich wiederum ein Problem mit den Querys, weil ich nicht weiss, wie ich es dort hinkriegen kann.

Über die Suche (Bsp: Hier im Forum suchenletzten Ordner) wärst du auf folgenden Code von marabu gestoßen:

Delphi-Quellcode:
function Folder(fileName: string): string;
begin
  Delete(fileName, 1, Length(ExtractFileDrive(fileName)));
  SetLength(fileName, Length(fileName) - Succ(Length(ExtractFileName(fileName))));
  Result := ExtractFileName(fileName);
end;
Diese Funktion gibt dir den Namen des "untersten" Ordners zurück.

Luckie 19. Jan 2006 16:59

Re: Verzeichnis ändert sich
 
Ups, man sollte die Beiträge auch bis zu Ende lesen. :roll:

davar 19. Jan 2006 17:18

Re: Verzeichnis ändert sich
 
Zitat:

Zitat von Matze
Über die Suche (Bsp: Hier im Forum suchenletzten Ordner) wärst du auf folgenden Code von marabu gestoßen:

Delphi-Quellcode:
function Folder(fileName: string): string;
begin
  Delete(fileName, 1, Length(ExtractFileDrive(fileName)));
  SetLength(fileName, Length(fileName) - Succ(Length(ExtractFileName(fileName))));
  Result := ExtractFileName(fileName);
end;
Diese Funktion gibt dir den Namen des "untersten" Ordners zurück.

Aber hilft mir das denn in dem Fall weiter?

Dann habe ich ja den Namen des Ordners "images", aber da bin ich ja schon. Ich möchte ja da wieder raus.. Wenn ich Delphi aufrufe, bin ich ja im Applikationsverzeichnis und kann von dort aus ins Unterverzeichnis "DBs" zugreifen. Aber nachdem die Imagelist auf das Unterverzeichnis "images" zugreift, bleibt Delphi auch dort und kennt logischerweise das Unterverzeichnis "DBs" nicht, weil es dort auch keins gibt. Also müsste die Applikation wieder aus diesem Verzeichnis "images" eins höher.

Kann ich denn irgendwie die Query-Abfrage so modifizieren, dass ich da das Pfad irgendwie "zwischenschalten" kann? Dann hätte ich auch das Problem mit den relativen Pfadangaben nicht.

MfG

davar

Matze 19. Jan 2006 17:20

Re: Verzeichnis ändert sich
 
Übergib der Funktion doch einfach das Anwendungsverzeichnis mit angehängten DB-Ordner.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:07 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-2025 by Thomas Breitkreuz