Freigeben über


SQLEXEC( )-Funktion

Sendet eine SQL-Anweisung an die Datenquelle, in der die Anweisung verarbeitet wird.

SQLEXEC(nConnectionHandle, [cSQLCommand, [cCursorName]])

Rückgabewerte

Numerisch

Parameter

  • nConnectionHandle
    Gibt das Verbindungshandle der Datenquelle an, das von SQLCONNECT( ) zurückgegeben wird.

  • cSQLCommand
    Gibt die an die Datenquelle übergebene SQL-Anweisung an.

    Die SQL-Anweisung kann eine parametrisierte WHERE-Klausel enthalten, die eine Sicht mit Parametern erstellt. Vor der Eingabe von SQLEXEC( ) müssen alle Parameter der WHERE-Klausel definiert werden. Handelt es sich bei den Parametern beispielsweise um Variablen, müssen diese Variablen vor der Eingabe von SQLEXEC( ) erstellt und initialisiert werden.

    Weitere Informationen zum Erstellen von parametrisierten Sichten (Ansichten) finden Sie unter Erstellung von Ansichten.

  • cCursorName
    Gibt den Namen des Visual FoxPro-Cursors an, an den das Resultset gesendet wird. Wenn Sie keinen Cursornamen angeben, verwendet Visual FoxPro den Standardnamen SQLRESULT.

    Bei mehreren Resultsets werden neue Cursornamen durch Anhängen einer erhöhten Zahl an den Namen des ersten Cursors erstellt.

Hinweise

SQLEXEC( ) gibt die Zahl der Resultsets zurück, wenn es sich um mehr als ein Resultset handelt. Wenn der SQLEXEC( )-Befehl noch ausgeführt wird, gibt er 0 zurück. Wenn die Ausführung beendet ist, gibt der Befehl 1 zurück. SQLEXEC( ) gibt -1 zurück, wenn ein Fehler auf Verbindungsebene auftritt.

Wenn mit SQLEXEC( ) eine mit SQLPREPARE( ) vorbereitete SQL-Anweisung ausgeführt wird, ist lediglich das Verbindungshandle-Argument nConnectionHandle erforderlich. Die cSQLCommand- und CursorName-Argumente sollten nicht angegeben werden.

Wenn die SQL-Anweisung nur ein Resultset erzeugt, speichert SQLEXEC( ) dieses Resultset im angegebenen Visual FoxPro-Cursor. Wenn die SQL-Anweisung zwei oder mehr Resultsets erzeugt und SQLSETPROP( ) auf 1 (Stapelmodus) gesetzt ist, können Sie jedes Resultset benennen. Setzen Sie dazu die BatchMode-Option von SQLSETPROP( ) auf 0, und ändern Sie den Cursornamen bei jedem Aufruf von SQLMORERESULTS( ).

SQLEXEC( ) gehört zu den vier Funktionen, die Sie entweder synchron oder asynchron ausführen können. Die Asynchronous-Einstellung von SQLSETPROP( ) legt fest, ob diese Funktionen synchron oder asynchron ausgeführt werden. Im Asynchronmodus müssen Sie SQLEXEC( ) wiederholt aufrufen, bis ein anderer Wert als 0 (wird noch ausgeführt) zurückgegeben wird.

Beispiel

Im folgenden Beispiel wird davon ausgegangen, dass SQLCONNECT( ) erfolgreich ausgeführt und der entsprechende Rückgabewert in der Speichervariablen gnConnHandle gespeichert wird.

Mit SQLEXEC( ) wird eine Abfrage erstellt, die alle Informationen aus der Tabelle authors in den Cursor MyCursor zurückgibt.

= SQLSETPROP(gnConnHandle, 'asynchronous', .F.)
= SQLEXEC(gnConnHandle, 'SELECT * FROM authors', 'MyCursor')

Siehe auch

AERROR( ) | SQLCANCEL( ) | SQLGETPROP( ) | SQLMORERESULTS( ) | SQLPREPARE( ) | SQLSETPROP( )