Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi [BDE] Prüfen, ob Datensatz gesperrt ist (https://www.delphipraxis.net/131064-%5Bbde%5D-pruefen-ob-datensatz-gesperrt-ist.html)

HeikoAdams 18. Mär 2009 07:40

Datenbank: Paradox • Version: 7 • Zugriff über: BDE

[BDE] Prüfen, ob Datensatz gesperrt ist
 
Hallo,
ich kämpfe bei einer älteren BDE-Anwendung zur Zeit mit folgendem Phänomen:
Nachdem ein Datensatz mittels Table.Edit bearbeitet wird, liefern Table.CanModify True und DbiIsRecordLocked False zurück. Dies hat dummerweise zur Folge, das es immer zu einer Exception kommt, sobald jemand anderes den selben Datensatz bearbeiten möchte.

Hat hier jemand eine Idee, wie ich CanModify bzw DbiIsRecordLocked dazu bewegen kann, das "richtige" Ergebnis zurück zu liefern?

Gruß

Heiko

hoika 18. Mär 2009 08:35

Re: [BDE] Prüfen, ob Datensatz gesperrt ist
 
Hallo,

meistens liegt es an einer falschen BDE-Konfiguration.
Wohin zeigt denn dein NET DIR auf den einzelnen Rechnern ?

Wenn du Windows als "Server" benutzt, hast du eh verloren,
vielleicht hilft das Deaktivieren der oplocks (google) weiter.

Bremst aber das ganze System aus.


Stichwort: Exception: welche kommt denn ?

Vielleicht hilft das hier ja.

Delphi-Quellcode:
bCanEdit:= False;
try
  Table.Edit:= True;
  bCanEdit:= True;
except
end;

Heiko

HeikoAdams 18. Mär 2009 08:52

Re: [BDE] Prüfen, ob Datensatz gesperrt ist
 
Zitat:

Zitat von hoika
Stichwort: Exception: welche kommt denn ?

Hallo, der Text der Exception lautet:
Zitat:

Datensatz von anderem Anwender gesperrt
Tabelle: T:\FERNVERKEHR\PARADOX\LL.DB
Benutzer: admin.

HeikoAdams 18. Mär 2009 09:02

Re: [BDE] Prüfen, ob Datensatz gesperrt ist
 
Zitat:

Zitat von hoika
meistens liegt es an einer falschen BDE-Konfiguration.
Wohin zeigt denn dein NET DIR auf den einzelnen Rechnern ?

Das NetDir zeigt auf ein gemaptes Verzeichnis auf einem Windows Server. Der Laufwerksbuchstabe ist auf allen Maschinen identisch.

Zitat:

Zitat von hoika
Wenn du Windows als "Server" benutzt, hast du eh verloren,

Wie meinst Du das jetzt?

mkinzler 18. Mär 2009 09:13

Re: [BDE] Prüfen, ob Datensatz gesperrt ist
 
Zitat:

hoika hat folgendes geschrieben:
Wenn du Windows als "Server" benutzt, hast du eh verloren,

Wie meinst Du das jetzt?
Die BDE wurde für ein Novellnetz entwickelt.

hoika 18. Mär 2009 17:51

Re: [BDE] Prüfen, ob Datensatz gesperrt ist
 
Hallo,

dann nimm meinen Code zum Feststellen,
ob der Daten-Satz aktuell bearbeitet wird.


Zu Windows als Server:
Windows versucht wegen der Performance viel zu Cachen,
Paradox kommt damit aber oft nicht klar.


Heiko


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:51 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz