Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 General SQL Server Forums
 New to SQL Server Programming
 cursorfetch error

Author  Topic 

carla
Starting Member

12 Posts

Posted - 2011-01-17 : 13:58:34
Hi everyone, can someone help me out, im having an error message when I execute my stored procedure

it says: Msg 16924, Level 16, State 1, Procedure spInsertaDominiosXVencer, Line 81
Cursorfetch: The number of variables declared in the INTO list must match that of selected columns.

DECLARE curDominios CURSOR FOR

SELECT @intDominioId,@strDominio,@dtmDominioFechaVencimiento
FROM tblDominio
WHERE dtmDominioFechaVencimiento >= dateadd(month,3,getdate()) and dtmDominioFechaVencimiento < dateadd(month,3,getdate())+1



OPEN curDominios

FETCH NEXT FROM curDominios
INTO
@strDominio,
@dtmEnvio,
@blnPendientexEnviar,
@blnEnviado,
@blnError,
@strEnvioComentarios,
@strBitacoraEnviadoPor,
@blnAutomatico

BEGIN
INSERT INTO tblBitacoraDominio
(
intBitacoraId,
strDominio,
dtmEnvio,
blnPendientexEnviar,
blnEnviado,
blnError,
strEnvioComentarios,
strBitacoraEnviadoPor,
blnAutomatico
)
VALUES(
@intBitacoraId,
@strDominio,
getdate(),
0,
0,
0,
'',
'SQL.System',
1
)

FETCH NEXT FROM curDominios

INTO
@intBitacoraId,
@strDominio,
@dtmEnvio,
@blnPendientexEnviar,
@blnEnviado,
@blnError,
@strEnvioComentarios,
@strBitacoraEnviadoPor,
@blnAutomatico
END

CLOSE curDominios
DEALLOCATE curDominios


carla

tkizer
Almighty SQL Goddess

38200 Posts

Posted - 2011-01-17 : 14:04:08
Your problem is with the SELECT statement. You need to SELECT the columns that you are going to put into the cursor.

This part:
SELECT @intDominioId,@strDominio,@dtmDominioFechaVencimiento

Switch to:
SELECT Column Name list that matches your INTO, don't use variables here, you need the column names.

Tara Kizer
Microsoft MVP for Windows Server System - SQL Server
http://weblogs.sqlteam.com/tarad/

Subscribe to my blog
Go to Top of Page

madhivanan
Premature Yak Congratulator

22864 Posts

Posted - 2011-01-18 : 08:56:50
You dont need a cursor

Use this


INSERT INTO tblBitacoraDominio
(
intBitacoraId,
strDominio,
dtmEnvio,
blnPendientexEnviar,
blnEnviado,
blnError,
strEnvioComentarios,
strBitacoraEnviadoPor,
blnAutomatico
)
SELECT
intBitacoraId,
strDominio,
getdate(),
0,
0,
0,
'',
'SQL.System',
1
FROM tblDominio
WHERE dtmDominioFechaVencimiento >= dateadd(month,3,getdate()) and dtmDominioFechaVencimiento < dateadd(month,3,getdate())+1


Madhivanan

Failing to plan is Planning to fail
Go to Top of Page
   

- Advertisement -