set order to in "Do While" Schleife [erledigt]

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
Benutzeravatar
Wolfgang_B
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 484
Registriert: Do, 14. Jun 2007 18:22
Wohnort: 94065 Waldkirchen
Hat sich bedankt: 14 Mal
Danksagung erhalten: 5 Mal

set order to in "Do While" Schleife [erledigt]

Beitrag von Wolfgang_B »

Folgendes Problem.

ich habe 2 Tabellen geöffnet

use DDB1
index 1,2,3,4

use DB2
index 1,2,3

DO WHILE !EOF()

Hier werden Daten aus DB1 und DB2 verarbeitet
zur Prüfung eine Feldes muss ich auf einen Index z.B. DB1 index 3 zugreifen

Wie ist denn hier der Syntax für "SET ORDER TO .... " ?


DBSKIP()
ENDDO

Man könnte das bestimmt über SELECT() realisieren. Aber das geht doch bestimmt eleganter?
Zuletzt geändert von Wolfgang_B am Do, 19. Jul 2018 23:08, insgesamt 1-mal geändert.
Beste Grüße
Wolfgang

Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: set order to in "Do While" Schleife

Beitrag von Wolfgang Ciriack »

Den Index solltest du schon vor der Schleife setzen.

Code: Alles auswählen

db1->(DbSetOrder(1))
do while !db2->(eof())
    if db1->(dbseek(wasauchimmer))
....
    endif
   db2->(dbskip())
enddo
Oder du suchst mit bei dbseek mit indexnummer

Code: Alles auswählen

db1->(dbseek(wasauchimmer,.F.,1))
Viele Grüße
Wolfgang
Benutzeravatar
Wolfgang_B
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 484
Registriert: Do, 14. Jun 2007 18:22
Wohnort: 94065 Waldkirchen
Hat sich bedankt: 14 Mal
Danksagung erhalten: 5 Mal

Re: set order to in "Do While" Schleife

Beitrag von Wolfgang_B »

Danke!
Beste Grüße
Wolfgang

Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: set order to in "Do While" Schleife [erledigt]

Beitrag von Jan »

Ich habe mir vor einiger Zeit schon angewöhnt, bei einem DbSeek() grundsätzlich den dazugehörigen Index anzugeben. Dann muß ich mich nicht darüm kümmern, ob ich weiter oben irgendwann man den führenden Index ändere, womit das spätere Seek nicht mehr klappen würde. Und außerdem spare ich mit ein ständiges OrdSetFocus() hin-und-her, nur weil ich zwischendurch mal was auf einem anderen Index suchen will.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Wolfgang_B
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 484
Registriert: Do, 14. Jun 2007 18:22
Wohnort: 94065 Waldkirchen
Hat sich bedankt: 14 Mal
Danksagung erhalten: 5 Mal

Re: set order to in "Do While" Schleife [erledigt]

Beitrag von Wolfgang_B »

hast recht. Gute Methode -> btw. wer die Hilfe lesen kann ist durchaus im Vorteil #-o
Beste Grüße
Wolfgang

Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
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: set order to in "Do While" Schleife [erledigt]

Beitrag von brandelh »

Kann aber gefährlich werden, wenn man das vergisst und danach mit do while ! eof() ... durch die Datei skipped und die Reihenfolge nicht wie erwartet ausfällt ;-)
Gruß
Hubert
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: set order to in "Do While" Schleife [erledigt]

Beitrag von Jan »

Hubert,

:-) Stimmt. In die Falle bin ichauch schon getappt. Da muß man natürlich aufpassen. Aber wenn man sich daran gewöhnt, den Index immer im DbSeek() einzubauen, dann ist auch ganz schnell die Gewohnheit da darauf zu achten, das man auch mal wirklich ein OrdSetFocus() machen muß. Das geht inzwischen schon ganz automatisch.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Antworten