AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Prüfe vor Post, ob der Datensatz gesperrt ist
Thema durchsuchen
Ansicht
Themen-Optionen

Prüfe vor Post, ob der Datensatz gesperrt ist

Ein Thema von Ackerjan · begonnen am 25. Aug 2008 · letzter Beitrag vom 26. Aug 2008
Antwort Antwort
Seite 1 von 2  1 2      
Ackerjan

Registriert seit: 4. Jun 2007
Ort: Potsdam
17 Beiträge
 
Delphi 2009 Enterprise
 
#1

Prüfe vor Post, ob der Datensatz gesperrt ist

  Alt 25. Aug 2008, 15:46
Datenbank: Informix • Version: 10 • Zugriff über: Borland Database Engine
Hallo,

ich habe das folgende Problem:

Ein Teil der Anwendungsumgebung in der ich programmiere nutzt eine nicht sehr verbreitete 4GL-sprache. Will man in dieser Sprache einen Datensatz bearbeiten nutzt man einen Update-Cursor. Dieser sorgt dafür, dass ein Datensatz auf der Informixdatenbank explizit gesperrt wird, während man damit arbeitet.

Nun will ich auf der Tabelle über ein TTable-Objekt mehrere Datensätze mit meinem Delphiprogramm ändern. Das klappt solange, bis ich ein Post auf den gesperrten Satz mache.(logisch).

Nun meine Fragen.

Gibt es eine "einfache" Möglichkeit vorher zu erfragen, ob der Datensatz gesperrt ist?
Kann ich den exclusiven Zugriff auf einen bestimmten Datensatz erzwingen (Nicht die ganze Tabelle sperren!)?
Oder kann ich zumindest gezielt in einem try except -Block den Informix-Fehler abfangen?
Oder könnt Ihr mir irgendwie anders weiterhelfen?


Der folgende Versuch lieferte leider nicht den richtigen Fehler!
-107 = [ISAM error: record is locked.] Diese wurde zwar in der EDB.Message als unknown error message number '-107' angezeigt. Der NativeErrorCode war leider falsch (-243).

except
on EDB: EDBEngineError do
begin
for i := 0 to EDB.ErrorCount -1 do
begin
if EDB.Errors[i].NativeError = -107 then
probiere_es_nochmal;
end;
end;

Anmerkung: Ich arbeite mit der BDE und Informix.
Jan
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Prüfe vor Post, ob der Datensatz gesperrt ist

  Alt 25. Aug 2008, 15:57
Warum BDE?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von SubData
SubData

Registriert seit: 14. Sep 2004
Ort: Stuhr
1.078 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Prüfe vor Post, ob der Datensatz gesperrt ist

  Alt 25. Aug 2008, 16:15
Zitat von mkinzler:
Warum BDE?
Sehr hilfreich...

Dieses BDE-Bashing nervt...
Ronny
/(bb|[^b]{2})/
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Prüfe vor Post, ob der Datensatz gesperrt ist

  Alt 25. Aug 2008, 16:17
Gern geschehen.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer
Online

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Prüfe vor Post, ob der Datensatz gesperrt ist

  Alt 25. Aug 2008, 16:21
Zitat von SubData:
Zitat von mkinzler:
Warum BDE?
Sehr hilfreich...

Dieses BDE-Bashing nervt...
Ein Teil seiner Probleme liegen höchstwahrscheinlich in der BDE begründet (Fehlerhaftes Fehlermapping). Und wenn es erste Gehversuche mit einem praktisch in der Entwicklung gestorbenen System handelt dann sollt man dieses Hinterfragen.

Ach ja. Wieso hilfst du nicht? Dieses BDE-Bashing-Bashing ohne selbst zu helfen nervt
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Ackerjan

Registriert seit: 4. Jun 2007
Ort: Potsdam
17 Beiträge
 
Delphi 2009 Enterprise
 
#6

Re: Prüfe vor Post, ob der Datensatz gesperrt ist

  Alt 25. Aug 2008, 16:28
Warum BDE ist einfach beantwortet! Weil es hier seit sehr langer Zeit eingesetzt wird!
Der Umstieg auf ADO, das umprogrammieren der Komponenten usw. wird wohl ein neues Projekt .

Frage bezeiht sich also auf die BDE!
Jan
Niemals aufgeben, niemals kapitulieren! - galaxy quest
  Mit Zitat antworten Zitat
Benutzerbild von SubData
SubData

Registriert seit: 14. Sep 2004
Ort: Stuhr
1.078 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Prüfe vor Post, ob der Datensatz gesperrt ist

  Alt 25. Aug 2008, 16:32
Zitat von Bernhard Geyer:
Ach ja. Wieso hilfst du nicht? Dieses BDE-Bashing-Bashing ohne selbst zu helfen nervt
Einfach zu beantworten: Weil ich es an dieser Stelle nicht kann.
Ich wollte ihn auch nicht persönlich angreifen, aber es ist nunmal sehr "anstrengend" in jedem Thread über/mit BDE zu lesen, dass die BDE tot ist und jeder 3. fragt erstmal nach, warum denn nicht DatenbankTreiberXYZ verwendet wird.

Natürlich ist die BDE tot. Das wissen auch eigentlich alle.
Aber die Leute, die damit noch arbeiten (müssen) werden schon ihre Gründe haben und ich finde es einfach nicht richtig jedem gleich an den Kopf zu werfen, dass er gefälligst die BDE weglassen soll (Was ggf. 1000e Stunden Arbeit bedeuten würde).

Tschuldigung fürs OT und tschuldigung, falls sich jemand angegriffen gefühlt hat!
Ronny
/(bb|[^b]{2})/
  Mit Zitat antworten Zitat
Benutzerbild von HeikoAdams
HeikoAdams

Registriert seit: 12. Jul 2004
Ort: Oberfranken
661 Beiträge
 
FreePascal / Lazarus
 
#8

Re: Prüfe vor Post, ob der Datensatz gesperrt ist

  Alt 25. Aug 2008, 16:32
Vielleicht hilft Dir die CanModify-Eigenschaft von TDataSet weiter:
Zitat:
Gibt an, ob die Datenmenge Schreibzugriffe auf Daten zulässt.
Jeder kann ein Held werden und Leben retten!
Einfach beim NKR oder der DKMS als Stammzellenspender registrieren! Also: worauf wartest Du noch?
  Mit Zitat antworten Zitat
Benutzerbild von SubData
SubData

Registriert seit: 14. Sep 2004
Ort: Stuhr
1.078 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Prüfe vor Post, ob der Datensatz gesperrt ist

  Alt 25. Aug 2008, 16:34
Zitat von HeikoAdams:
Vielleicht hilft Dir die CanModify-Eigenschaft von TDataSet weiter:
Zitat:
Gibt an, ob die Datenmenge Schreibzugriffe auf Daten zulässt.
Die Daten sind doch aber änderbar, auch wenn der Datensatz gesperrt ist.
Sie können nur in dem Moment nicht zurück in die Datenbank geschrieben werden.

Oder sehe ich das falsch ?!
Ronny
/(bb|[^b]{2})/
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#10

Re: Prüfe vor Post, ob der Datensatz gesperrt ist

  Alt 25. Aug 2008, 16:36
Was ich auf die Schnelle ergooglen konnte, war das Programm onstat. Aber evtl. hilft Dir auch diese Seite schon mal ein wenig weiter.
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
Antwort Antwort
Seite 1 von 2  1 2      


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 12:35 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