Einzelnen Beitrag anzeigen

Mario

Registriert seit: 7. Apr 2003
567 Beiträge
 
Delphi 2006 Enterprise
 
#20
  Alt 23. Jun 2003, 07:06
Zitat von Gambit:
Das soll mal einer raffen, zumal in der neuen Verknüpfung exakt das Gleiche drinsteht.
Auch das Arbeitsverzeichnis?

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;
Schöne Grüße,
Mario Noack
  Mit Zitat antworten Zitat