La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Elaborado por: Guillermo Baquerizo I Término 2012.

Presentaciones similares


Presentación del tema: "Elaborado por: Guillermo Baquerizo I Término 2012."— Transcripción de la presentación:

1 Elaborado por: Guillermo Baquerizo I Término 2012

2 Definición En ciencias de la computación y la tecnología, un cursor de base de datos es una estructura de control que permite recorrer los registros de una base de datos. Los cursores facilitan el procesamiento posterior en relación con el recorrido, la recuperación, la adición y la eliminación de los registros de la base de datos. Permiten hacer reportes en el propio ambiente de la base de datos, sin tener un aplicativo adicional.

3 ¿Cómo se crea y utiliza? Declare el cursor, utilice la cláusula DECLARE. Abra el cursor, utilice la cláusula OPEN. Lea los datos del cursor, uno por uno, utilice la cláusula FETCH NEXT FROM... INTO. Cierre el cursor, utilice la cláusula CLOSE Libere el cursor, utilice la cláusula DEALLOCATE.

4 Sintaxis general -- Declaración del cursor DECLARE CURSOR FOR -- Apertura del cursor OPEN -- Lectura de la primera fila del cursor FETCH NEXT FROM INTO WHILE (@@FETCH_STATUS = 0) BEGIN -- Lectura de la siguiente fila de un cursor FETCH NEXT FROM INTO... END -- Fin del ciclo WHILE -- Cierre del cursor CLOSE -- Liberación de los recursos del cursor DEALLOCATE

5 Ejemplo (1/2) -- Declaracion de variables para el cursor DECLARE @Id int, @Nombre varchar(255), @Apellido1 varchar(255), @Apellido2 varchar(255), @Cedula char(10), @FNacimiento datetime -- Declaración del cursor DECLARE cClientes CURSOR FOR SELECT Id, Nombre, Apellido1, Apellido2, Cedula, FNacimiento FROM CLIENTES -- Apertura del cursor OPEN cClientes -- Lectura de la primera fila del cursor FETCH NEXT FROM cClientes INTO @id, @Nombre, @Apellido1, @Apellido2, @Cedula, @FNacimiento

6 Ejemplo (2/2) WHILE (@@FETCH_STATUS = 0 ) BEGIN PRINT @Nombre + ' ' + @Apellido1 + ' ' + @Apellido2 -- Lectura de la siguiente fila del cursor FETCH NEXT FROM cClientes INTO @id, @Nombre, @Apellido1, @Apellido2, @Cedula, @FNacimiento END -- Cierre del cursor CLOSE cClientes -- Liberación de los recursos DEALLOCATE cClientes

7 La función FETCH_STATUS Cuando trabajamos con cursores, la función @@FETCH_STATUS nos indica el estado de la última instrucción FETCH emitida, los valores posibles son: Valor devuelto Descripción 0La instrucción FETCH se ejecutó correctamente La instrucción FETCH no se ejecutó correctamente o la fila estaba más allá del conjunto de resultados -2Falta la fila recuperada

8 Ejercicios Considere la base de datos Pubs: Muestre los libros que pertenecen a los autores que son del estado de Utah. El reporte debe mostrarse así: Reporte de autores de UTAH Libros del autor: XXXXXXXX YYYYYYY Libros del autor: WWWWW TTTTTTT

9 Ejercicios Considere la base de datos Northwind: Muestre un reporte con todos los empleados que han provocado que lleguen atrasadas las órdenes. Suponga que se les va a multar con $1 por cada día de atraso, de cada orden que tiene esta característica. Su reporte en pantalla debe mostrar el filtro por empleado. El reporte debe mostrarse así: Reporte de Empleados con órdenes atrasadas: Órdenes del empleado: AAAAAAAA BBBBBBBB


Descargar ppt "Elaborado por: Guillermo Baquerizo I Término 2012."

Presentaciones similares


Anuncios Google