Das bringt mich jetzt wieder etwas durcheinander. Einen Pfad für die BDE in Installshield kann ich doch nur angeben, wenn ich einen Alias wähle. Und den bräuchte ich doch in der Variante gar nicht mehr.
Gambit |
Das ist nicht der Pfad für die BDE sondern der Pfad, in dem die BDE Deine Paradox-Tabelle(n) findet. Und das mußt Du sehr wohl beim Anlegen des Aliases angeben. Und bei einer Installation auf einen anderen PC mußt Du der dortigen BDE natürlich mitteilen, wo sei die Tabellen suchen soll, die zu dem Alias gehören.
|
Ich wollte es ja jetzt eigentlich ganz ohne Alias machen. Geht das nicht?
Gambit |
Das geht auch. Dann solltest Du aber in Deinem Programm die Pfadangabe für die DB-Tabelle variabel gestalten (z.B. aus der einer INI-Datei oder der Registry einlesen)! Ich würde aber bei BDE-Nutzung der Verwendung eines Alias-Namens den Vorzug geben.
|
Ich fasse es nicht. Das Programm läuft jetzt nach der Installation aber nur, wenn ich es aus dem Installationsordner heraus starte. Starte ich es über den Eintrag des Startmenus läuft es nicht, Fehlermeldung von Windows Blahblah hat einen Fehler verursacht und muss beendet werden. Lösche ich die Verknüpfung und lege ich die Verknüpfung neu an gehts wieder.
Das soll mal einer raffen, zumal in der neuen Verknüpfung exakt das Gleiche drinsteht. Gambit |
Zitat:
|
Och, mmhh, muss ich mal gucken. Aber soviel ich weiß, kann man da in Installshield nicht mehr eintragen...
Gambit |
Joo, das war der Fehler. Besten Dank. War ja mal wieder ne schwere Geburt, wenn ich euch nicht hätte...
Gruß Gambit |
Dafür sind wir doch da. Unsereiner hat ja auch mal Fragen...
|
Zitat:
Hier ist dann übrigens der Code, so wie ich ihn bei Programmstart durchlaufen lasse. Ich musste Ihn ein wenig ändern zum Posten, aber er sollte tun:
Delphi-Quellcode:
{
FUNCTION Check_Alias_DataBase: String; BEGIN Result := Check_Alias('MyAlias', AppPath + 'Data\', True); END; //----------------------------------------------------- } FUNCTION Check_Alias(Alias_Name, DefaultPath: String; TestActivate: Boolean): String; CONST strTestTable = 'MyTable.DB'; VAR MyStringList :TStringList; TempString, newPath: String; TestTable: TTable; begin Set_DataBase_Passwort; MyStringList := TStringList.Create; TRY Session.GetAliasParams(Alias_Name,MyStringList); EXCEPT END; IF MyStringList.Count = 0 THEN BEGIN Session.AddStandardAlias(Alias_Name, DefaultPath , 'PARADOX'); Session.SaveConfigFile; END; IF TestActivate THEN BEGIN TestTable := TTable.Create(nil); TestTable.DatabaseName := Alias_Name; TestTable.TableName := strTestTable; TRY TestTable.Active := True; EXCEPT IF Copy(MyStringList.Strings[0],6,255) <> DefaultPath THEN BEGIN TempString := 'Die Datenbank kann nicht initialisiert werden!' + #10 + 'Der aktuelle Pfad ist:' + ' ' + Copy(MyStringList.Strings[0],6,255) + #10 + 'Der Pfad sollte aber auf:' + ' ' + DefaultPath + ' ' + 'zeigen' + '.'#10+ 'Bitte wählen Sie im folgenden den Pfad Ihrer Datenbanken aus.'; ShowMessage(TempString); newPath := DefaultPath; IF SelectDirectory(newPath,[],0) THEN BEGIN MyStringList.Clear; MyStringList.Add('PATH=' + IncludeTrailingPathDelimiter(newPath)); Session.ModifyAlias(Alias_Name,MyStringList); Session.SaveConfigFile; Session.Close; Session.Open; Set_DataBase_Passwort; END; // IF MessageDlg() = mrYes END; END; // TRY Table.Active TRY TestTable.Active := False; TestTable.Active := True; EXCEPT MyStringList.Free; TestTable.Free; MessageDlg('Die Datenbanken können nicht geöffnet werden.' + #10 + 'Das Programm kann nicht gestartet werden.',mtInformation, [mbOK],0); Halt; END; TestTable.Free; END; TRY Session.GetAliasParams(Alias_Name,MyStringList); Result := IncludeTrailingPathDelimiter(Copy(MyStringList.Strings[0],6,255)); ForceDirectories(Result); EXCEPT Result := DefaultPath; END; MyStringList.Free; END; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:43 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