Cursor con Update da Error 16957

22/05/2005 - 00:54 por pev | Informe spam
Tengo las siguientes instrucciones:

DECLARE cVARCAP CURSOR FOR
SELECT FecCierre, Monto
FROM tbVARCAPITAL
WHERE Tipo LIKE 'DIV%'
AND Aplicado = 'N'
AND Nem = @iNem
ORDER BY FecCierre ASC
FOR UPDATE

OPEN cVARCAP
FETCH cVARCAP INTO
WHILE (.)
BEGIN

UPDATE tbVARCAPITAL
SET Aplicado = 'S'
WHERE CURRENT OF cVARCAP


FETCH cVARCAP INTO
END
CLOSE cVARCAP
DEALLOCATE cVARCAP

al ejecutar esta sentencia me da el siguiente error:

Servidor: mensaje 16957, nivel 16, estado 4, procedimiento
SP_CORRECCION_CENCOSUD, línea 17
No se puede especificar FOR UPDATE en un cursor READ ONLY.




Por qué???????????????????
Cómo se sluciona esto


Saludos
Gracias
pev

Preguntas similare

Leer las respuestas

#1 Maxi
23/05/2005 - 01:24 | Informe spam
Hola y porque usas un cursor para esto? no seria mejor hacer asi:

UPDATE tbVARCAPITAL
SET Aplicado = 'S'
where
Tipo LIKE 'DIV%'
AND Aplicado = 'N'
AND Nem = @iNem




Maxi - Buenos Aires - Argentina
Desarrollador 3 Estrellas
Msn:

Maxi.da[arroba]gmail.com

"pev" escribió en el mensaje
news:
Tengo las siguientes instrucciones:

DECLARE cVARCAP CURSOR FOR
SELECT FecCierre, Monto
FROM tbVARCAPITAL
WHERE Tipo LIKE 'DIV%'
AND Aplicado = 'N'
AND Nem = @iNem
ORDER BY FecCierre ASC
FOR UPDATE

OPEN cVARCAP
FETCH cVARCAP INTO
WHILE (.)
BEGIN

UPDATE tbVARCAPITAL
SET Aplicado = 'S'
WHERE CURRENT OF cVARCAP


FETCH cVARCAP INTO
END
CLOSE cVARCAP
DEALLOCATE cVARCAP

al ejecutar esta sentencia me da el siguiente error:

Servidor: mensaje 16957, nivel 16, estado 4, procedimiento
SP_CORRECCION_CENCOSUD, línea 17
No se puede especificar FOR UPDATE en un cursor READ ONLY.




Por qué???????????????????
Cómo se sluciona esto


Saludos
Gracias
pev


Respuesta Responder a este mensaje
#2 Maxi
23/05/2005 - 03:19 | Informe spam
Hola, te paso un articulo para que veas porque no son buena idea los
cursores

http://www.configuracionesintegrale...p?articulo)5


Maxi - Buenos Aires - Argentina
Desarrollador 3 Estrellas
Msn:

Maxi.da[arroba]gmail.com

"pev" escribió en el mensaje
news:
Tengo las siguientes instrucciones:

DECLARE cVARCAP CURSOR FOR
SELECT FecCierre, Monto
FROM tbVARCAPITAL
WHERE Tipo LIKE 'DIV%'
AND Aplicado = 'N'
AND Nem = @iNem
ORDER BY FecCierre ASC
FOR UPDATE

OPEN cVARCAP
FETCH cVARCAP INTO
WHILE (.)
BEGIN

UPDATE tbVARCAPITAL
SET Aplicado = 'S'
WHERE CURRENT OF cVARCAP


FETCH cVARCAP INTO
END
CLOSE cVARCAP
DEALLOCATE cVARCAP

al ejecutar esta sentencia me da el siguiente error:

Servidor: mensaje 16957, nivel 16, estado 4, procedimiento
SP_CORRECCION_CENCOSUD, línea 17
No se puede especificar FOR UPDATE en un cursor READ ONLY.




Por qué???????????????????
Cómo se sluciona esto


Saludos
Gracias
pev


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