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 »

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: 2821
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 94 Mal
Danksagung erhalten: 13 Mal

Re: Sinn/Zweck einer Funktion

Beitrag von georg »

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 S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1991
Registriert: Do, 14. Aug 2008 0:22
Wohnort: Gmunden am Traunsee, Österreich
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Sinn/Zweck einer Funktion

Beitrag von Herbert »

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: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Sinn/Zweck einer Funktion

Beitrag von brandelh »

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 »

danke!

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