porque actualiza dos veces

03/03/2004 - 13:45 por edu | Informe spam
el cursor devuelve solo un registro
porque el siguiente procedimiento pasa dos veces por el cursor?

DECLARE @npedido AS INT
DECLARE @Excel AS BIT

DECLARE marcada_cursor CURSOR FOR
SELECT Pedidos.npedido
FROM Pedidos INNER JOIN Pedidos_Control ON Pedidos.npedido Pedidos_Control.npedidoControl
WHERE (Pedidos_Control.Expedido = 0) AND (Pedidos_Control.Anulado = 0)
AND (Pedidos.CodHilo IS NOT NULL) AND (Pedidos_Control.Marcada = 0)

OPEN marcada_cursor

WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM marcada_cursor
INTO @npedido
SET @Excel=(SELECT Pedidos_Control.Excel FROM Pedidos INNER
JOIN Pedidos_Control ON Pedidos.npedido =Pedidos_Control.npedidoControl
WHERE npedido=@npedido)
IF @Excel=0
UPDATE pedidos_control SET marcada=1 WHERE npedidocontrol=@npedido
END

CLOSE marcada_cursor
 

Leer las respuestas

#1 Maximiliano D. A.
03/03/2004 - 14:29 | Informe spam
Porque usas cursores?


Salu2
Maxi
Buenos Aires Argentina
Desarrollador Microsoft 3 Estrellas .NET
[Maxi_accotto[arroba]speedy[punto]com[punto]ar
MSN:


"edu" escribió en el mensaje
news:c24jka$jv0$
el cursor devuelve solo un registro
porque el siguiente procedimiento pasa dos veces por el cursor?

DECLARE @npedido AS INT
DECLARE @Excel AS BIT

DECLARE marcada_cursor CURSOR FOR
SELECT Pedidos.npedido
FROM Pedidos INNER JOIN Pedidos_Control ON Pedidos.npedido > Pedidos_Control.npedidoControl
WHERE (Pedidos_Control.Expedido = 0) AND (Pedidos_Control.Anulado 0)
AND (Pedidos.CodHilo IS NOT NULL) AND (Pedidos_Control.Marcada = 0)

OPEN marcada_cursor

WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM marcada_cursor
INTO @npedido
SET @Excel=(SELECT Pedidos_Control.Excel FROM Pedidos INNER
JOIN Pedidos_Control ON Pedidos.npedido =Pedidos_Control.npedidoControl
WHERE npedido=@npedido)
IF @Excel=0
UPDATE pedidos_control SET marcada=1 WHERE npedidocontrol=@npedido
END

CLOSE marcada_cursor







Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.593 / Virus Database: 376 - Release Date: 21/02/2004

Preguntas similares