Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Programmverzeichnis aus tabelle auslesen und bekannt machen (https://www.delphipraxis.net/9353-programmverzeichnis-aus-tabelle-auslesen-und-bekannt-machen.html)

Praktikant 24. Sep 2003 17:12


Programmverzeichnis aus tabelle auslesen und bekannt machen
 
Hi, bin neu hier und hab gleich mal 'ne Frage:
Also, ich habe mehrere Tabellen (Paradox), in einer davon ist u.a. der Pfad, wo sich die Programmdateien befinden, hinterlegt (C:\...).
Nun soll dieser Pfad variabel sein, d.h. in einem Unterformular kann man den Pfad ändern (Änderung in Tabelle).

Mein Problem:
Wie kann ich den Pfad auslesen und den anderen Programmen bekannt machen, so dass sich der Pfad in den bei TableName usw. einträgt?

Memo 24. Sep 2003 18:05

Re: Programmverzeichnis aus tabelle auslesen und bekannt mac
 
Zitat:

Zitat von Praktikant
Nun soll dieser Pfad variabel sein, d.h. in einem Unterformular kann man den Pfad ändern (Änderung in Tabelle).

Das hab ich soweit verstanden.
Zitat:

Zitat von Praktikant
Wie kann ich den Pfad auslesen und den anderen Programmen bekannt machen, so dass sich der Pfad in den bei TableName usw. einträgt?

Soll es sich der Pfad nur innerhalb deine Programms auswirken oder greifen wirklich auch andere Programme(oder meinst du andere Forms) auf diesen Pfad zu? Dann wäre ein verändern des Pfades in der BDE evt. sinnvoller.

MrSpock 24. Sep 2003 19:51

Re: Programmverzeichnis aus tabelle auslesen und bekannt mac
 
Hallo Praktikant,

zunächst einmal herzlich willkommen im Delphi-Praxis Forum.

Memo hat Recht, dass du für den von dir beschriebenen Zweck besser einen ALIAS einrichtest. Sollte das aber nicht gehen, musst du zumindest den Pfad für die eine Tabelle, in der der zu benutzende Pfad steht als ALIAS einrichten oder in einer INI-Datei ablegen.

Alle Programme können dann bei Create die INI-Datei lesen, aus der Tabelle den Pfad lesen und diesen dann benutzen.

Praktikant 25. Sep 2003 07:34

Re: Programmverzeichnis aus tabelle auslesen und bekannt mac
 
Hi,
also mit anderen Programmen meinte ich eigentlich andere Formulare.

Habe jetzt mal einen Alias eingerichtet, funktioniert oweit auch.
Aber wie kann ich nun den Path welchen ich ja im SQL Explorer eintrage aus meinem Unterformular ändern? Wenn möglich würde ich da ohne eine ini Datei auskommen wollen.

Bin gerade im Praxissemester und hab zuvor noch nie was mit delphi gemacht... von daher bin ich auf Hilfe angewiesen, da inzwischen Programm langsam so komplex ist und nun immer schwierigere Dinge implementiert werden müssen :?

Memo 25. Sep 2003 09:48

Re: Programmverzeichnis aus tabelle auslesen und bekannt mac
 
Also, wenn du schon soweit bist und einen Alias fertig eingerichtet hast, machen wir doch gleich mal da weiter.
Tipp mal im Editor ModifyAlias ein setz den Courser drauf und drück F1.
Da steht ein Beispiel, in dem du nur noch deinen Alias einsetzen musst. Der neue Pfad wird in dem Bsp. in eine InputQuery getippt. Willst du den Pfad aus einer Table holen , die noch dazu unter dem selben Alias läuft, musst du ihn zu Beginn der Prozedur aus der Table abfragen, weil die Table zum ändern des Alias Activ:= False gesetzt wird.
Vergiss nicht die Table hinterher auf Activ zu setzen.

Praktikant 25. Sep 2003 12:46

Re: Programmverzeichnis aus tabelle auslesen und bekannt mac
 
Tja, ich bin mir da nicht so ganz sicher ob ich den alias (korrekt) eingerichtet habe.
Zumindest funktioniert das ganze nicht. Wo soll ichdie procedure denn eintragen?
Und wie implementiere ich meine Tabelle, weiß nicht so recht was das Bsp. Programm zu welchem Zeitpunkt macht.

Memo 25. Sep 2003 13:00

Re: Programmverzeichnis aus tabelle auslesen und bekannt mac
 
Zitat:

Zitat von Praktikant
Tja, ich bin mir da nicht so ganz sicher ob ich den alias (korrekt) eingerichtet habe.

Das ist nun wirklich simpel.
-BDE an
-Objekt->neu->bestätigen
-Namen eintragen(zB. Test)
-rechts steht PATH, auf den kleinen Buttom klicken
-Verzeichnis auswählen und BDE beenden
-Delphi an, Table anklicken
-im OI unter DatabaseName List aufklappen, Test wählen
Zitat:

Wo soll ichdie procedure denn eintragen?
Von mir aus im Buttonklick
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  ChangeAlias
end;
Zitat:

Und wie implementiere ich meine Tabelle, weiß nicht so recht was das Bsp. Programm zu welchem Zeitpunkt macht.
Dann schau im Debugger nach.
Wenn alle deinen Tabellen an diesem Alias hängen, brauchst du dich um den Code nicht weiter kümmern.

Praktikant 26. Sep 2003 11:54

Re: Programmverzeichnis aus tabelle auslesen und bekannt mac
 
ok, funktioniert. hatte schon korrekt den alias angelegt - kann man auch wirklich nicht falsch machen :)
Kann jetzt schön im Programm meinen Verzeichnispfad ändern.

:arrow: Aber wenn ich nun wie auch immer den falschen Pfad eingebe habe ich ein Problem, kann dann nämlich nicht mehr den Pfad ändern, da dieser ja aus Tabelle geändert wird.
Meine Idee: Es kommt ja eine schöne Fehlermeldung, dass Pfad nicht gefunden wurde. Kann man diesen Fehler nicht abfangen und dann automaisch den changealias ausführen?

Memo 26. Sep 2003 12:00

Re: Programmverzeichnis aus tabelle auslesen und bekannt mac
 
Zitat:

Zitat von Praktikant
Aber wenn ich nun wie auch immer den falschen Pfad eingebe habe ich ein Problem, kann dann nämlich nicht mehr den Pfad ändern, da dieser ja aus Tabelle geändert wird.

Hihi, erinnerst du dich noch an den Tip von MrSpock mit der ini-Datei? Jetzt weisst du wofür das gut ist. :lol:

Praktikant 26. Sep 2003 12:32

Re: Programmverzeichnis aus tabelle auslesen und bekannt mac
 
hab ich schon befürchtet.
Hab mich gerade mal ein wenig in die INI Geschichte eingelesen.

Versuche mal noch was zusammen zu bekommen, wird aber vor Montag wohl nix mehr werden, erst mal ab ins Wochenende :-D

Ein Frage noch:
Warum funktioniert das so nicht(undefinierter Bezeichner):

[...]
procedure TForm_INI.FormCreate(Sender: TObject);
var
ini: TIniFile;
begin
ini:=TIniFile('C:\Visualisierung.ini');
try
[...]

wo muss ich das teil noch bekannt machen?


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:43 Uhr.
Seite 1 von 2  1 2      

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