lunes, 19 de noviembre de 2007

The Dojo Toolkit

Otra libreria de Javascript, es realmente buenísima. Ya la he usado en algunas aplicaciones y simplemente llenan los ojos de cualquiera por los efectos y sus métodos AJAX.

The Dojo Toolkit.

Tablas temporales

Tablas que nos almacenen los datos de manera temporal (como dice el nombre, es cierto XD).

Tabla: TB_PRODUCTO
Campos: cod_pro, des_pro, precio


CREATE TABLE #TEMP (CODIGO INT,DESCRIPCION NVARCHAR(50))
INSERT INTO #TEMP(CODIGO,DESCRIPCION)
SELECT COD_PRO, DES_PRO
FROM TB_PRODUCTO
WHERE PRECIO > 1000


Bueno, es otro simple codigo que nos muestra como crear tablas temporales.

PD: Para eliminarla es simple: DROP TABLE #TEMP

Obtener el valor más alto - SQL Server 2005

Es una consulta muy común. Sin embargo, ya muchos compañeros de trabajos y amigos, que al igual que yo nos iniciamos en esto, me han pedido ayuda.

Precio mas alto.
Tabla: TB_PRODUCTO
Campos: codigo, descripcion, precio

Select TOP(1)precio
From TB_PRODUCTO
Order By precio Desc

Lo que hace el TOP es obtener solo un registro de toda la consulta. En este caso el primero. Si se pusiera TOP(5), mostraría los 5 primeros registros del "Select".

Store Procedures MySQL 5

Simple. La documentación la tienes aquí. Pero si quieres alguna repasada, acá paso algunas.

1. Store procedure que devuelve una consulta.

CREATE PROCEDURE SP_CONSULTA1()
SELECT CAMPO1, CAMPO2, CAMPO3
FROM TABLA1

Para llamar el procedimiento: CALL SP_CONSULTA1()

2. Store procedure que ingrese datos y reciba parámetros

CREATE PROCEDURE SP_INSERTAR1(IN C1 INT, IN C2 VARCHAR(20), IN C3 VARCHAR(20))

INSERT INTO TABLA1 VALUES (C1,C2,C3);

Para llamar el procedimiento: CALL SP_INSERTAR1(1,'HOLA','BYE')


Es solo un par de ejemplos, puesto que la documentación completa la encontrarán en el link mostrado al inicio.

Solo para aclarar, a diferencia del SQL Server, los parámetros no pueden tener el "@" delante de ellos pues genera error de sintaxis.

Procedures con parámetros nulos (Consultas) - SQL Server

Hace mucho tiempo se me presentó hacer Store Procedures de consultas que recibieran valores nulos. Logré hacerlo de una manera rústica, hasta ahora es la única forma que uso.

Caso Práctico.

Tenemos la tabla producto con 3 campos: cod_pro, des_pro, igv

Queremos hacer una consulta que nos liste un producto por el código y que esa misma consulta nos sirva para poder listar todos los productos, obviamente esta consulta dentro de un store procedure.

-----------------------------------------------------
CREATE PROCEDURE SP_CONSULTA
@COD_PRO INT = NULL
AS
SELECT COD_PRO, DES_PRO, IGV
FROM TB_PRODUCTO
WHERE ((@COD_PRO IS NULL) OR (@COD_PRO = COD_PRO))
-----------------------------------------------------

Y bueno, en lineas generales... en caso de recibir un parámetro lo comparará. En caso contrario irá a la condición de null y listará a todos los productos. Es una consulta simple, pero se aprecia claramente el "artificio".

AjaxAnywhere

Se trata de un proyecto muy bueno. En líneas general, nos permite recargar refrescar zonas de nuestro JSP usando la tecnología AJAX.

AjaxAnywhere