Hallo,
Bitte jetzt nicht Lachen - ich weiß,
BDE ist Tot, auch das Delphi 7, aber trotzdem die Frage(n):
- ich möchte eine
BDE-Datenbank erstellen, okay
- dazu brauche ich Admin-Rechte, okay
- die/der
BDE-Administration läuft, okay (getestet, und okay)
- manuell kann ich neue Datenbanken anlegen
- ich verwende als Treiber: STANDARD
- ich verwende als Tabellen-Typ: DBASE/
PARADOX
- ich kann manuell Pfade zu den Bestandsdatendateien setzen
- die einzelnen .dbf Dateien können dann auch angesprochen, und angezeigt werden
- leider schaffe ich es nicht, Datenbanken per Code, während der Laufzeit zu erzeugen
- auch, nachdem das mein Programm im Admin-Modus gestartet wurde, wird die Datenbank
nicht angelegt
- den folgenden Code habe ich für meine Versuche verwendet
Delphi-Quellcode:
procedure foo;
var
BDE_found : Boolean;
BdeAdmin : TDataBase;
begin
BDEAdmin := TDataBase.Create(
nil);
BDE_found := false;
try
try
BDEAdmin.AliasName := '
DataBaseName';
BDEAdmin.DatabaseName := '
DataBaseName';
BDEAdmin.DriverName := '
STANDARD';
BDEAdmin.Open;
except
on E: EDBEngineError
do
begin
for i := 0
to E.ErrorCount - 1
do
begin
case E.Errors[i].ErrorCode
of
0:
begin {no error} BDE_found := true;
end;
1:
begin
ShowMessage('
BDE Error:'
+ #13#10 + '
Number: ' + IntToStr(E.Errors[i].ErrorCode)
+ #13#10 + '
Message: ' + '
Database not found.');
end;
2:
begin
ShowMessage('
BDE Error:'
+ #13#10 + '
Number: ' + IntToStr(E.Errors[i].ErrorCode)
+ #13#10 + '
Message: ' + '
Error in BDE-Config.');
end;
3:
begin
ShowMessage('
BDE Error:'
+ #13#10 + '
Number: ' + IntToStr(E.Errors[i].ErrorCode)
+ #13#10 + '
Message: ' + '
Network BDE-Error.');
end;
4:
begin
ShowMessage('
BDE Error:'
+ #13#10 + '
Number: ' + IntToStr(E.Errors[i].ErrorCode)
+ #13#10 + '
Message: ' + '
Access Table or Folder Problem.');
end;
5:
begin
ShowMessage('
BDE Error:'
+ #13#10 + '
Number: ' + IntToStr(E.Errors[i].ErrorCode)
+ #13#10 + '
Message: ' + '
Internal BDE-Error');
end;
else begin
ShowMessage('
BDE Error:'
+ #13#10 + '
Number: ' + IntToStr(E.Errors[i].ErrorCode)
+ #13#10 + '
Message: ' + E.Errors[i].
Message);
end;
end;
end;
if not(BDE_found)
then
begin
BDEAdmin.Free;
BDEAdmin :=
nil;
Close;
end;
end;
on E:
Exception do
begin
ShowMessage('
Exception Error:'
+ #13#10 + '
Class: ' + E.ClassName
+ #13#10 + '
Message: ' + E.
Message);
BDEAdmin.Free;
BDEAdmin :=
nil;
Close;
end;
end
finally
ShowMessage('
no errrror');
BDEAdmin.Close;
BDEAdmin.AliasName := '
DataBaseName';
BDEAdmin.DatabaseName := '
DataBaseName';
BDEAdmin.DriverName := '
STANDARD';
BDEAdmin.Open;
// hier kommt auch kein Fehler
BDEAdmin.Free;
BDEAdmin :=
nil;
end;
end;
hat dazu jemand eine Lösung ?