domingo, 6 de noviembre de 2011

Consideraciones sobre Comandos y Funciones SQL, Parte 1


Algunas consideraciones básicas cuando tenemos que utilizar comandos y funciones SQL en nuestro desarrollo cotidiano como código TRANSACT y Visual Basic.

SQL desde Visual Basic
Existen dos tipos de consultas SQL: las consultas de selección (nos devuelven datos) y las consultas de acción (aquellas que no devuelven ningún registro). Ambas pueden ser tratadas en Visual Basic pero de forma diferente.
Las consultas de selección se ejecutan recogiendo la información en un recordset previamente definido mediante la instrucción openrecordset(), por ejemplo:

Dim SQL as String
Dim RS as recordset
SQL = "SELECT * FROM Empleados;"
Set RS=MiBaseDatos.OpenRecordSet(SQL)

Si la consula de selección se encuentra almacenada en una consulta de la base de datos:

Set RS=MiBaseDatos.OpenRecordset("MiConsulta")

Las consultas de acción, al no devolver ningún registro, no las podemos asignar a ningún recordset, en este caso la forma de ejecutarlas es mediante los métodos Execute y ExecuteSQL (para bases de datos ODBC), por ejemplo:

Dim SQL as string
SQL = "DELETE * FROM Empleados WHERE Categoria = 'Ordenanza';"
MiBaseDatos.Execute SQL

Funciones de Visual Basic utilizables en una Instrucción SQL

Función Sintaxis         Descripción
Now       Variable= Now Devuelve la fecha y la hora actual del sistema
Date      Variable=Date  Devuelve la fecha actual del sistema
Time      Variable=Time  Devuelve la hora actual del sistema
Year      Variable=Year(Fecha) Devuelve los cuatro dígitos correspondientes al
año de Fecha
Month   Variable=Month(Fecha) Devuelve el número del mes del parámetro fecha.
Day      Variable=Day(Fecha) Devuelve el número del día del mes del parámetro
fecha.
Weekday Variable=Weekday(Fecha) Devuelve un número entero que representa el día de la semana del parámetro fecha.
Hour    Variable=Hour(Hora) Devuelve un número entre 0 y 23 que representa la hora del parámetro Hora.
Minute   Variable=Minute(Hora) Devuelve un número entre 0 y 59 que representa los minutos del parámetro hora.
Second   Variable=Second(Hora) Devuelve un número entre 0 y 59 que representa los segundos del parámetro hora.

DatePart
Esta función devuelve una parte señalada de una fecha concreta.
Sintaxis:
DatePart(Parte, Fecha, ComienzoSemana, ComienzoAño)

Parte representa a la porción de fecha que se desea obtener, los posibles valores son:
Valor Descripción
yyyy Año
q      Trimestre
m       Mes
y        Día del año
d        Día del mes
w       Día de la semana
ww     Semana del año
h        Hora
m       Minutos
s        Segundos

ComienzoSemana indica el primer día de la semana. Los posibles valores son:
Valor Descripción
0        Utiliza el valor pode efecto del sistema
1        Domingo (Valor predeterminado)
2        Lunes
3        Martes
4        Miércoles
5        Jueves
6        Viernes
7        Sábado

ComienzoAño indica cual es la primera semana del año; los posibles valores son:
Valor Descripción
0        Valor del sistema
1        Comienza el año el 1 de enero (valor predeterminado).
2        Empieza con la semana que tenga al menos cuatro días en el nuevo año.
3        Empieza con la semana que esté contenida completamente en el nuevo año.

Validar ciertas condiciones antes de ejecutar una consulta.
La Función IIF.
Sintaxis:
IIF(Expresion,Valor1,Valor2)

En donde Expresión es la sentencia que evaluamos; si Expresión es verdadera entonces se devuelve Valor1, si Expresión es falsa se devuelve Valor2.

SELECT * Total FROM Empleados WHERE Apellido =
IIF(txtApellido.Text <> '', txtApellido.Text, *)

Muestra una consulta condicionando el valor del control llamado txtApellido, si tenemos un valor en la casilla devuelve todos los empleados cuyo apellido coincida con el texto de la casilla, en caso contrario se devuelven todos los empleados.

SELECT Fecha, Producto, Cantidad, 
(IIF(CodigoUbigeo=’14’,'LIMA','Nacional')) AS Destino FROM Pedidos

Esta consulta devuelve los campos Fecha, Nombre del Producto y Cantidad de la tabla pedidos, añadiendo un campo al final con el valor LIMA si el código ubigeo correspondiente, en caso contario devuelve Nacional.



No hay comentarios:

Publicar un comentario

Sus comentarios son bienvenidos...