Zum Inhalt springen

Programmieren mit dBASE PLUS: Funktionen: lockSet

Aus Wikibooks


Mit dieser Methode wird versucht, den gesamten Datensatzbereich zu sperren.

Syntax

[Bearbeiten]

<oReferenz>.lockSet( )

<oReferenz>

Der zu sperrende Datensatzbereich.

Eigenschaft von

[Bearbeiten]

Rowset

Beschreibung

[Bearbeiten]

Mit lockSet( ) können Sie versuchen, den gesamten Datensatzbereich zu sperren. Die Sperrung kann nicht vorgenommen werden, wenn ein Datensatz oder der ganze Bereich bereits von einem anderen Benutzer gesperrt wurde.

Die Sperrung von Datensatzbereichen basiert auf der Arbeitssitzung. Sobald der Aufruf von lockSet( ) einmal erfolgreich ausgeführt wurde, sind auch alle weiteren lockSet( )-Anforderungen erfolgreich, die diesen Datensatzbereich aus der Menge der Abfrage-Datensatzbereiche derselben Arbeitssitzung aufrufen. Damit die Sperrung von Datensatzbereichen korrekt funktioniert, müssen Query-Objekte verschiedenen Session-Objekten zugeordnet sein.

Das Sperren des Datensatzbereichs entspricht nicht dem exklusiven Zugreifen auf die Tabelle. Exklusiver Zugriff bedeutet, daß Sie die Tabelle als einziger Benutzer geöffnet haben. Im Gegensatz dazu können die anderen Benutzer diesen Datensatzbereich anzeigen, aber nicht ändern.

lockSet( ) gibt den Wert True zurück, falls die Sperre erfolgreich durchgeführt wurde. Andernfalls wird der Wert False zurückgegeben.

Die Unterstützung von Datensatzbereichsperren richtet sich nach dem Tabellentyp. Bei Standardtabellen (DBF und DB) sowie einigen SQL-Servern wird die Sperrung von Datensatzbereichen voll unterstützt. Bei den meisten SQL-Servern ist dies jedoch nicht der Fall. Bei Servern, die keine echten Sperren unterstützen, emuliert die Borland Database Engine ein optimistisches Sperrschema. Für jede Anforderung einer Sperre wird Erfolg vorausgesetzt. Wenn später der tatsächliche Versuch der Datenänderung erfolgt, kommt es zu einem Fehler, wenn die Daten seit dem Sperrversuch geändert wurden.