vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Problem bei Datensatz sperren 
Autor: Reinski
Datum: 15.06.03 17:02

Hi Leute,

ich hab grad ein verzwicktes Problem:
Ich verwende VB6, Access2000 und DAO3.6 .
Mein Ziel ist es, einen Datensatz in der DB zu sperren und ich hatte das auch schon erfolgreich realisiert.
Und zwar folgendermaßen:
Die (selbstgeschriebene) Sperr-Funktion liefert einen Recordset zurück, der sich im Edit Mode auf genau dem zu sperrenden Datensatz befindet und auch nur diesen Datensatz enthält.
Damit wegen der 2kB-seitenweisen Sperrung nicht mehr als dieser Datensatz gesperrt wird, hatte ich auch dafür gesorgt, dass die Datensätze immer genau 2kB groß sind.

Das hatte prima funktioniert, diverse User konnten an unterschiedlichen PCs gezielt Sätze sperren und sie (undnur sie!) blieben für die anderen User gesperrt, bis die Sperrung aufgehoben wurde (halt so, wie es sein soll ;) ).
Eine Sache konnte ich mir aber nicht erklären:
Testhalber hatte ich die DS Größe nur geschätzt (der Datensatz wurde mit Dummy-Textfeldern künstlich aufgebläht) und die Sache funktionierte schon sauber, auch wenn die DS-Größe deutlich unter 2kB lag.
Da mich es aber immer beunruhigt, nicht zu wissen, warum etwas funktioniert, hab ich mir die Sache nochmal angesehen und damit begann das Verhängnis:

Einige Textfelder in der Tabelle waren als UniCode-komprimiert definiert, weshalb ja die Größe in Bytes nicht mit der Textlänge identisch sein muss.
(Die Dummy Textfelder waren übrigens nicht betroffen...)
Also hab ich für die paar Felder UniCode-komprimierung ausgeschaltet und seit dem funktioniert gar nichts mehr!
Ist in der Tabelle ein einziger Satz, so kann dieser gesperrt werden.
Fügt jetzt ein anderer User einen weiteren Satz hinzu und sperrt diesen (das macht ja die o.g. Funktion, die einen RecSet im Edit-Modus übergibt), dann wird diese Sperrung nicht aktiv und der DS kann von anderen bearbeitet werden.

Hm, ich hoffe, es ist halbwegs verständlich, was ich meine und es wäre schön, wenn sich jemand erbarmt, der sich mit dieser Problematik schonmal beschäftigt hat. ;)
Gruß!

reinski

PS: Rein Code-mäßig und auch Objekt-Handling (RecSet) passt alles - zumal es ja auch schon funktioniert hat...

Immer noch auf der Suche nach dem "Tu's trotzdem"-Button...

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Problem bei Datensatz sperren815Reinski15.06.03 17:02
Wg: Problem bei Datensatz sperren584Reinski15.06.03 19:06
Re: Wg: Problem bei Datensatz sperren541unbekannt15.06.03 19:19
Re: Wg: Problem bei Datensatz sperren548Reinski15.06.03 19:41
Re: Wg: Problem bei Datensatz sperren511Reinski21.06.03 13:14
Re: Wg: Problem bei Datensatz sperren510Dietmar21.06.03 14:01

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel