<< Inhaltsverzeichnis Suchen >>

ODBC_EXTFETCH

Funktion

Syntax:

ODBC_EXTFETCH(<DATEI-NUMMER>,<MODUS>,<ZEILE>,
                                    &<STATUS>)

<DATEI-NUMMER>       = <NUM-AUSDRUCK>
<MODUS>                        = <NUM-AUSDRUCK>
<ZEILE>                            = <NUM-AUSDRUCK>
<STATUS>                         = <NUM-VARIABLE>%

Bedeutung:

Mit diesem erweiterten FETCH können die Daten eines SELECT nicht nur einmal vorwärts durchblättert werden, sondern es kann beliebig positioniert und vor- und rückwärts geblättert werden.

ODBC_EXTFETCH liefert als Ergebnis 0, wenn kein Fehler auftrat.

Trat ein Fehler auf, so hat die Variable OK einen Wert > 0. Ist OK=1700, so liefert die Funktion ODBC_GET_LAST_ERROR$ den Fehlertext.

 

 

Achtung: Nach einem erfolgreichen SELECT kann nur wahlweise entweder ODBC_FETCH oder ODBC_EXTFETCH benutzt werden.

 

 

Achtung: ODBC_EXTFETCH wird nicht von allen ODBC-Treibern unterstützt (zum Beispiel nicht von DBASE). In diesem Fall liefert diese Funktion die Fehler-Meldung "Driver not capable".

 

Bedeutung der Parameter:

 

<MODUS>

 

 

1
2
3
4
5
6

sonst

den ersten Satz holen
den letzten Satz holen
den nächsten Satz holen
den vorherigen Satz holen
absolut auf die Zeile <ZEILE> positionieren
<ZEILE> > 0: um <ZEILE> Zeilen vorwärts positionieren
<ZEILE> < 0: um <ZEILE> Zeilen rückwärts positionieren
den nächsten Satz holen

Achtung: Bei dynamischen Cursorn kann der Modus 5 nicht benutzt werden. Bei Forward-Only-Cursorn kann nur der Modus 3 benutzt werden

 

 

 

<ZEILE>

Zeilen-Nummer für <MODUS> = 5 und 6

 

<STATUS>

liefert den Zustandscode der geholten Zeile.

 

0
1
2
3
4
-1

Zeile erfolgreich gelesen und auf aktuellem Stand
Zeile wurde seit dem letzten Lesen verändert.
Zeile wurde seit dem letzten Lesen gelöscht.
Zeile wurde seit dem letzten Lesen hinzugefügt.
Es trat ein Fehler beim Holen der Zeile auf.
Undefinierter Zustand

Beispiel:

H % = ODBC_EXTFETCH(3,1,0,&STATUS%)
IF H% <> 0
THEN    IF OK = 1700
               THEN ERRORMES = ODBC_GET_LAST_ERROR$
               ENDIF
ELSE     IF STATUS% <> 0
               THEN ... /* Zeile nicht auf aktuellem Stand
ENDIF

siehe auch:

ODBC_FETCH, ODBC_EXEC_DIRECT, ODBC_SET_CURSORTYPE