AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi ADO Tabelle per Code Sperren und freigeben
Thema durchsuchen
Ansicht
Themen-Optionen

ADO Tabelle per Code Sperren und freigeben

Ein Thema von sventeq · begonnen am 26. Sep 2008 · letzter Beitrag vom 26. Sep 2008
Antwort Antwort
sventeq

Registriert seit: 15. Jul 2007
76 Beiträge
 
#1

ADO Tabelle per Code Sperren und freigeben

  Alt 26. Sep 2008, 09:44
Datenbank: Access • Version: 2003 • Zugriff über: ADO
Hallo zusammen,
ich habe ein Programm an dem mehrere Benutzer gleichzeitig arbeiten, daher muss ich eine Tabelle sperren und nach ablauf eines Algorithmus wieder freigeben. Ich hab hier schon gelesen, dass das per Lock funktionieren soll. Hat da jemand wohl einen Code? Hab ich hier leider nicht gefunden

Delphi-Quellcode:
 
  programmdb.ADOEintragsID.Open;
  
  programmdb.ADOEintragsID.First;
  eintragsID:=programmdb.ADOEintragsIDID.Value;

  programmdb.ADOEintragsID.Delete;
  try
    programmdb.ADOEintragsID.insert;
    programmdb.ADOEintragsIDID.Value:=eintragsID+1;
    programmdb.ADOEintragsID.Post;
  except
    MessageDlg('Fehler', mtError, [mbOK], 0);
  end;

  programmdb.ADOEintragsID.Close;
Während dieser Procedure muss ich die Tabelle ADOEintragsID sperren und wieder freigeben.
Wäre für jede Hilfe sehr dankbar
  Mit Zitat antworten Zitat
sventeq

Registriert seit: 15. Jul 2007
76 Beiträge
 
#2

Re: ADO Tabelle per Code Sperren und freigeben

  Alt 26. Sep 2008, 10:03
Kann mir da keiner helfen?
  Mit Zitat antworten Zitat
sventeq

Registriert seit: 15. Jul 2007
76 Beiträge
 
#3

Re: ADO Tabelle per Code Sperren und freigeben

  Alt 26. Sep 2008, 10:19
Wirklich niemand, der mir da wenigstens einen Tipp geben kann??
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#4

Re: ADO Tabelle per Code Sperren und freigeben

  Alt 26. Sep 2008, 10:21
Hallo,
Zitat von sventeq:
Kann mir da keiner helfen?
nur Geduld, wir sind doch keine D-Züge

Schau in der Hilfe mal nach TADOLockType, ltPessimistic sollte für Dich das passende sein.

Stephan
  Mit Zitat antworten Zitat
sventeq

Registriert seit: 15. Jul 2007
76 Beiträge
 
#5

Re: ADO Tabelle per Code Sperren und freigeben

  Alt 26. Sep 2008, 10:32
Zitat von nahpets:
Hallo,
Zitat von sventeq:
Kann mir da keiner helfen?
nur Geduld, wir sind doch keine D-Züge

Schau in der Hilfe mal nach TADOLockType, ltPessimistic sollte für Dich das passende sein.

Stephan
Sorry, bin da echt dran verzweifelt. Danke für deine Hilfe.

Wie schreibt man das dann im Code?
  programmdb.ADOEintragsID.LockType:=ltPessimistic; So vielleicht?
Und wie gibt man die Tabelle wieder frei oder passiert das nach der Bearbeitung des Datensatzes automatisch?
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#6

Re: ADO Tabelle per Code Sperren und freigeben

  Alt 26. Sep 2008, 10:44
Hallo,

der Code sollte richtig sein und die Tabelle solange gesperrt, bis die aktuelle Transaktion abgeschlossen ist.
Bitte ausprobieren, hab's selbst noch nicht benutzt und müsste jetzt auch raten.

so in der Art?
Delphi-Quellcode:
programmdb.ADOEintragsID.LockType := ltPessimistic;
programmdb.ADOEintragsID.Connection.BeginTrans;
...
programmdb.ADOEintragsID.Connection.CommitTrans;
Stephan
  Mit Zitat antworten Zitat
sventeq

Registriert seit: 15. Jul 2007
76 Beiträge
 
#7

Re: ADO Tabelle per Code Sperren und freigeben

  Alt 26. Sep 2008, 10:57
Zitat von nahpets:
Hallo,

der Code sollte richtig sein und die Tabelle solange gesperrt, bis die aktuelle Transaktion abgeschlossen ist.
Bitte ausprobieren, hab's selbst noch nicht benutzt und müsste jetzt auch raten.

so in der Art?
Delphi-Quellcode:
programmdb.ADOEintragsID.LockType := ltPessimistic;
programmdb.ADOEintragsID.Connection.BeginTrans;
...
programmdb.ADOEintragsID.Connection.CommitTrans;
Stephan
Da bekomme ich eine Fehlermeldung: Undefinierter Bezeichner: ltPessimistic
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: ADO Tabelle per Code Sperren und freigeben

  Alt 26. Sep 2008, 10:58
Die Unit ADOdb ist eingebunden?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
sventeq

Registriert seit: 15. Jul 2007
76 Beiträge
 
#9

Re: ADO Tabelle per Code Sperren und freigeben

  Alt 26. Sep 2008, 11:05
Zitat von DeddyH:
Die Unit ADOdb ist eingebunden?
Jetzt ja....
  Mit Zitat antworten Zitat
sventeq

Registriert seit: 15. Jul 2007
76 Beiträge
 
#10

Re: ADO Tabelle per Code Sperren und freigeben

  Alt 26. Sep 2008, 11:21
Vielen Dank für die Hilfe.
Eine Frage hab ich noch. Wenn der Datensatz dann gesperrt ist und ein anderer Benutzer dann zugreifen will, bekommt der dann eine Fehlermeldung mit "Der Datensatz ist momentan gesperrt" oder sowas, oder muss er einfach einen Moment länger warten bis der Datensatz wieder freigegeben ist.
Ich kann das im Moment nicht testen, da sich das Netzwerk in der Uni befindet und ich es nicht immer zur Verfügung habe.

sventeq
  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 07:57 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