| |

Fortgeschrittene ProgrammierungProblem 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...  |  |
 | 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 |
  |
|
sevISDN 1.0 
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) sevGraph (VB/VBA) 
Grafische Auswertungen
Präsentieren Sie Ihre Daten mit wenig Aufwand in grafischer Form. sevGraph unterstützt hierbei Balken-, Linien- und Stapel-Diagramme (Stacked Bars), sowie 2D- und 3D-Tortendiagramme und arbeitet vollständig datenbankunabhängig! Weitere Infos
|
|
|
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
|
|