sqlexec(SqlHandle AS Integer, [CommandText AS String, AliasName AS String, OutCountinfoArray AS Array@]) AS Integer
Sendet eine Anweisung an eine Datenquelle.
Es muss ein gültiges SqlHandle angegeben werden. SqlHandles können mit der sqlconnect-Funktion oder der sqlstringconnect-Funktion erstellt werden.
Hier wird der Anweisungstext angegeben der an die Datenquelle gesendet werden soll. Falls das SqlHandle mit der sqlprepare-Funktion vorbereitet wurde, muss kein Abfragetext mehr angegeben werden.
Mit diesem Parameter kann der Aliasname festgelegt werden unter dem das Ergebnis in der aktiven Datensitzung abgespeichert wird. Der Standardaliasname, falls keiner angegeben wird, lautet "sqlresult". Falls bereits ein Alias mit dieser Bezeichnung existiert, wird der vorhandene Arbeitsbereich automatisch geschlossen.
Ein Array kann per Referenz übergeben werden um die Information abzurufen, wie viele Datensätze betroffen sind. Wenn mehrere Abfragen an die Datenquelle gesendet werden, enthält das Array mehrere Zeilen. Die folgende Tabelle zeigt die in dem Array enthaltenen Spalten.
| Spalte |
Typ |
Inhalt |
| 1 | String |
Aliasname unter dem das Ergebnis abgespeichert wurde |
| 2 | Integer |
Anzahl der betroffenen Datensätze einer Anweisung |
Der Rückgabewert ist entweder eine positive ganze Zahl, die anzeigt, wie viel Ergebnisse produziert wurden, oder -1, wenn ein Fehler aufgetreten ist. Genauere Information zu dem Fehler können mit der aerror-Funktion abgefragt werden.
Einige Datenquellen erlauben es Anweisungen zu formulieren, die mehr als ein Ergebnis produzieren. In diesen Fällen zeigt der Rückgabewert der sqlexec-Funktion an, wie viele Ergebnisse produziert wurden. Die sqlexec-Funktion stellt standardmäßig alle Ergebnisse automatisch bereit. Dazu wird der angegebene Aliasname mit einer fortlaufenden Nummer, zum Beispiel auf "sqlresult2", erweitert.
Das folgende Beispiel sendet eine SQL-Anweisung an eine ODBC-Datenquelle und zeigt das Ergebnis anschließend auf dem Bildschirm an.
Um eine Datenbankabfrage mit Parametern auszuführen muss im Anweisungstext ein Fragezeichen, gefolgt von einem FoxPro-Ausdruck, angegeben werden. Das folgende Beispiel zeigt, wie in einer Abfrage FoxPro-Ausdrücke verwendet werden können.