Version 2004
ODBC SET PARAMETER (Objekt; ParamTyp)
Parameter | Typ | Beschreibung | |
Objekt | 4D Objekt | 4D Objekt (Variable, Array oder Feld) | |
ParamTyp | Lange Ganzzahl | Parametertyp |
Beschreibung
Mit dem Befehl ODBC SET PARAMETER können Sie in ODBC Anfragen eine 4D Variable, ein Array oder Wert eines Feldes verwenden.
Hinweis: Sie können den Namen des zu verwendenden 4D Objekts (Variable, Array oder Feld) im Text der Anfrage auch direkt zwischen << und >> einfügen (siehe Beispiel 1). Weitere Informationen dazu finden Sie im Abschnitt External Data Source Commands section.
- Im Parameter Objekt übergeben Sie das gewünschte 4D Objekt (Variable, Array oder Feld) für die Anfrage.
- Im Parameter ParamTyp übergeben Sie den Parameter vom Typ SQL. Sie können einen Wert übergeben oder eine der folgenden Konstanten unter dem Thema "Externe Datenquelle" verwenden:
Konstante | Typ | Wert |
OBDC Param In | Lange Ganzzahl | 1 |
OBDC Param In Out | Lange Ganzzahl | 2 |
OBDC Param Out | Lange Ganzzahl | 4 |
Der Wert des 4D Objekts ersetzt das Fragezeichen (?) in der SQL Anfrage (Standardsyntax).
Enthält die Anfrage mehr als ein Fragezeichen, muss der Befehl ODBC SET PARAMETER mehrmals aufgerufen werden. Die Werte der 4D Objekte werden in der Anfrage sequentiell zugewiesen, und zwar in Übereinstimmung mit der Ausführungsreihenfolge der Befehle.
Beispiele
1. Dieses Beispiel führt eine ODBC Anfrage aus, die direkt die zugewiesenen 4D Variablen aufruft:
C_TEXT(MyText) C_LONGINT(MyLongint) ODBC LOGIN("mysql";"root";"") SQLStmt:="insert into app_testTable (alpha_field, longint_field) VALUES (<<MyText>>, <<MyLongint>>)" For (vCounter;1;10) MyText:="Text"+String(vCounter) MyLongint:=vCounter ODBC EXECUTE(SQLStmt) End for
2. Dasselbe Beispiel wie oben, jedoch mit dem Befehl ODBC SET PARAMETER:
C_TEXT(MyText) C_LONGINT(MyLongint) ODBC LOGIN("mysql";"root";"") SQLStmt:="insert into app_testTable (alpha_field, longint_field) VALUES (?,?)" For (vCounter;1;10) MyText:="Text"+String(vCounter) MyLongint:=vCounter ODBC SET PARAMETER(MyText;ODBC Param In) ODBC SET PARAMETER(MyLongint;ODBC Param In) ODBC EXECUTE(SQLStmt) End for
3. Dieses Beispiel führt eine ODBC Anfrage aus, die direkt die zugewiesenen 4D Arrays verwendet:
ARRAY TEXT(MyTextArray;10) ARRAY LONGINT(MyLongintArray;10) For (vCounter;1;Size of array(MyTextArray)) MyTextArray{vCounter}:="Text"+String(vCounter) MyLongintArray{vCounter}:=vCounter End for ODBC LOGIN("mysql";"root";"") SQLStmt:="insert into app_testTable (alpha_field, longint_field) VALUES (<<MyTextArray>>, <<MyLongintArray>>)" ODBC EXECUTE(SQLStmt)
4. Dieses Beispiel führt eine ODBC Anfrage aus, die direkt die zugewiesenen 4D Felder verwendet:
ALL RECORDS([Table 2]) ODBC LOGIN("mysql";"root";"") SQLStmt:="insert into app_testTable (alpha_field, longint_field) VALUES (<<[Table 2]Field1>"+">, <<[Table 2]Field2>>)" ODBC EXECUTE(SQLStmt)
Systemvariablen oder Mengen
Bei korrekt ausgeführtem Befehl hat die Systemvariable OK den Wert 1, sonst den Wert 0 (Null).