Lesen von aktualisierten DB Inhalten [ERLEDIGT]
Moderator: Moderatoren
- Manfred
- Foren-Administrator
- Beiträge: 21199
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Lesen von aktualisierten DB Inhalten [ERLEDIGT]
Hi,
folgendes ist mir gerade aufgefallen:
1) Ich ändere ein Feld in einer Db und schreibe es zurück.
2) An der gleichen WS lese ich in einem anderen Programm dieses Feld ein und
3) bekomme den alten Wert zurück geliefert.
4) an einer anderen WS kann ich genau verfolgen, wie sich das Feld in der Db geändert hat. Also kann ich doch
5) davon ausgehen, das der Wert auch zurückgeschrieben wurde...
Also habe ich
6) ein DBSKIP(0) davor gesetzt, in der Hoffnung, das Feld würde jetzt den neuen Wert zurückliefern.
Nichts.
Dann habe ich DbRefresh() ausprobiert, aber das hilft auch nicht. Wenn ich im Debugger direkt das Feld anspreche, bekomme ich nur den alten Wert zurück, nicht den neuen.
folgendes ist mir gerade aufgefallen:
1) Ich ändere ein Feld in einer Db und schreibe es zurück.
2) An der gleichen WS lese ich in einem anderen Programm dieses Feld ein und
3) bekomme den alten Wert zurück geliefert.
4) an einer anderen WS kann ich genau verfolgen, wie sich das Feld in der Db geändert hat. Also kann ich doch
5) davon ausgehen, das der Wert auch zurückgeschrieben wurde...
Also habe ich
6) ein DBSKIP(0) davor gesetzt, in der Hoffnung, das Feld würde jetzt den neuen Wert zurückliefern.
Nichts.
Dann habe ich DbRefresh() ausprobiert, aber das hilft auch nicht. Wenn ich im Debugger direkt das Feld anspreche, bekomme ich nur den alten Wert zurück, nicht den neuen.
Zuletzt geändert von Manfred am Di, 25. Nov 2008 14:22, insgesamt 1-mal geändert.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1930
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Datenbank
Hallo Manfred,
machst du das verarbeiten mit einer xbp-Dialog-Maske ?
Wnn ja. Das Problem hatte ich hierbei auch mal. Ich habe dann die Maske neu gestartet und die Daten aus der Datenbank neu geladen.
gruß Rolf
machst du das verarbeiten mit einer xbp-Dialog-Maske ?
Wnn ja. Das Problem hatte ich hierbei auch mal. Ich habe dann die Maske neu gestartet und die Daten aus der Datenbank neu geladen.
gruß Rolf
- Manfred
- Foren-Administrator
- Beiträge: 21199
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Hi Rolf,
nein, es ist eine Methode, die einfach nur das Feld ausliest um mit dem Wert eine Berechnung anzustellen.
nein, es ist eine Methode, die einfach nur das Feld ausliest um mit dem Wert eine Berechnung anzustellen.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Manfred
- Foren-Administrator
- Beiträge: 21199
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Hi Klaus,
ein Commit? Auf welcher Station? Auf der die schreibt? Das kann ja direkt von einer anderen gelesen werden. Das ist es ja, was mich überlegen läßt, woran es liegen könnte. Die Daten werden anscheinend direkt geschrieben, aber das PRG arbeitet mit alten Daten. merkwürdig ist halt nur, dass Dbrefresh() wohl doch nicht den Cache neu erzeugt, wie ich es m.E. in der Anleitung verstanden habe.
PS: Ich lese gerade in der Knowledgebase, das es wohl mit DBrefresh() ein Problem gibt, es sollte stattdessen mit DBSkip(0) gemacht werden. Das habe ich zuerst probiert, klappt aber auch nicht.
ein Commit? Auf welcher Station? Auf der die schreibt? Das kann ja direkt von einer anderen gelesen werden. Das ist es ja, was mich überlegen läßt, woran es liegen könnte. Die Daten werden anscheinend direkt geschrieben, aber das PRG arbeitet mit alten Daten. merkwürdig ist halt nur, dass Dbrefresh() wohl doch nicht den Cache neu erzeugt, wie ich es m.E. in der Anleitung verstanden habe.
PS: Ich lese gerade in der Knowledgebase, das es wohl mit DBrefresh() ein Problem gibt, es sollte stattdessen mit DBSkip(0) gemacht werden. Das habe ich zuerst probiert, klappt aber auch nicht.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo Manfred,
vielleicht ein Problem in Deiner Methode? Die Daten werden gar nicht neu eingelesen und Du hast die alten Daten in Deinen Variablen?
Viele Grüße,
Martin
vielleicht ein Problem in Deiner Methode? Die Daten werden gar nicht neu eingelesen und Du hast die alten Daten in Deinen Variablen?
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Manfred
- Foren-Administrator
- Beiträge: 21199
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Hi Martin,
es wird ja direkt das Feld angesprochen db->feldname.
Ich hatte aber auch vorher auch mit Speichervars gearbeitet, die aktualisiert wurden. Es half nichts.
es wird ja direkt das Feld angesprochen db->feldname.
Ich hatte aber auch vorher auch mit Speichervars gearbeitet, die aktualisiert wurden. Es half nichts.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Manfred
- Foren-Administrator
- Beiträge: 21199
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Hi,
ich habe mal bei Alaska nachgefragt:
ich habe mal bei Alaska nachgefragt:
alles schön und gut, aber was mache ich jetzt wie? Ich kann in der Anleitung nichts finden.Im Ernst, das von Ihnen beschriebene Szenario deutet auf
ein Caching-Problem hin; teilweise scheinen die Workstations
bzw. Programme mit "alten" Daten zu schaffen.
Bitte sehen Sie sich doch einmal die Einstellung DBFDBE_LIFETIME
für DbeInfo() an. Zu Testzwecken würde ich diese einmal auf
0 setzen. Ändert dies etwas an dem von Ihnen beobachteten
Verhalten?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
hi
gruss by OHR
Jimmy
DBESYS.PRG ?Manfred hat geschrieben:alles schön und gut, aber was mache ich jetzt wie? Ich kann in der Anleitung nichts finden.Bitte sehen Sie sich doch einmal die Einstellung DBFDBE_LIFETIME
für DbeInfo() an. Zu Testzwecken würde ich diese einmal auf
0 setzen. Ändert dies etwas an dem von Ihnen beobachteten
Verhalten?
gruss by OHR
Jimmy
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9367
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Der Wert steht offenbar standardmäßig auf 50 (Millisekunden? Tage? Jahrzehnte?):
Code: Alles auswählen
? DbeInfo(COMPONENT_DATA,DBFDBE_LIFETIME)
Herzlich,
Tom
Tom
- Manfred
- Foren-Administrator
- Beiträge: 21199
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Hi Jimmy,
das ist schon Suuuper. In der dbesys.prg hätte ich das schon gemacht. Ich habe nur keine Vorstellung, wie ich den Parameter jetzt angeben muß.
Ich habe mal in der Anleitung gesucht, aber nichts gefunden.
DBEINFO(und was kommt hier wie rein?)
@Tom,
hätte ich mal noch ein paar Sekunden gewartet
das ist schon Suuuper. In der dbesys.prg hätte ich das schon gemacht. Ich habe nur keine Vorstellung, wie ich den Parameter jetzt angeben muß.
Ich habe mal in der Anleitung gesucht, aber nichts gefunden.
DBEINFO(und was kommt hier wie rein?)
@Tom,
hätte ich mal noch ein paar Sekunden gewartet
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Markus Walter
- Programmier-Gott
- Beiträge: 1018
- Registriert: Di, 24. Jan 2006 10:22
- Wohnort: Saarland
Hallo Manfred,
so:
für DBF (falls Du Fox verwendest entsprechend FOXDBE_LIFETIME)
so:
Code: Alles auswählen
DbeInfo(COMPONENT_DATA, DBFDBE_LIFETIME, 0)
Gruß
Markus
Mitglied der XUG Saarland-Pfalz
Markus
Mitglied der XUG Saarland-Pfalz
- Manfred
- Foren-Administrator
- Beiträge: 21199
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Hi,
habe ich so gemacht, hat aber nicht geholfen.
habe ich so gemacht, hat aber nicht geholfen.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
-
- Rookie
- Beiträge: 16
- Registriert: So, 29. Jan 2006 23:20
- Wohnort: Hilden
Hallo Manfred,
wir haben ewig Probleme mit Caching gehabt (schon unter Clipper) und irgendwann beschlossen, nach jeder zusammenhängenden Transaktion von Schreibzugriffen die betreffende(n) Tabelle(n) zu schließen und wieder zu öffenn. Dazu haben wir eine eigene COMMIT-Routine geschrieben, die alle geöffneten Indizes und Relationen sowie Record-Pointer ermittelt und diese nach dem Schließen und Öffnen einer Tabelle wiederherstellt. Nennenswerte Performance-Probleme haben wir damit nicht. Allerdings haben wir dies bei Verwendung von ADS wieder abgeschaltet, d.h. bei einer ADS-Verbindung führt die oben genannte Routine ein einfaches COMMIT aus.
Karlo
wir haben ewig Probleme mit Caching gehabt (schon unter Clipper) und irgendwann beschlossen, nach jeder zusammenhängenden Transaktion von Schreibzugriffen die betreffende(n) Tabelle(n) zu schließen und wieder zu öffenn. Dazu haben wir eine eigene COMMIT-Routine geschrieben, die alle geöffneten Indizes und Relationen sowie Record-Pointer ermittelt und diese nach dem Schließen und Öffnen einer Tabelle wiederherstellt. Nennenswerte Performance-Probleme haben wir damit nicht. Allerdings haben wir dies bei Verwendung von ADS wieder abgeschaltet, d.h. bei einer ADS-Verbindung führt die oben genannte Routine ein einfaches COMMIT aus.
Karlo
MfG
Karlo
Karlo
- Manfred
- Foren-Administrator
- Beiträge: 21199
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Hallo Karlo,
ich habe letzte Woche das Problem an den Support geschickt mit einem Beispiel dabei. Mal sehen, was die dazu sagen.
ich habe letzte Woche das Problem an den Support geschickt mit einem Beispiel dabei. Mal sehen, was die dazu sagen.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Manfred
- Foren-Administrator
- Beiträge: 21199
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Hi,
um die Sache etwas zu klären:
Das Grundprinzip klappt. Ich habe eine ähnliche Situation gestern durchlaufen und dabei wurde aktualisiert.
Jetzt muß ich nur irgendwann einmal die Muße finden und nachsehen, wo denn der Haken im oben genannten Programmteil liegt.
um die Sache etwas zu klären:
Das Grundprinzip klappt. Ich habe eine ähnliche Situation gestern durchlaufen und dabei wurde aktualisiert.
Jetzt muß ich nur irgendwann einmal die Muße finden und nachsehen, wo denn der Haken im oben genannten Programmteil liegt.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!