Retroceder   Foros del Web > Programación para sitios web > Bases de Datos

Respuesta
 
Herramientas Desplegado
Antiguo 28-abr-2005, 21:07   #1 (permalink)
HARRY_POTTER ha deshabilitado el karma
 
Fecha de Ingreso: marzo-2005
Mensajes: 30
Sonrisa sobre cursores..

hola foreros...!!!

les cuento que soy novato en esto, pero hay que aprender no... jejej

se dice que los cursores en sql server sirven para recuperar informacion de la base de datos, sin embargo eso lo podria hacer con un SP y un select dentro de ese SP...
entonces, para que realmente sirven los cursores ??? , cuando se deben utilizar ???, y cual seria la ventaja y desventajas de utilizarlos... espero me hayan entendido..

muchas gracias...
HARRY_POTTER está desconectado   Responder Citando
Antiguo 29-abr-2005, 15:00   #2 (permalink)
Moderador
Mithrandir llegará a ser famoso muy prontoMithrandir llegará a ser famoso muy pronto
 
Avatar de Mithrandir
 
Fecha de Ingreso: abril-2003
Mensajes: 12.108
Los cursores te permiten ir añadiendo logica dentro de cada regustro (renglon), pues puedes programar bloques enteros de codigo entre un renglon y otro. Consideralo como un While de un lenguaje de programacion.

Mientras que en un SELECT tienes un conjunto mas limitado de opciones. Su lado malo es que afectan el performance.
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
Mithrandir está desconectado   Responder Citando
Antiguo 29-abr-2005, 18:56   #3 (permalink)
axel_mdq está en el buen camino
 
Avatar de axel_mdq
 
Fecha de Ingreso: mayo-2004
Ubicación: Mar del Plata
Mensajes: 157
Podrías buscar cursores en el foro de base de datos y vas a encontrar muchos threads.
Tiene su desventaja en la performance, pero cuando algo no lo podes hacer con una consulta (por mas compleja que sea) seguro que la podes hacer con un cursor. El ejemplo clásico sería cambiar filas x columnas.
__________________
Saludos,

Alejandro. :adios:
axel_mdq está desconectado   Responder Citando
Antiguo 02-may-2005, 16:23   #4 (permalink)
Moderador
Mithrandir llegará a ser famoso muy prontoMithrandir llegará a ser famoso muy pronto
 
Avatar de Mithrandir
 
Fecha de Ingreso: abril-2003
Mensajes: 12.108
Cita:
El ejemplo clásico sería cambiar filas x columnas.
Como un crosstab de Access? Ese tambien se puede con un select
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
Mithrandir está desconectado   Responder Citando
Antiguo 02-may-2005, 20:03   #5 (permalink)
axel_mdq está en el buen camino
 
Avatar de axel_mdq
 
Fecha de Ingreso: mayo-2004
Ubicación: Mar del Plata
Mensajes: 157
No conozco la crossbar de Access. Con respecto al SQL, no creo que puedas hacer con un select intercambiar filas por columnas. Te doy un ejemplo, en una tabla tenes: Anio, mes, valor (2004,1,90;2004,2,78;...;2005,4,51) y vos queres mostrar por año y por mes el valor. No se si se entiende pero sería algo así:
Anio | mes | valor
2004| 1 | 90
2004| 2 | 78
2005| 1 | 51

Año\mes|enero|febrero
2004 | 90 | 78
2005 | 51 | ...

No se ustedes... la forma mas simple que conozco sería con cursores. Con Selects ni idea...
PD: el ejemplo fue "reutilizado" de otro que ví por ahí.. jeje
__________________
Saludos,

Alejandro. :adios:
axel_mdq está desconectado   Responder Citando
Antiguo 03-may-2005, 14:06   #6 (permalink)
Moderador
Mithrandir llegará a ser famoso muy prontoMithrandir llegará a ser famoso muy pronto
 
Avatar de Mithrandir
 
Fecha de Ingreso: abril-2003
Mensajes: 12.108
Código:
SELECT 
	Año,
	SUM(CASE WHEN Mes = 1 THEN valor ELSE 0 END) AS enero,
	SUM(CASE WHEN Mes = 2 THEN valor ELSE 0 END) AS febrero,
	SUM(CASE WHEN Mes = 3 THEN valor ELSE 0 END) AS marzo,
	SUM(CASE WHEN Mes = 4 THEN valor ELSE 0 END) AS abril,
	...
FROM tabla
GROUP BY Año
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
Mithrandir está desconectado   Responder Citando
Antiguo 03-may-2005, 19:22   #7 (permalink)
axel_mdq está en el buen camino
 
Avatar de axel_mdq
 
Fecha de Ingreso: mayo-2004
Ubicación: Mar del Plata
Mensajes: 157
... jajjajaa... muy bueno...
Igualmente era un ejemplo simple...
__________________
Saludos,

Alejandro. :adios:
axel_mdq está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 21:06.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93