Einzelnen Beitrag anzeigen

Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#1

Passwortgeschützte Access Datenbank erzeugen

  Alt 9. Jul 2008, 10:28
Datenbank: Access • Zugriff über: ADO
Hallo zusammen,

ich benutze bisher folgenden Code, um eine Access-Datenbank anzulegen.

Delphi-Quellcode:
const
  C_CONNECTION_STRING = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s';
  ....
  //Datenbank erzeugen
  if not SameText(LPath, '') then
  begin
    try
      LCatalog := CreateOleObject('ADOX.Catalog');
      LConnectionString := Format(C_CONNECTION_STRING, [LPath]);
      LCatalog.Create(LConnectionString);
      LCatalog := Unassigned;
      result := FileExists(LPath);
    except
      on e: Exception do
      begin
        MessageDlg(LoadResString(@SCannotCreateDatabase), mtError, [mbOK], 0);
        Result := false;
        Exit;
      end;
    end;
  end;
....
Dies funktioniert auch gut.

Jetzt wollte ich die erzeugte Datenbank mit einem Passwort versehen, damit man diese
Datenbank nicht in Access öffnen kann.

Wenn ich den Connectionstring folgendermassen ändere

Delphi-Quellcode:
const
  C_CONNECTION_STRING = 'Provider=Microsoft.Jet.OLEDB.4.0;' +
                        'Jet OLEDB:Database Password="%s";' +
                        'Data Source=%s;' +
                        'Persist Security Info=True';

  C_PASSWORD = '1234567890'

...
  LCatalog := CreateOleObject('ADOX.Catalog');
  LConnectionString := Format(C_CONNECTION_STRING, [C_PASSWORD, LPath]);
  LCatalog.Create(LConnectionString);
...
bekomme ich dei Fehlermeldung

"Fehler bei einem aus mehreren Schritten bestehenden OLE DB-Vorgang. Prüfen Sie die einzelnen OLE DB-Statuswerte, falls vorhanden. Daten wurden nicht verarbeitet"

Was mach ich falsch?
Der Connectionstring sieht eigentlich richtig aus.
Hängt es vielleicht damit zusammen, das ich die Datenbank über ein COM-Objekt erzeugen lasse?
Levent Yildirim
Erzeugung von Icons aus Bildern:IconLev
  Mit Zitat antworten Zitat