Tiempo de Ejecución de un stored Procedure

27/05/2004 - 00:56 por Verónica | Informe spam
Tengo una Stored Procedure que realiza la consultas de varios registro remotamente.

Mi problema es que al mandarlo a llamar desde una pàgina Web solo me trae los primeros registros(2) siendo que existen más, es decir la llamada al stored procedure se corta y no se ejecuta completamente. Como puedo hacer para asegurarme que se ejecute el stored completamente y despues me devuelva la respuesta

CREATE PROC SP_RFCSPROCESO @IDPROCESO INT, @IDCAE VARCHAR(2
A
DECLARE @RFC VARCHAR(13)
@IDTIPEVAL VARCHAR(1)
@CVEPUESTO VARCHAR(6)
@FECSOL VARCHAR(10)
@QUERY VARCHAR(1000)
@NOMSEVER VARCHAR(20)
@NOMBD VARCHAR(20)
@IDCAEINT TINYIN

SET NOCOUNT ON

SELECT @NOMSEVER=NombreServidor,@NOMBD=NombreBD FROM CAES..IPS WHERE NoCAE = @IDCA
SELECT @IDCAEINT = CONVERT(TINYINT,@IDCAE

DECLARE RFC_CURSOR CURSOR FOR
SELECT vc_RFCFunc, t_IdTipEval, vc_CvePuesto, CONVERT(VARCHAR(10),sd_FecSolicitud
FROM SFC_REGFUN_TD_DatosPersonal D INNER JOIN SFC_REGFUN_TD_Solicitud S ON (D.i_IdFunc = S.i_IdFunc
INNER JOIN SFC_REGFUN_TC_PuestosEsp P ON (S.si_IdPuesto=P.si_IdPuesto
WHERE si_IdProcesoReg = @IDPROCESO AND t_IdCAE = @IDCAEIN

TRUNCATE TABLE TABLESTATU
OPEN RFC_CURSOR
FETCH NEXT FROM RFC_CURSOR INTO @RFC,@IDTIPEVAL,@CVEPUESTO,@FECSO
WHILE (@@FETCH_STATUS <> -1
BEGI
SELECT @QUERY = 'INSERT INTO TABLESTATUS SELECT * FROM OPENQUERY(' + @NOMSEVER + ',' + '''SELECT ID_SOLICITUD_EMPLEO ,LUGAR_SUC,RFC_DEL_ASPIRANTE,APE_PATERNO_ASPIRANTE,APE_MATERNO_ASPIRANTE,NOM_DEL_ASPIRANTE,CVE_PUESTO,ID_DE_LA_UNIDAD,FEC_SOLICITUD,DES_STATUS, S.ID_CENTRO_APP
FROM ' + @NOMBD + '..ASPIRANTE A INNER JOIN ' + @NOMBD + '..SOLICITUD_DE_EMPLEO S ON (A.ID_DEL_ASPIRANTE= S.ID_DEL_ASPIRANTE
INNER JOIN ' + @NOMBD + '..ESTADO_SOLICITUD_EMPLEO E ON (S.EDO_SOL_EMP = E.EDO_SOL_EMP
INNER JOIN ' + @NOMBD + '..CENTRO_RECSEL C ON (S.ID_CENTRO_APP=C.ID_CENTRO_APP
WHERE RFC_DEL_ASPIRANTE = ''''' + @RFC + '''''' + ' AND ID_TIP_EVAL = ' + @IDTIPEVAL +
' AND CVE_PUESTO = ''''' + @CVEPUESTO + '''''' + ' AND CONVERT(VARCHAR(10),FEC_SOLICITUD) >= ''''' + @FECSOL + '''''' + ' AND S.ID_CENTRO_APP = ' + @IDCAE + ''')

EXECUTE (@QUERY

FETCH NEXT FROM RFC_CURSOR INTO @RFC,@IDTIPEVAL,@CVEPUESTO,@FECSO
EN
SET NOCOUNT OFF

SELECT * FROM TABLESTATU

CLOSE RFC_CURSO
DEALLOCATE RFC_CURSO
G
 

Leer las respuestas

#1 Maxi
27/05/2004 - 01:17 | Informe spam
Hola Veronica (lindo nombre, mi novia se llama asi :-D)

A ver!! si ejecutas ese Store desde el Query analizer funciona bien?

de ser asi quizas el problema sea de MDAC en la aplicacion WEB o como estes
ejecutando este Store!!

Que version de SqlServer tienes? que version de Service Pack Tienes?
Que version de MDAC tienes?

Si tienes la version 2000 de Sql Server recorda que deberias tener el
Service Pack 3a, si es la version 7.0 el Sp 4.0

Y el MDAC recomendado es el 2.8

Suerte


Salu2

Maxi

Desarrollador 3 estrellas .NET
Buenos Aires - Argentina

MSN:

"Verónica" escribió en el mensaje
news:
Tengo una Stored Procedure que realiza la consultas de varios registro


remotamente.

Mi problema es que al mandarlo a llamar desde una pàgina Web solo me trae


los primeros registros(2) siendo que existen más, es decir la llamada al
stored procedure se corta y no se ejecuta completamente. Como puedo hacer
para asegurarme que se ejecute el stored completamente y despues me
devuelva la respuesta.

CREATE PROC SP_RFCSPROCESO @IDPROCESO INT, @IDCAE VARCHAR(2)
AS
DECLARE @RFC VARCHAR(13),
@IDTIPEVAL VARCHAR(1),
@CVEPUESTO VARCHAR(6),
@FECSOL VARCHAR(10),
@QUERY VARCHAR(1000),
@NOMSEVER VARCHAR(20),
@NOMBD VARCHAR(20),
@IDCAEINT TINYINT

SET NOCOUNT ON

SELECT @NOMSEVER=NombreServidor,@NOMBD=NombreBD FROM CAES..IPS WHERE NoCAE


= @IDCAE
SELECT @IDCAEINT = CONVERT(TINYINT,@IDCAE)

DECLARE RFC_CURSOR CURSOR FOR
SELECT vc_RFCFunc, t_IdTipEval, vc_CvePuesto,


CONVERT(VARCHAR(10),sd_FecSolicitud)
FROM SFC_REGFUN_TD_DatosPersonal D INNER JOIN SFC_REGFUN_TD_Solicitud S ON


(D.i_IdFunc = S.i_IdFunc)
INNER JOIN SFC_REGFUN_TC_PuestosEsp P ON (S.si_IdPuesto=P.si_IdPuesto)
WHERE si_IdProcesoReg = @IDPROCESO AND t_IdCAE = @IDCAEINT

TRUNCATE TABLE TABLESTATUS
OPEN RFC_CURSOR
FETCH NEXT FROM RFC_CURSOR INTO @RFC,@IDTIPEVAL,@CVEPUESTO,@FECSOL
WHILE (@@FETCH_STATUS <> -1)
BEGIN
SELECT @QUERY = 'INSERT INTO TABLESTATUS SELECT * FROM OPENQUERY(' +


@NOMSEVER + ',' + '''SELECT ID_SOLICITUD_EMPLEO
,LUGAR_SUC,RFC_DEL_ASPIRANTE,APE_PATERNO_ASPIRANTE,APE_MATERNO_ASPIRANTE,NOM
_DEL_ASPIRANTE,CVE_PUESTO,ID_DE_LA_UNIDAD,FEC_SOLICITUD,DES_STATUS,
S.ID_CENTRO_APP
FROM ' + @NOMBD + '..ASPIRANTE A INNER JOIN ' + @NOMBD +


'..SOLICITUD_DE_EMPLEO S ON (A.ID_DEL_ASPIRANTE= S.ID_DEL_ASPIRANTE)
INNER JOIN ' + @NOMBD + '..ESTADO_SOLICITUD_EMPLEO E ON (S.EDO_SOL_EMP E.EDO_SOL_EMP)
INNER JOIN ' + @NOMBD + '..CENTRO_RECSEL C ON


(S.ID_CENTRO_APP=C.ID_CENTRO_APP)
WHERE RFC_DEL_ASPIRANTE = ''''' + @RFC + '''''' + ' AND ID_TIP_EVAL = ' +


@IDTIPEVAL +
' AND CVE_PUESTO = ''''' + @CVEPUESTO + '''''' + ' AND


CONVERT(VARCHAR(10),FEC_SOLICITUD) >= ''''' + @FECSOL + '''''' + ' AND
S.ID_CENTRO_APP = ' + @IDCAE + ''')'

EXECUTE (@QUERY)

FETCH NEXT FROM RFC_CURSOR INTO @RFC,@IDTIPEVAL,@CVEPUESTO,@FECSOL
END
SET NOCOUNT OFF

SELECT * FROM TABLESTATUS

CLOSE RFC_CURSOR
DEALLOCATE RFC_CURSOR
GO


Preguntas similares