Estou usando o código abaixo para criar um arquivo com os dados dos colaboradores da minha empresa.
Toda vez que um funcionário novo é cadastrado, ele é adicionado neste arquivo. Estava funcionando bem até a o registro 1578 e a partir dai, não adicionou mais nenhum novo funcionário.
Aqui na empresa usamos o SQL Server 2000 SP2
Alguém tem idéia do que possa ser? já verifiquei tudo, inclusive se faço o select da procedure, ela traz todos os funcionários!
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE sp_Arquivo_Seguranca AS
DECLARE @vchrFile VARCHAR(1000) ,
@vchrFileID INT ,
@FS INT ,
@RC INT ,
@DATA_PROC INT,
@NOME CHAR(60)
--Vai criar o arquivo no caminho do servidor SQLSERVER
Pergunta
victor daniel1281
Boa tarde
Estou usando o código abaixo para criar um arquivo com os dados dos colaboradores da minha empresa.
Toda vez que um funcionário novo é cadastrado, ele é adicionado neste arquivo. Estava funcionando bem até a o registro 1578 e a partir dai, não adicionou mais nenhum novo funcionário.
Aqui na empresa usamos o SQL Server 2000 SP2
Alguém tem idéia do que possa ser? já verifiquei tudo, inclusive se faço o select da procedure, ela traz todos os funcionários!
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE sp_Arquivo_Seguranca AS
DECLARE @vchrFile VARCHAR(1000) ,
@vchrFileID INT ,
@FS INT ,
@RC INT ,
@DATA_PROC INT,
@NOME CHAR(60)
--Vai criar o arquivo no caminho do servidor SQLSERVER
--SET @vchrFile = '\\tmb931\bkpsql\TV1\SUNGEM01.DAT'
SET @vchrFile = '\\tmb849\d$\Arquivo_humanus\COLABORADORES.DAT'
EXEC @RC = sp_OACreate 'Scripting.FileSystemObject', @FS OUT
SET @RC = 0
IF @RC <> 0
BEGIN
PRINT 'Error: Criando o arquivo - @RC = ' + CAST(@RC AS VARCHAR)
END
-- Abrindo o arquivo especificado por @vchrFile
EXEC @RC = sp_OAMethod @FS , 'OpenTextFile' , @vchrFileID OUT , @vchrFile , 2 , 1
IF @RC <> 0
BEGIN
PRINT 'Error: Abrindo o arquivo especifico @RC = ' + CAST(@RC AS VARCHAR)
END
-- =============================================
-- Alterado de F.MTENROMATREXTERNO
DECLARE curLines CURSOR KEYSET FOR
SELECT (CAST (F.MTENROMATREXTERNO AS CHAR(6)) +';'+
CAST (C.pesNomeExtenso AS CHAR(54)) +';'+
CAST (D.pfuCodLotacao AS CHAR(10)) +';'+
CAST (E.lotDenominacao AS CHAR(70)) +';'+
CAST (T.FILENDCIDADE AS CHAR(25)) +';'+ --filNomeFilial, --Cidade Filial
CAST (T.FILTELEFONE AS CHAR(17)) +';'+ --filTelefone, --Telefone Filial
CAST (c.pesEmail AS CHAR(50)) +';'+
CAST (MTECODEMPRESA AS CHAR(3)) +';'+
CAST (I.PESNOMEEXTENSO AS CHAR(51)) +';'+
CAST (c.pesTipoPessoa AS CHAR(2)) +';'+
CAST (CONVERT(VARCHAR(10),pfuDtInicioContrato , 121) AS CHAR(10)) +';'+
CAST (denominacao AS CHAR(51)) +';'+
CAST (pfiDINumero AS CHAR(10)) +';'+
CAST (pfiCPFnumeroDigito AS CHAR(11)) +';'+
CAST (CONVERT(VARCHAR(10),pfiDataNascim , 121) AS CHAR(10)) +';'+
CAST (pfiNomeMae AS CHAR(51)) +';'+
CAST (mteUltSituacao AS CHAR(2)) +';'+
--CAST (ISNULL(C.PESTELCOMERCIAL,C.PESRAMAL) AS CHAR(20))+';'+
--CAST (C.PESTELCOMERCIAL AS CHAR(20))+';'+
CAST (c.pesRamal AS CHAR(4)) +';'+
CAST (S.CCUCODCENTROCUSTO AS CHAR(4))
) AS SAIDA
FROM PESSOA_FIS_FUNC A,
CES_CARGO B,
PESSOA_PESS C,
PESSOA_FUNC D,
LOTACAO E,
MATRICULA_EXTERNA F,
PESSOA_FISICA G ,
PESSOA_PESS I,
MAPA_CUSTO R ,
CENTRO_CUSTO S,
FILIAL T
WHERE --pffcodpessoa=6444 AND
A.PFFCODCARGO=B.CODCARGO
AND A.PFFCODPESSOA=C.PESCODPESSOA
AND A.PFFCODPESSOA=D.PFUCODPESSOA
AND E.LOTCODLOTACAO=D.PFUCODLOTACAO
AND C.PESCODPESSOA=F.MTECODPESSOA
AND D.PFUCODPESSOASUPERV=I.PESCODPESSOA
AND A.PFFCODPESSOA=G.PFICODPESSOA
AND D.PFUCODLOTACAO=R.MAPCODLOTACAO
AND R.MAPCODCENTROCUSTO=S.CCUCODCENTROCUSTO
AND F.MTECODEMPRESA =T.FILCODEMPRESA
AND F.MTENROFILIAL=T.FILNROFILIAL
AND MTEULTSITUACAO <> '3'
AND C.PESTIPOPESSOA IN ('MM','DR','ES')
AND MTECODEMPRESA IN ('001','002')
DECLARE @vchrText VARCHAR(8000)
OPEN curLines
FETCH NEXT FROM curLines INTO @vchrText
WHILE (@@fetch_status = 0) AND (@RC = 0)
BEGIN
-- Dá um Append no arquivo, incluindo as linhas
EXEC @RC = sp_OAMethod @vchrFileID, 'WriteLine', Null , @vchrText
-- Erro ao popular arquivo
IF @RC <> 0
BEGIN
PRINT 'Error: Writing string data to file - @RC = ' + CAST(@RC AS VARCHAR)
END
FETCH NEXT FROM curLines INTO @vchrText
-- PRINT 'SAIDA => ' + @vchrTexT
END
CLOSE curLines
DEALLOCATE curLines
EXECUTE @RC = sp_OAMethod @vchrFileID, 'close', Null //Chama um método de um objeto OLE
EXECUTE @RC = sp_OADestroy @vchrFileID //desalocar a instância do objeto criado
EXECUTE @RC = sp_OADestroy @FS
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.