SQL EXECUTE
SQL EXECUTE ( instruccionSQL {; objAsoc}{; objAsoc2 ; ... ; objAsocN} )
Parámetro | Tipo | Descripción | |
---|---|---|---|
instruccionSQL | Texto | 🡒 | Comando SQL a ejecutar |
objAsoc | Variable, Campo | 🡘 | Recibe el resultado (si es necesario) |
Descripción
El comando SQL EXECUTE se utiliza para ejecutar un comando SQL y asociar el resultado a objetos 4D (arrays, variables o campos).
Para que el comando pueda ejecutarse, se requiere una conexión válida en el proceso actual.
El parámetro instruccionSQL contiene el comando SQL a ejecutar. objAsoc recibe los resultados. Las variables están asociadas en el orden de secuencia de la columna, lo que significa que las columnas restantes se ignoren.
Si los campos 4D se pasan como parámetros en objAsoc, el comando creará registros y los guardará automáticamente. Los campos 4D deben venir de la misma tabla (no es posible pasar un campo de la tabla 1 y un campo de la tabla 2 en la misma llamada). Si se pasan campos de diferentes tablas, se genera un error.
Atención: cuando pase los campos 4D en los parámetros objAsoc y ejecute el comando SELECT, siempre son los datos de la fuente 4D remota los que se modifican. Si quiere recuperar datos de una fuente remota localmente, debe utilizar arrays locales intermediarios y llamar al comando INSERT (ver el ejemplo 6).
Si pasa arrays 4D en el parámetro objAsoc, se recomienda declararlos antes de llamar el comando para verificar el tipo de datos procesados. Los arrays se redimensionan automáticamente cuando es necesario.
En el caso de una variable 4D, se recupera un sólo registro a la vez. Los otros resultados se ignoran.
Nota: para mayor información sobre el referenciamiento de expresiones 4D en búsquedas SQL, consulte la sección Presentación de los comandos del tema SQL.
Ejemplo 1
En este ejemplo, obtendremos la columna ename de la tabla emp de la fuente de datos externos. El resultado se almacena en el campo 4D [Empleados]Nombre. Los registros 4D se crean automáticamente:
SQLStmt:="SELECT ename FROM emp"
SQL EXECUTE(SQLStmt;[Empleados]Nombre)