AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Schreibschutz für Access-Tabellen
Thema durchsuchen
Ansicht
Themen-Optionen

Schreibschutz für Access-Tabellen

Ein Thema von Detlef · begonnen am 1. Nov 2004 · letzter Beitrag vom 11. Nov 2004
Antwort Antwort
Detlef

Registriert seit: 7. Sep 2003
Ort: Suhl
25 Beiträge
 
Delphi 7 Enterprise
 
#1

Schreibschutz für Access-Tabellen

  Alt 1. Nov 2004, 13:37
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
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: Schreibschutz für Access-Tabellen

  Alt 2. Nov 2004, 09:50
Zitat von Detlef:
wie kann ich eine Tabelle (und nur die) in einer MDB zum schreiben
sperren? Ich benutze zum Zugriff ADO.
Du kannst die Datenbank exclusiv öffnen oder du kannst eine *.MDW (Workgroup-Datei) verwenden
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;
Andreas
  Mit Zitat antworten Zitat
Detlef

Registriert seit: 7. Sep 2003
Ort: Suhl
25 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Schreibschutz für Access-Tabellen

  Alt 9. Nov 2004, 19:04
Danke für die Hinweise!
  Mit Zitat antworten Zitat
clues1

Registriert seit: 11. Feb 2004
97 Beiträge
 
#4

Re: Schreibschutz für Access-Tabellen

  Alt 11. Nov 2004, 15:57
Öffne deine Datenbank im Exclusiven Modus und legen ein Datenbankkennwort drüber.
";Jet OLEDBatabase 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;
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz