Cursor con datos de un SP

08/08/2005 - 17:29 por Mennegguzzi | Informe spam
Hola a todos, les hago nua consulta

Tengo un SP a_sp_FCRMVI
declaro un cursor F_PEDI

y lo quiero cargar con los datos del SP, lo hago de la siguiente forma y no
funciona, no sé si en realidad es posible hacerlo, y en ese caso, no sé qué
estoy haciendo mal


DECLARE F_PEDI CURSOR FOR
USE db_Emp_Z EXEC a_sp_FCRMVI 'f_Fact'
OPEN F_PEDI
FETCH NEXT FROM F_PEDI
WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM F_PEDI
END


les agradezco mucho su ayuda

saludos

Pablo

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
08/08/2005 - 17:55 | Informe spam
Los cursores estan basados en una sentencia "select" y no un batch de
instrucciones t-sql.

USE db_Emp_Z
go

create table #t (c1 ...)

insert into #t
EXEC a_sp_FCRMVI 'f_Fact'

declare @c1 ...
declare @cn ...

DECLARE F_PEDI CURSOR
FOR
select c1, ..., cn
from #t

OPEN F_PEDI

FETCH NEXT FROM F_PEDI into @c1, ..., @cn

WHILE @@FETCH_STATUS = 0
BEGIN
select @c1, ..., @cn
FETCH NEXT FROM F_PEDI into @c1, ..., @cn
END
go


AMB

"Mennegguzzi" wrote:

Hola a todos, les hago nua consulta

Tengo un SP a_sp_FCRMVI
declaro un cursor F_PEDI

y lo quiero cargar con los datos del SP, lo hago de la siguiente forma y no
funciona, no sé si en realidad es posible hacerlo, y en ese caso, no sé qué
estoy haciendo mal


DECLARE F_PEDI CURSOR FOR
USE db_Emp_Z EXEC a_sp_FCRMVI 'f_Fact'
OPEN F_PEDI
FETCH NEXT FROM F_PEDI
WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM F_PEDI
END


les agradezco mucho su ayuda

saludos

Pablo



Respuesta Responder a este mensaje
#2 Maxi
08/08/2005 - 17:55 | Informe spam
Hola, sabes que no es para nada bueno usar cursores no? porque no nos
expones el problema y no la solucion al mismo asi podemos ver como ayudarte
:-)


Salu2
Maxi


"Mennegguzzi" escribió en el mensaje
news:
Hola a todos, les hago nua consulta

Tengo un SP a_sp_FCRMVI
declaro un cursor F_PEDI

y lo quiero cargar con los datos del SP, lo hago de la siguiente forma y
no funciona, no sé si en realidad es posible hacerlo, y en ese caso, no sé
qué estoy haciendo mal


DECLARE F_PEDI CURSOR FOR
USE db_Emp_Z EXEC a_sp_FCRMVI 'f_Fact'
OPEN F_PEDI
FETCH NEXT FROM F_PEDI
WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM F_PEDI
END


les agradezco mucho su ayuda

saludos

Pablo

Respuesta Responder a este mensaje
#3 Mennegguzzi
08/08/2005 - 18:32 | Informe spam
Ok Maxi, gracias por la sugerencia, les cuento como es mi problema:

desarrollo aplicaciones en VB6, en las cueles acostumbro abrir Reciodsets,
recorrerlos, hacer operaciones por cada resgitro (como grabar en otra tabla
usando condiciones sobre esos registros, etc), y después los cierro

esto lo hago con:

Rs1.open "Select..." ó "Exec.."(si uso un SP)
Rs1.MoveFirst
Do While Rs1.Eof = False
# operaciones # por ejemplo: Rs1.Update, ó If
Rs1!Campo > 1 Then .. End If , etc.
Rs1.MoveNext
Loop
Rs1.Close

Yo quisiera hacer eso, pero sin usar código VB6, solo con T-SQL, por
supuesto usando SP
por eso se me ocurrió usar cursores

No sabía que no es recomendado,

Agradecería muchísimo su ayuda porque ahorraría muchísimas líneas de código
y posibilidades de error.

Desde ya muchas gracias

Saludos

Pablo


"Maxi" escribió en el mensaje
news:
Hola, sabes que no es para nada bueno usar cursores no? porque no nos
expones el problema y no la solucion al mismo asi podemos ver como
ayudarte :-)


Salu2
Maxi


"Mennegguzzi" escribió en el mensaje
news:
Hola a todos, les hago nua consulta

Tengo un SP a_sp_FCRMVI
declaro un cursor F_PEDI

y lo quiero cargar con los datos del SP, lo hago de la siguiente forma y
no funciona, no sé si en realidad es posible hacerlo, y en ese caso, no
sé qué estoy haciendo mal


DECLARE F_PEDI CURSOR FOR
USE db_Emp_Z EXEC a_sp_FCRMVI 'f_Fact'
OPEN F_PEDI
FETCH NEXT FROM F_PEDI
WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM F_PEDI
END


les agradezco mucho su ayuda

saludos

Pablo





Respuesta Responder a este mensaje
#4 Mennegguzzi
08/08/2005 - 18:35 | Informe spam
Ok Maxi, gracias por la sugerencia, les cuento como es mi problema:
desarrollo aplicaciones en VB6, en las cuales acostumbro abrir Reciodsets,
recorrerlos, hacer operaciones por cada resgitro (como grabar en otra tabla
usando condiciones sobre esos registros, etc), y después los cierro, esto lo
hago con:

Rs1.open "Select..." ó "Exec.."(si uso un SP)
Rs1.MoveFirst
Do While Rs1.Eof = False
# operaciones # por ejemplo: Rs1.Update, ó If
Rs1!Campo > 1 Then .. End If , etc.
Rs1.MoveNext
Loop
Rs1.Close

Yo quisiera hacer eso, pero sin usar código VB6, solo con T-SQL, por
supuesto usando SP, por eso se me ocurrió usar cursores, no sabía que no es
recomendado,
Como verás no es un problema específico, sino que busco una solución más
general, si es necesario les transcribo algún código de VB para verlo mejor

Agradecería muchísimo su ayuda porque ahorraría muchísimas líneas de código
y posibilidades de error.

Saludos y gracias

Pablo


"Maxi" escribió en el mensaje
news:
Hola, sabes que no es para nada bueno usar cursores no? porque no nos
expones el problema y no la solucion al mismo asi podemos ver como
ayudarte :-)


Salu2
Maxi


"Mennegguzzi" escribió en el mensaje
news:
Hola a todos, les hago nua consulta

Tengo un SP a_sp_FCRMVI
declaro un cursor F_PEDI

y lo quiero cargar con los datos del SP, lo hago de la siguiente forma y
no funciona, no sé si en realidad es posible hacerlo, y en ese caso, no
sé qué estoy haciendo mal


DECLARE F_PEDI CURSOR FOR
USE db_Emp_Z EXEC a_sp_FCRMVI 'f_Fact'
OPEN F_PEDI
FETCH NEXT FROM F_PEDI
WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM F_PEDI
END


les agradezco mucho su ayuda

saludos

Pablo





Respuesta Responder a este mensaje
#5 Mennegguzzi
08/08/2005 - 18:35 | Informe spam
Ok Maxi, gracias por la sugerencia, les cuento como es mi problema:
desarrollo aplicaciones en VB6, en las cuales acostumbro abrir Reciodsets,
recorrerlos, hacer operaciones por cada resgitro (como grabar en otra tabla
usando condiciones sobre esos registros, etc), y después los cierro, esto lo
hago con:

Rs1.open "Select..." ó "Exec.."(si uso un SP)
Rs1.MoveFirst
Do While Rs1.Eof = False
# operaciones # por ejemplo: Rs1.Update, ó If
Rs1!Campo > 1 Then .. End If , etc.
Rs1.MoveNext
Loop
Rs1.Close

Yo quisiera hacer eso, pero sin usar código VB6, solo con T-SQL, por
supuesto usando SP, por eso se me ocurrió usar cursores, no sabía que no es
recomendado,
Como verás no es un problema específico, sino que busco una solución más
general, si es necesario les transcribo algún código de VB para verlo mejor

Agradecería muchísimo su ayuda porque ahorraría muchísimas líneas de código
y posibilidades de error.

Saludos y gracias

Pablo



"Maxi" escribió en el mensaje
news:
Hola, sabes que no es para nada bueno usar cursores no? porque no nos
expones el problema y no la solucion al mismo asi podemos ver como
ayudarte :-)


Salu2
Maxi


"Mennegguzzi" escribió en el mensaje
news:
Hola a todos, les hago nua consulta

Tengo un SP a_sp_FCRMVI
declaro un cursor F_PEDI

y lo quiero cargar con los datos del SP, lo hago de la siguiente forma y
no funciona, no sé si en realidad es posible hacerlo, y en ese caso, no
sé qué estoy haciendo mal


DECLARE F_PEDI CURSOR FOR
USE db_Emp_Z EXEC a_sp_FCRMVI 'f_Fact'
OPEN F_PEDI
FETCH NEXT FROM F_PEDI
WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM F_PEDI
END


les agradezco mucho su ayuda

saludos

Pablo





Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida