Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

uso de cursores en sql

Estas en el tema de uso de cursores en sql en el foro de Bases de Datos General en Foros del Web. hola una pregunta no si alguien me podria dar un ejemplo partco del uso de cursores en sql yo he ehco uno pero lo unico ...
  #1 (permalink)  
Antiguo 22/02/2005, 13:11
Avatar de OYEME  
Fecha de Ingreso: marzo-2004
Ubicación: Lima
Mensajes: 307
Antigüedad: 20 años, 8 meses
Puntos: 1
uso de cursores en sql

hola una pregunta no si alguien me podria dar un ejemplo partco del uso de cursores en sql yo he ehco uno pero lo unico que haces es impirmir los valores
grcaias de antemano
__________________
http://www.luisariashidalgo.com
  #2 (permalink)  
Antiguo 22/02/2005, 19:31
Avatar de axel_mdq  
Fecha de Ingreso: mayo-2004
Ubicación: Mar del Plata
Mensajes: 157
Antigüedad: 20 años, 6 meses
Puntos: 0
Yo le di muchos usos. Cuando no me sale una consulta, recurro a los benditos cursores. jejeje
Por ejemplo:
* Tuve que hacer un cursor que capitalize nombres, y otros campos de una empresa.
* Para una biblioteca hice que un campo aparezcan los nombres de todos los autores de un libro.
__________________
Saludos,

Alejandro. :adios:
  #3 (permalink)  
Antiguo 22/02/2005, 21:15
Avatar de OYEME  
Fecha de Ingreso: marzo-2004
Ubicación: Lima
Mensajes: 307
Antigüedad: 20 años, 8 meses
Puntos: 1
a bueno podrias poner el script porfa
y una consulta mas los datos de un cursor los puedo mostrar en un datagrid del visula basic y si se puede como lo haria
te estraia muy agradecido si em das esa ifnormacion
grcias
__________________
http://www.luisariashidalgo.com
  #4 (permalink)  
Antiguo 24/02/2005, 15:47
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años, 6 meses
Puntos: 25
Esto es de los books online:
Cita:
Examples
A. Use simple cursor and syntax
The result set generated at the opening of this cursor includes all rows and all columns in the authors table of the pubs database. This cursor can be updated, and all updates and deletes are represented in fetches made against this cursor. FETCH NEXT is the only fetch available because the SCROLL option has not been specified.

DECLARE authors_cursor CURSOR
FOR SELECT * FROM authors
OPEN authors_cursor
FETCH NEXT FROM authors_cursor

B. Use nested cursors to produce report output
This example shows how cursors can be nested to produce complex reports. The inner cursor is declared for each author.

SET NOCOUNT ON

DECLARE @au_id varchar(11), @au_fname varchar(20), @au_lname varchar(40),
@message varchar(80), @title varchar(80)

PRINT '-------- Utah Authors report --------'

DECLARE authors_cursor CURSOR FOR
SELECT au_id, au_fname, au_lname
FROM authors
WHERE state = 'UT'
ORDER BY au_id

OPEN authors_cursor

FETCH NEXT FROM authors_cursor
INTO @au_id, @au_fname, @au_lname

WHILE @@FETCH_STATUS = 0
BEGIN
PRINT ' '
SELECT @message = '----- Books by Author: ' +
@au_fname + ' ' + @au_lname

PRINT @message

-- Declare an inner cursor based
-- on au_id from the outer cursor.

DECLARE titles_cursor CURSOR FOR
SELECT t.title
FROM titleauthor ta, titles t
WHERE ta.title_id = t.title_id AND
ta.au_id = @au_id -- Variable value from the outer cursor

OPEN titles_cursor
FETCH NEXT FROM titles_cursor INTO @title

IF @@FETCH_STATUS <> 0
PRINT ' <<No Books>>'

WHILE @@FETCH_STATUS = 0
BEGIN

SELECT @message = ' ' + @title
PRINT @message
FETCH NEXT FROM titles_cursor INTO @title

END

CLOSE titles_cursor
DEALLOCATE titles_cursor

-- Get the next author.
FETCH NEXT FROM authors_cursor
INTO @au_id, @au_fname, @au_lname
END

CLOSE authors_cursor
DEALLOCATE authors_cursor
GO

-------- Utah Authors report --------

----- Books by Author: Anne Ringer
The Gourmet Microwave
Is Anger the Enemy?

----- Books by Author: Albert Ringer
Is Anger the Enemy?
Life Without Fear
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:35.