Das Forentreffen 2018 findet am 20./21. April in Dresden statt. Weitere Infos hier
Zur Homepage des Deutschsprachige Xbase-Entwickler e. V.
Xbase++-Wiki des Deutschsprachige Xbase-Entwickler e. V.

Sinn/Zweck einer Funktion

Eigentlich ist mir die Frage peinlich, aber es kann sonst niemand helfen ... :)

Moderator: Moderatoren

Antworten
Wonderer
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 107
Registriert: Do, 06. Jul 2006 13:24

Sinn/Zweck einer Funktion

Beitrag von Wonderer » Do, 07. Apr 2016 14:53

Hallo,

im mir vorliegenden Code habe ich eine Funktion gefunden die einen interessanten Namen hat und aus der ich aber trotz Kürze nicht schlau werde.

Vielleicht hat jemand eine Idee wofür das gut sein soll?

Code: Alles auswählen

*****************
function Fpos_bug
*****************
local Mrel:=DbRSelect(1),;
      Mselect

if Mrel#0
 Mselect:=select()
 select (Mrel)
 if .not. eof()
  DbGoto( recno())
 endif
 select (Mselect)
endif
return (NIL)
Das mit den Relations im XBase muss ich mir noch anschauen, habe ich gerade gestern das erste mal davon gelesen.

georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1921
Registriert: Fr, 08. Feb 2008 21:29

Re: Sinn/Zweck einer Funktion

Beitrag von georg » Do, 07. Apr 2016 15:10

Hallo,


wahrscheinlich wird mit der Funktion ein Positionierungsbug (möglicherweise auch nur aus der Sicht des Programmierers) behoben.

Möglicherweise soll hier der Datensatz in der abhängigen Datei aktualisiert werden, was in einem Netzwerkumfeld nicht automatisch passiert, wenn an einem anderen PC Änderungen vorgenommen werden.

Durch das Positionieren auf den gleichen Satz werden die Feldinhalte neu aus der Datei gelesen. Ohne die Positionierung werden die Feldinhalte aus dem (möglicherweise) veralteten Puffer gelesen.
Liebe Grüsse aus der Eifel,

Georg

Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1813
Registriert: Do, 14. Aug 2008 0:22
Wohnort: Gmunden am Traunsee, Österreich
Kontaktdaten:

Re: Sinn/Zweck einer Funktion

Beitrag von Herbert » Do, 07. Apr 2016 15:54

Falls in area(1) eine tabelle geöffnet wird, wird dort der bereits aktuelle Datensatz nochmals gelesen.
Wie Georg vermutet, war vielleicht einmal ein Problem mit der Positionierung, das mir allerdings nicht bekannt ist.
Grüsse Herbert
Immer in Bewegung...

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 13753
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Sinn/Zweck einer Funktion

Beitrag von brandelh » Do, 07. Apr 2016 16:04

da von BUG und REL die Rede ist betrifft es wohl den Bug in der RELEATION, der in 1.80 oder 1.82 enthalten war.
Die 1.90.331 hat den nicht mehr.

Auch ich war damals davon betroffen ...

1. Hauptsatz, wird angesprungen und angezeigt.
2. In der abhängigen Datei sind z.B. 3 Sätze zu diesem enthalten.
3. Der Anwender blättert zum 2. oder 3. ... und will nun Daten ändern (auf dem Monitor sind Daten aus dem Hauptsatz und dem abhängigen ...
4. Das Programm sperrt den Haupt und den gewählten Kinddatensatz und schreibt die Änderungen weg ...

leider hat aber der RLOCK() des Hauptsatzes, ein automatisches dbSeek() des Kindsatzes durchgeführt ...

und die Kinddaten wurden in den ersten statt dem richtigen geschrieben ...
Gruß
Hubert

Wonderer
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 107
Registriert: Do, 06. Jul 2006 13:24

Re: Sinn/Zweck einer Funktion

Beitrag von Wonderer » Fr, 08. Apr 2016 9:43

danke!

@Hubert Ok, ich glaube das habe ich verstanden :)

Antworten