![]() |
Schreibschutz für Access-Tabellen
Hallo Delphianer,
wie kann ich eine Tabelle (und nur die) in einer MDB zum schreiben sperren? Ich benutze zum Zugriff ADO. Werhat einen Tip? Detlef |
Re: Schreibschutz für Access-Tabellen
Zitat:
um die Zugriffsrechte für ein bestimmtes Objekt(Tabelle, View, Bericht, ...) zu beschränken. Du kannst nicht wirklich eine Tabelle sperren. Dies wiederspräche dem Sinn einer Datenbank. (Stellt dir vor, ein Benutzer sperrt eine Tabelle, geht in die Pause und erleidet einen Herzinfarkt.) Damit deine Schreibaktionen von anderen Vorgängen isoliert werden, musst du Transaktionen benutzen.
Delphi-Quellcode:
ADOConnection1.BeginTrans;
try // hier deine Schreibaktionen ... ADOConnection1.CommitTrans; except ADOConnection1.RollbackTrans; Raise; end; |
Re: Schreibschutz für Access-Tabellen
Danke für die Hinweise!
|
Re: Schreibschutz für Access-Tabellen
Öffne deine Datenbank im Exclusiven Modus und legen ein Datenbankkennwort drüber.
";Jet OLEDB:Database Password=" Diese Funktion habe ich aus meine EDB Komponenten kopiert.
Code:
function TEDBConnect.SetAccessDB_Password(Filename: string; NewDBPassword: string; OldDBPassword: string = ''): boolean;
var objCatalog: OleVariant; ConnStr: String; OleConnect: OleVariant; Neu, Alt: String; begin result := false; LastErrorToZero; try Neu := 'NULL'; Alt := 'NULL'; ConnStr := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+Filename; ConnStr := ConnStr + ';Persist Security Info=True'; if OldDBPassword <> '' then begin ConnStr := ConnStr + ';Jet OLEDB:Database Password='+OldDBPassword; Alt := OldDBPassword; end; if NewDBPassword <> '' then begin Neu := NewDBPassword; end; OleConnect := CreateOleObject(ADOConn); OleConnect.CursorLocation := 3; // User client OleConnect.ConnectionString := trim(ConnStr); OleConnect.Mode := adModeShareExclusive; OleConnect.Open; OleConnect.Execute('ALTER DATABASE PASSWORD '+Neu+' '+Alt); OleConnect.Close; result := true; except on E: EOleException do ErrorToLastError(E); end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz