Trabajo de desarrollo de software(java)yanina y yenny
Cursores
1. Docente :Ing. Marco Aurelio Porro Chulli
Asignatura :Base de Datos II.
Ciclo : VIII “A”
Integrantes:
• Yenny Isabel Cuello Morón.
• Yanina Bustamante Jibaja.
2. CURSORES
Es un elemento que representará a un conjunto de datos
determinado por una consulta T-SQL, el cursor permitirá
recorrer fila a fila, leer y eventualmente modificar dicho
conjunto de resultados.
3. SINTAXIS
DECLARE cursor_name [ INSENSITIVE ] [ SCROLL ] CURSOR
FOR select_statement
[ FOR { READ ONLY | UPDATE [ OF column_name [ ,...n ] ] } ]
[;]
Transact-SQL Extended Syntax
DECLARE cursor_name CURSOR [ LOCAL | GLOBAL ]
[ FORWARD_ONLY | SCROLL ]
[ STATIC | KEYSET | DYNAMIC | FAST_FORWARD ]
[ READ_ONLY | SCROLL_LOCKS | OPTIMISTIC ]
[TYPE_WARNING ]
FOR select_statement
[ FOR UPDATE [ OF column_name [ ,...n ] ] ]
[;]
4. VENTAJAS
Uso reducido
de la red
entre clientes
y servidores:
Mejora en la
seguridad
Mejora de las
posibilidades
de hardware
y software:
Seguridad,
administración
y
mantenimiento
centralizados
para las rutinas
comunes
Reducción en
el coste de
desarrollo y
aumento en
la fiabilidad:
6. CREACIÓN DE CURSORES
La sintaxis de declaración de un cursor es la siguiente :
declare cursor prueba _ cursor for
select nombres apellidos, from persona
ahora declaramos las variables con las que vamos a recorrer el cursor
declare @ nombres varchar(25)
declare @ apellidos varchar(25)
Abrimos el cursor para iniciar el recorrido del mismo
open cursor_ prueba
Se mueve al siguiente registro dentro del cursor y los asignamos a las variables antes declaradas
fetch next from cursor_ prueba
into @ , nombres apellidos
Retorna el estatus del último registro recorrido en el cursor cuando es igual a encontró registros
pendientes de recorrer
while @@ _ fetch status = 0
begin
print' : ' El Nombre de la persona es + @ + nombres ' : ' y sus apellidos + apellidos
Se mueve al siguiente registro dentro del cursor
fetch next from cursor_ prueba
into @ , nombres apellidos
end
Cuando concluimos con el recorrido del cursor este debe ser cerrado y luego destruido mediante las
siguientes sentencias
cose cursor_ prueba
Deallocate cursor_ prueba
7. MODIFICACIÓN DE CURSORES
Sintaxis simplificada
update table_name
set column1 = { expression | select_statement }
[, column2 = { expression | select_statement } ...]
where current of cursor_name
Ejemplo
update titles
set title = "The Executive’s Database Guide"
where current of biz_book
ELIMINACIÓN DE CURSORES
Sintaxis simplificada
delete [ from ] table_name where current of
cursor_name
Ejemplo
delete from titles
where current of biz_book
8. EJEMPLO
Crear un cursor que permita visualizar los registros de la tablaTbCliente
DECLARE @col1 char(8),@col2Varchar(40),@col3Varchar(40)
DECLARE c_Clientes CURSOR FOR
SELECT codcliente,nombre,direccion FROMTbCliente
--Apertura del cursor
OPEN c_Clientes
FETCH c_Clientes INTO @col1,@col2,@col3
WHILE (@@FETCH_STATUS = 0 )
BEGIN
PRINT @col1 + ' | ' +@col2 + ' | ' + @col3
-- Lectura de la siguiente fila del cursor
FETCH c_Clientes INTO @col1,@col2,@col3
END
-- Cierre del cursor
CLOSE c_Clientes
-- Liberar los recursos
DEALLOCATE c_Clientes
9. Conclusiones
Usar cursores nos puede simplificar mucho la tarea de programar un
script en otro lenguaje de programación para acabar haciendo lo
mismo que con un cursor programador directamente sobre T-SQL,
que además se ejecutará más rápido.
Los cursores son muy útiles sobre todo cuando no podemos tener
todas las columnas que necesitamos en un solo SELECT. Si podemos
tener a todas las columnas en un solo SELECT puede ser más práctico
usar el comando SELECT … INTO.