Der FoxPro-Kompatible Skriptinterpreter
🔎
Newsletter
Der FoxPro-Kompatible Skriptinterpreter

sqlprepare

sqlprepare(SqlHandle AS Integer, CommandText AS String, [AliasName AS String?]) AS Integer


Bereitet eine Datenbankabfrage für die spätere Ausführung vor.

Mit der Funktion kann eine Datenbankabfrage auf einem SqlHandle zur späteren Ausführung vorbereitet werden. Anschließend kann die Abfrage mehrfach hintereinander ausgeführt werden, ohne dass der Abfragetext erneut angegeben werden muss.

Parameter SqlHandle

Das Handle auf dem die Abfrage vorbereitet werden soll. Auf einem Handle kann immer nur eine Abfrage zur Zeit vorbereitet werden. Wenn mehrere Abfragen vorbereitet werden sollen, muss die sqlexec-Funktion verwendet werden um ein vorhandenes Handle zu vervielfältigen.

  1
  2
  3
* Klonen eines Handles
LOCAL neuesHandle
neuesHandle = sqlconnect(altesHandle)

Parameter CommandText

Der Abfragetext der vorbereitet werden soll. Nachem die Funktion sqlprepare() einmal mit diesem Abfragetext vorbereitet wurde, kann die Abfrage mit der Funktion sqlexec() beliebig oft ausgeführt werden, ohne dass der Abfragetext erneut angegeben werden muss.

Rückgabewert

Falls das Vorbereiten der Abfrage nicht funktioniert hat liefert die Funktion -1 zurück, andernfalls 0, falls alles in Ordnung ist. Der genaue Fehler kann mit der Funktion aerror() abgerufen werden.

Beispiel

Das folgende Beispiel stellte eine Verbindung zu einer ODBC-Datenquelle her, bereitet eine Datenbankabfrage vor und führt die Anfrage anschließend mehrfach aus.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
*!* Beispiel
LOCAL conn, i
conn = sqlconnect("some_odbc_datasource_name")
sqlprepare(conn,"select somefield from sometable where somekey=?i","sqlresult")

*!* Ruft alle Datensätze nacheinander aus der Tabelle
*!* sometable von einer Datenquelle ab, die
*!* in dem Feld somekey den Wert i haben.
FOR i = 1 to 100
  sqlexec(conn)
  ? sqlresult.somefield
ENDFOR