{
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;