versión 2004
SQL SET PARAMETER (objeto; tipoParam)
Parámetro | Tipo | Descripción | |
objeto | Objeto 4D | Objeto 4D a utilizar (variable, array o campo) | |
tipoParam | Entero largo | Tipo de parámetro |
Descripción
El comando SQL SET PARAMETER permite el uso del valor de una variable, array o campo 4D en las peticiones SQL.
Nota: igualmente es posible insertar directamente el nombre de un objeto 4D a utilizar (variable, array o campo) entre los caracteres << y >> en el texto de la petición (ver ejemplo 1). Para mayor información, consulte la sección Comandos SQL.
- En el parámetro objeto, pase el objeto 4D (variable, array o campo) a utilizar en la petición.
- En el parámetro tipoParam, pase el tipo SQL del parámetro. Puede pasar un valor o utilizar una de las siguientes constantes, ubicadas en el tema "SQL":
Constante | Tipo | Valor |
SQL Param In | Entero largo | 1 |
SQL Param In Out | Entero largo | 2 |
SQL Param Out | Entero largo | 4 |
El valor del objeto 4D reemplaza al carácter ? en la petición SQL (sintaxis estándar).
Si la solicitud contiene más de un carácter ?, serán necesarias varias llamadas a SQL SET PARAMETER. Los valores de los objetos 4D serán asignados secuencialmente en la petición, de acuerdo con el orden de ejecución de los comandos.
Ejemplos
1. Este ejemplo se utiliza para ejecutar una petición SQL la cual llama directamente a las variables 4D asociadas:
C_TEXT(MiTexto) C_LONGINT(MiEnteroLargo) SQL LOGIN("mysql";"root";"") SQLStmt:="insert into app_testTable (alpha_field, longint_field) VALUES (<<MiTexto>>, <<MienteroLargo>>)" For (vContador;1;10) MiTexto:="Text"+String(vContador) MiEnteroLargo:=vContador ODBC EXECUTE(SQLStmt) End for
2. El mismo ejemplo anterior, pero utilizando el comando SQL SET PARAMETER:
C_TEXT(MiTexto) C_LONGINT(MiEnteroLargo) SQL LOGIN("mysql";"root";"") SQLStmt:="insert into app_testTable (alpha_field, longint_field) VALUES (?,?)" For (vCounter;1;10) MiTexto:="Text"+String(vContador) MiEnteroLargo:=vCounter SQL SET PARAMETER(MyText;ODBC Param In) SQL SET PARAMETER(MyLongint;ODBC Param In) SQL EXECUTE(SQLStmt) End for
3. Este ejemplo se utiliza para ejecutar una petición ODBC la cual utiliza directamente arrays 4D asociados:
ARRAY TEXT(MiArrayTexto;10) ARRAY LONGINT(MiArrayEnteroLargo;10) For (vContador;1;Size of array(MiArrayTexto)) MiArrayTexto{vContador}:="Text"+String(vContador) MiArrayEnteroLargo{vContador}:=vContador End for SQL LOGIN("mysql";"root";"") SQLStmt:="insert into app_testTable (alpha_field, longint_field) VALUES (<<MiArrayTexto>>, <<MiArrayEnteroLargo>>)" SQL EXECUTE(SQLStmt)
4. Este ejemplo se utiliza para ejecutar una petición ODBC la cual utiliza directamente los campos 4D asociados:
ALL RECORDS([Tabla 2]) ODBC LOGIN("mysql";"root";"") SQLStmt:="insert into app_testTable (alpha_field, longint_field) VALUES (<<[Tabla 2]Campo1>"+">, <<[Tabla 2]Campo2>>)" ODBC EXECUTE(SQLStmt)
Variables y conjuntos sistema
Si el comando se ha ejecutado correctamente, la variable sistema OK devuelve 1. De lo contrario, devuelve 0.