gerar/ler arquivo txt no sql.
pessoal, li uns artigos e me falaram que dentro do sql server dá pra fazer algum tipo de rotina e gerar/ler um arquivo txt. E depois chamar essa rotina na linguagem de programação.
Tem como?
Tem como?
Rafa-martin
Curtidas 0
Respostas
Viniciusnunes
13/10/2005
Amigão tem como sim .
Vc deve procura por FSO ( File System Object )
segue um exemplo que eu tenho veja se te ajuda .
============================================
alter procedure sp_escrevenoarquivo (@Caminho SYSNAME, @TXT VARCHAR(8000) )
as
begin
DECLARE @FSO INT, @RES int, @FID int
EXECUTE @RES = sp_OACreate ´Scripting.FileSystemObject´, @FSO OUT
-- Abertura do Arquivo
EXECUTE @RES = sp_OAMethod @FSO, ´OpenTextFile´, @FID OUT, @Caminho, 8, 1
-- Escrita para o arquivo
EXECUTE @RES = sp_OAMethod @FID, ´WriteLine´, Null, @TXT
EXECUTE @RES = sp_OAMethod @FID, ´close´, Null
EXECUTE @RES = sp_OADestroy @FID
EXECUTE @RES = sp_OADestroy @FSO
end
EXEC SP_EscreveNoArquivo ´C:\Testes.txt´ , ´Essa é a primeira linha do arquivo´
Vc deve procura por FSO ( File System Object )
segue um exemplo que eu tenho veja se te ajuda .
============================================
alter procedure sp_escrevenoarquivo (@Caminho SYSNAME, @TXT VARCHAR(8000) )
as
begin
DECLARE @FSO INT, @RES int, @FID int
EXECUTE @RES = sp_OACreate ´Scripting.FileSystemObject´, @FSO OUT
-- Abertura do Arquivo
EXECUTE @RES = sp_OAMethod @FSO, ´OpenTextFile´, @FID OUT, @Caminho, 8, 1
-- Escrita para o arquivo
EXECUTE @RES = sp_OAMethod @FID, ´WriteLine´, Null, @TXT
EXECUTE @RES = sp_OAMethod @FID, ´close´, Null
EXECUTE @RES = sp_OADestroy @FID
EXECUTE @RES = sp_OADestroy @FSO
end
EXEC SP_EscreveNoArquivo ´C:\Testes.txt´ , ´Essa é a primeira linha do arquivo´
GOSTEI 0
Mcfaria
13/10/2005
Olá amigo,
Boa tarde!
Executei a rotina acima, mas recebi a seguinte mensagem de erro
Server: Msg 208, Level 16, State 6, Procedure EscreveArq, Line 20
Invalid object name ´sp_escrevenoarquivo´.
Por favor, você poderia me ajudar a resolver este problema?
Um grande abraço.
Boa tarde!
Executei a rotina acima, mas recebi a seguinte mensagem de erro
Server: Msg 208, Level 16, State 6, Procedure EscreveArq, Line 20
Invalid object name ´sp_escrevenoarquivo´.
Por favor, você poderia me ajudar a resolver este problema?
Um grande abraço.
GOSTEI 0
Diogo.pereira
13/10/2005
Tente utilizar create procedure ao invez de alter procedure
Amigão tem como sim .
Vc deve procura por FSO ( File System Object )
segue um exemplo que eu tenho veja se te ajuda .
============================================
alter procedure sp_escrevenoarquivo (@Caminho SYSNAME, @TXT VARCHAR(8000) )
as
begin
DECLARE @FSO INT, @RES int, @FID int
EXECUTE @RES = sp_OACreate ´Scripting.FileSystemObject´, @FSO OUT
-- Abertura do Arquivo
EXECUTE @RES = sp_OAMethod @FSO, ´OpenTextFile´, @FID OUT, @Caminho, 8, 1
-- Escrita para o arquivo
EXECUTE @RES = sp_OAMethod @FID, ´WriteLine´, Null, @TXT
EXECUTE @RES = sp_OAMethod @FID, ´close´, Null
EXECUTE @RES = sp_OADestroy @FID
EXECUTE @RES = sp_OADestroy @FSO
end
EXEC SP_EscreveNoArquivo ´C:\Testes.txt´ , ´Essa é a primeira linha do arquivo´
GOSTEI 0
Wagnerbianchi
13/10/2005
CREATE PROCEDURE sp_escrevenoarquivo (@Caminho SYSNAME, @TXT VARCHAR(8000) ) AS BEGIN DECLARE @FSO INT, @RES int, @FID int EXECUTE @RES = sp_OACreate ´Scripting.FileSystemObject´, @FSO OUT -- Abertura do Arquivo EXECUTE @RES = sp_OAMethod @FSO, ´OpenTextFile´, @FID OUT, @Caminho, 8, 1 -- Escrita para o arquivo EXECUTE @RES = sp_OAMethod @FID, ´WriteLine´, Null, @TXT EXECUTE @RES = sp_OAMethod @FID, ´close´, Null EXECUTE @RES = sp_OADestroy @FID EXECUTE @RES = sp_OADestroy @FSO END
Muda o contexto geral para o seu banco de dados e executa esse código acima. . .
Abraço!!
GOSTEI 0