recorrer registros

07/06/2007 - 22:03 por Oscar Geovanny | Informe spam
Hola a todos
como hago un recorrido de una tabla de sql de registro en registro a traves
de una funcion en sql?
gracias

Preguntas similare

Leer las respuestas

#1 Gustavo Larriera (MVP)
08/06/2007 - 00:06 | Informe spam
Lo que quieres hacer se puede usando cursores. En principio, es una
técnica muy mala de programación en SQL Server y sólo se utiliza cuando
no hay otra forma posible de hacerlo.

Mira en los Books Only acerca de CREATE CURSOR.

Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/p...o.Larriera



In article ,
says...
Hola a todos
como hago un recorrido de una tabla de sql de registro en registro a traves
de una funcion en sql?
gracias






Este mensaje se proporciona tal como es, sin garantías de ninguna clase.
Respuesta Responder a este mensaje
#2 Salvador Ramos
08/06/2007 - 09:33 | Informe spam
Hola,

Además de lo que te indica Gustavo, si nos cuentas el problema a resolver,
nos pasas algunos datos y el DDL, intentaremos buscar una solución adecuada,
y evitar el uso de cursores.

Un saludo
Salvador Ramos

www.helpdna.net (información sobre SQL Server y Microsoft .Net)
www.helpdna.net/acerca_de_salvador_ramos.htm


"Oscar Geovanny" escribió en el mensaje
news:
Hola a todos
como hago un recorrido de una tabla de sql de registro en registro a
traves de una funcion en sql?
gracias


Respuesta Responder a este mensaje
#3 Oscar Geovanny
08/06/2007 - 19:51 | Informe spam
esta es una simple rutina de FoxPro. Como hago para pasarla a SQL-server?
y muestra el reccorrido de una tabla (tmpX) que se actualiza unos valores en
cada registro de si misma y de otra tabla (My)

SELECT tmpX
SCAN
SCATTER MEMVAR

SELECT My
GO TOP
LOCATE FOR ALLTRIM(Nit) == ALLTRIM(m.nit) AND VAL(B) != 0
DO WHILE FOUND()
nValAnt = Sum_Saldo_Anterior2
replace my.Sum_Saldo_Anterior2 WITH 0
replace tmpX.sum_saldo_anterior2 WITH
tmpX.Sum_Saldo_Anterior2 + nValAnt

CONTINUE
ENDDO
SELECT tmpX
ENDSCAN

"Oscar Geovanny" wrote in message
news:
Hola a todos
como hago un recorrido de una tabla de sql de registro en registro a
traves de una funcion en sql?
gracias


Respuesta Responder a este mensaje
#4 Gustavo Larriera (MVP)
08/06/2007 - 21:39 | Informe spam
No tengo la mínima idea de FoxPro aunque el código parece entenderse. Creo
que debes hacer algo parecido a esto:

Cambia el LOCATE por un DECLARE CURSOR adecuado (seguido de un OPEN). Cambia
el WHILE FOUND() por un WHILE @@FETCH_STATUS = 0. Usa FETCH NEXT para avanzar
al proximo registro. Usa CLOSE y DEALLOCATE para finalmente cerrar el cursor.

Mira los detalles y ejemplos acá:

http://msdn2.microsoft.com/en-us/library/aa258831(SQL.80).aspx

Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/p...o.Larriera
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Oscar Geovanny" wrote:

esta es una simple rutina de FoxPro. Como hago para pasarla a SQL-server?
y muestra el reccorrido de una tabla (tmpX) que se actualiza unos valores en
cada registro de si misma y de otra tabla (My)

SELECT tmpX
SCAN
SCATTER MEMVAR

SELECT My
GO TOP
LOCATE FOR ALLTRIM(Nit) == ALLTRIM(m.nit) AND VAL(B) != 0
DO WHILE FOUND()
nValAnt = Sum_Saldo_Anterior2
replace my.Sum_Saldo_Anterior2 WITH 0
replace tmpX.sum_saldo_anterior2 WITH
tmpX.Sum_Saldo_Anterior2 + nValAnt

CONTINUE
ENDDO
SELECT tmpX
ENDSCAN

"Oscar Geovanny" wrote in message
news:
> Hola a todos
> como hago un recorrido de una tabla de sql de registro en registro a
> traves de una funcion en sql?
> gracias
>
>



Respuesta Responder a este mensaje
#5 Miguel Egea
11/06/2007 - 09:15 | Informe spam
Yo tampoco sé una palabra de FOX (lo siento por mis amigos foxeros), pero
eso que tienes ahí tiene pinta que se soluciona con un SELECT SUM(x) FROM
TABLA, sin tener que recorrer nada

Saludos
Miguel Egea

"Gustavo Larriera (MVP)"
wrote in message news:
No tengo la mínima idea de FoxPro aunque el código parece entenderse. Creo
que debes hacer algo parecido a esto:

Cambia el LOCATE por un DECLARE CURSOR adecuado (seguido de un OPEN).
Cambia
el WHILE FOUND() por un WHILE @@FETCH_STATUS = 0. Usa FETCH NEXT para
avanzar
al proximo registro. Usa CLOSE y DEALLOCATE para finalmente cerrar el
cursor.

Mira los detalles y ejemplos acá:

http://msdn2.microsoft.com/en-us/library/aa258831(SQL.80).aspx

Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/p...o.Larriera
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Oscar Geovanny" wrote:

esta es una simple rutina de FoxPro. Como hago para pasarla a
SQL-server?
y muestra el reccorrido de una tabla (tmpX) que se actualiza unos valores
en
cada registro de si misma y de otra tabla (My)

SELECT tmpX
SCAN
SCATTER MEMVAR

SELECT My
GO TOP
LOCATE FOR ALLTRIM(Nit) == ALLTRIM(m.nit) AND VAL(B) != 0
DO WHILE FOUND()
nValAnt = Sum_Saldo_Anterior2
replace my.Sum_Saldo_Anterior2 WITH 0
replace tmpX.sum_saldo_anterior2 WITH
tmpX.Sum_Saldo_Anterior2 + nValAnt

CONTINUE
ENDDO
SELECT tmpX
ENDSCAN

"Oscar Geovanny" wrote in message
news:
> Hola a todos
> como hago un recorrido de una tabla de sql de registro en registro a
> traves de una funcion en sql?
> gracias
>
>



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida