SQL EXECUTE

4D - Documentation   Français   English   German   English   4D Programmiersprache, Befehle nach Themen   4D Programmiersprache, Befehle alphabetisch   4D Programmiersprache, Konstanten nach Themen   Back   Previous   Next

Version 2004


SQL EXECUTE (SQLAnweisung{; GebundObj}{; GebundObj2; ...; GebundObjN})

ParameterTypBeschreibung
SQLAnweisungTextAuszuführender SQL Befehl
GebundObjVariable | FeldEmpfängt Ergebnis (wenn erforderlich)

Beschreibung

Mit dem Befehl SQL EXECUTE können Sie einen SQL Befehl ausführen und das Ergebnis mit 4D Objekten verbinden (Arrays, Variablen oder Felder).

Der Befehl wird nur ausgeführt, wenn der aktuelle Prozess eine gültige Verbindung enthält.

Der Parameter SQLAnweisung enthält den auszuführenden SQL Befehl, GebundObj empfängt das Ergebnis.

Variablen werden in der Reihenfolge der Spalten gebunden, d.h. verbleibende Spalten der SQL Anweisung ohne zugeordnete Variablen bleiben ausser Acht.

Werden in GebundObj als Parameter 4D Felder übergeben, erstellt der Befehl Datensätze und sichert sie automatisch.

4D Felder müssen aus derselben Tabelle stammen. Sie können nicht im gleichen Aufruf ein Feld aus Tabelle 1, ein weiteres Feld aus Tabelle 2 übergeben. In diesem Fall wird ein Fehler generiert.

Übergeben Sie in GebundObj 4D Arrays oder Variablen, sollten Sie diese vor Aufruf des Befehls deklarieren, um den Typ der bearbeiteten Daten zu überprüfen. Arrays werden bei Bedarf automatisch angepasst.

Mit einer 4D Variablen wird zur selben Zeit ein Datensatz geholt. Andere Ergebnisse werden ignoriert.

Weitere Informationen dazu finden Sie im Abschnitt SQL Befehle.

Beispiele

(1) In diesem Beispiel erhalten wir die Spalte ename der Tabelle emp der Datenquelle. Das Ergebnis wird gespeichert in der 4D Tabelle [employee]Name. 4D Datensätze werden automatisch angelegt:

   SQLStmt:="SELECT ename FROM emp"
   SQL EXECUTE(SQLStmt;[Employee]Name)
   SQL LOAD RECORD(SQL All Records)

(2) Um die Erstellung von Datensätzen zu prüfen, können Sie Code in eine Transaktion setzen und nur dann bestätigen, wenn die Operation zu einem zufriedenstellenden Ergebnis führt:

   SQL LOGIN("mysql";"root";"")
   SQLStmt:="SELECT alpha_field FROM app_testTable"
   START TRANSACTION
   SQL EXECUTE(SQLStmt;[Table 2]Field1)
   While(Not(SQL End Selection))
      SQL LOAD RECORD
      ...   `Setze hier Code zur Bestätigung der Daten
   End while
   VALIDATE TRANSACTION   `Transaktion bestätigen

(3) In diesem Beispiel erhalten wir die Spalte ename der Tabelle emp der Datenquelle. Das Ergebnis wird gespeichert im Array aName. Wir holen Datensätze in 10er Schritten.

   ARRAY STRING(30;aName;20)
   SQLStmt:="SELECT ename FROM emp"
   SQL EXECUTE(SQLStmt;aName)
   While(Not(SQL End Selection))
      SQL LOAD RECORD(10)
   End while

(4) In diesem Beispiel erhalten wir die Spalten ename und job der Tabelle emp für eine spezifische ID (WHERE Klausel) der Datenquelle. Das Ergebnis wird gespeichert in den 4D Variablen vName und vJob. Es wird nur der erste Datensatz erwartet.

   SQLStmt:="SELECT ename, job FROM emp WHERE id = 3"
   SQL EXECUTE(SQLStmt;vName;vJob)
   SQL LOAD RECORD

(5) In diesem Beispiel erhalten wir die Spalte Blob_Field der Tabelle Test in der Datenquelle. Das Ergebnis wird gespeichert in einer BLOB Variable, deren Wert bei jedem Laden eines Datensatzes aktualisiert wird

   C_BLOB(MyBlob)
   SQL LOGIN
   SQL EXECUTE("SELECT Champ_Blob FROM Test";MyBlob)
   While(Not(SQL End selection))
         `Wir sichten die Ergebnisse
      SQL LOAD RECORD
         `Der Wert von MyBlob wird bei jedem Aufruf aktualisiert.
   End while

Referenz

SQL LOAD RECORD.

Systemvariablen oder Mengen

Bei korrekt ausgeführtem Befehl hat die Systemvariable OK den Wert 1, sonst den Wert 0 (Null).


4D - Documentation   Français   English   German   English   4D Programmiersprache, Befehle nach Themen   4D Programmiersprache, Befehle alphabetisch   4D Programmiersprache, Konstanten nach Themen   Back   Previous   Next