4D v16

SQL

Inicio

 
4D v16
SQL

SQL    


 

 

Además de las manipulaciones explicadas en el vídeo, también debe notar que:

No podemos utilizar punteros o elementos de array en una petición SQL porque el interprete no los tiene en cuenta.

En este caso, es preferible constituir la búsqueda en forma de texto y ejecutarla utilizando el comando EXECUTE IMMEDIATE.

  `VARIABLE TYPING IMPERATIVE, de lo contrario la petición genera un error
 ARRAY TEXT(ArrTechniciansStats;0) `Crear un array sin elementos que será llenado por la siguiente petición
 ARRAY TEXT($ArrTechniciansID;0) `Array en el cual se guardan los IDs de los Technicians
 
  `No olvide el carácter espacio o retorno de carro al final de cada línea
 C_TEXT($TextQuery)
 $TextQuery:="SELECT Last_name, ID "
 $TextQuery:=$TextQuery+"FROM TECHNICIANS "
 $TextQuery:=$TextQuery+"INTO :ArrTechnicians, :$ArrTechniciansID"
 
 Begin SQL `Sólo queremos recuperar el apellido del técnico y guardarlo en un array
    EXECUTE IMMEDIATE :$TextQuery;
 End SQL

Esto selecciona el apellido y el ID en la tabla Technicians y los transfiere a los 2 arrays.

En este vídeo, vamos a aprender cómo implementar comandos SQL simples integrados a la programación de 4D en dos formas:

  • varías líneas de comando SQL insertadas en un bloque de procesamiento SQL
  • una sola línea de comando que ejecuta la lista de comandos almacenados en una variable texto.

Además del lenguaje de 4D, podemos integrar en 4D los comandos SQL como lo hace en otras herramientas:

  • mysql_query en PHP
  • INCLUDE SQLCA en COBOL
  • etc.

Estos comandos también se pueden integrar fácilmente en sus proyectos de desarrollo existentes.

Vamos a tomar nuestro formulario Statistics para calcular el mismo array basado en los comandos SQL:

  • Duplicamos el botón
  • El comienzo del método queda igual
  • Como no hemos seleccionado registros, el array Technicians tendrá 0 elementos
  • Añadimos el array de los identificadores de los técnicos en una variable local; no necesitamos conservarlo posteriormente
  • Luego integramos nuestro código SQL
    Este selecciona el apellido y el ID de la tabla Technicians y los transfiere en los 2 arrays.

Note la sintaxis que indica a 4D transferir el resultado en los arrays. Utilizamos el nombre de la variable precedida por el símbolo “:” (dos puntos).
El resto del método (dimensionamiento del array de intervenciones) permanece globalmente estructurado de la misma manera:

  • Acabamos de añadir el valor $Num para saber cuántos técnicos vamos a procesar
  • Luego eliminamos la parte final que vamos a remplazar con los comandos SQL
  • Guardamos en una variable el identificador del técnico a procesar
  • Ejecutamos los comandos SQL que tienen en cuenta el año de inicio y el año final
  • Y luego asignamos los valores al array de intervenciones en el elemento X

Cuando el método se ejecuta:

  • acá pasamos el código SQL
  • tenemos 7 técnicos
  • dimensionamos el array de las intervenciones
  • Luego para cada valor del array, vamos a hacer un SELECT COUNT
  • los guardamos en una variable $Result
  • que asignará valores al array

y si elegimos cualquiera de las opciones, aún tendremos el mismo resultado.

Otra forma de programar, especialmente esta primera parte, sería escribirlo de esta forma:

  • en otras palabras, escribimos la petición en una variable Texto
  • y luego entre un Begin SQL y un End SQL, utilizamos el comando EXECUTE IMMEDIATE al cual pasamos la petición en forma de texto lo cual da exactamente el mismo resultado.

 
 

 
PROPIEDADES 

Producto: 4D
Tema: SQL

 
HISTORIA 

 
ARTICLE USAGE

Autoformación ( 4D v16)