SQL EXECUTE

4D - Documentation   Français   English   German   Español   English   4D v11 SQL, Comandos por temas   4D v11 SQL, Lista alfabética de comandos   4D v11 SQL, Constantes por temas   Regresar   Anterior   Siguiente

versión 2004


SQL EXECUTE (instruccionSQL{; objAsoc}{; objAsoc2; ...; objAsocN})

ParámetroTipoDescripción
instruccionSQLTextoComando SQL a ejecutar
objAsocVariable | CampoRecibe el resultado (si es necesario)

Descripción

El comando SQL EXECUTE se utiliza para ejecutar un comando SQL y asociar el resultado a los objetos 4D (arrays, variables o campos).

Para que el comando pueda ser ejecutado, 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.

Si pasa arrays 4D en el (los) parámetro(s) objAsoc, es recomendable declararlos antes de llamar el comando con el fin de controlar el tipo de datos procesado. Los arrays son redimensionados automáticamente cuando es necesario.

En el caso de una variable 4D, se recupera un sólo registro a la vez. Los otros resultados son ignorados.

Nota: para mayor información sobre el referenciamiento de expresiones 4D en búsquedas SQL, consulte la sección Comandos del tema SQL.

Ejemplos

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)
   ODBC LOAD RECORD(ODBC All Records)

2. Para controlar la creación de registros, es posible incluir el código en una transacción y validarla únicamente si la operación prueba ser satisfactoria:

   ODBC LOGIN("mysql";"root";"")
   SQLStmt:="SELECT campo _alfa FROM ap_Tabla_Prueba"
   START TRANSACTION
   SQL EXECUTE(SQLStmt;[Tabla 2]Campo1)
   While(Not(ODBC End selection))
      ODBC LOAD RECORD
      ...   `Escribir el código de validación de datos aquí
   End while
   VALIDATE TRANSACTION   `Validación de la transacción

3. En este ejemplo, queremos obtener la columna ename de la tabla emp de la fuente de datos externos. El resultado será almacenado en un array aNombre. Obtenemos los registros de 10 en 10.

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

4. En este ejemplo, queremos obtener las columnas ename y job de la tabla emp para un ID especifico ID (cláusula WHERE) de la fuente de datos externa. El resultado se almacena en las variables 4D vNombre y vJob. Sólo se recupera el primer registro.

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

Ver también

SQL LOAD RECORD.

Variables y conjuntos sistema

Si el comando ha sido ejecutado correctamente, la variable sistema OK devuelve 1, de lo contrario devuelve 0.


4D - Documentation   Français   English   German   Español   English   4D v11 SQL, Comandos por temas   4D v11 SQL, Lista alfabética de comandos   4D v11 SQL, Constantes por temas   Regresar   Anterior   Siguiente