Ir para conteúdo
Fórum Script Brasil
  • 0

Leitura Arquivo Txt


Guest - Roger -

Pergunta

Bom dia à todos,

Estou tentando ler um arquivo txt em um diretório na rede à partir do SQL Server 7( S.O. win 2000 Prof.)e não estou conseguindo, o que acontece é que quando uso na minha maquina em casa (winXP) ele lê normalmente.

Poderiam me apontar o erro, seria no XPShell?

Segue abaixo o código para análise.

if exists (select * from sysobjects where id = object_id(N'[dbo].[sp_job_sql]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)

drop procedure [dbo].[sp_job_sql]

GO

create procedure [dbo].sp_job_sql as

/* Autor : Sidnei Manço */

/* Data : 99/99/9999 */

set nocount on

Declare @path_txt varchar(50),

@comando nvarchar(250),

@string_item nvarchar(300),

@linhas int,

@id_linha_item int,

@id_linha int,

@nome_arq varchar(50),

@nr_error int,

@errmsg varchar(255),

@arquivo_renomeado varchar(50),

@dt_arq datetime,

@id_codigo varchar(06),

@nome varchar(40)

select @path_txt = 'C:\LIXO\teste_job_sql\'

create table #tmp_dir( campo varchar(255) null )

create table #tmp_arq( id_linha int identity(1,1) ,

campo varchar(255) null ,

nome_arq varchar(50) null ,

dt_arq datetime null ,

processa char(1) default 'S' )

create NONCLUSTERED index idx_tmp_arq on #tmp_arq(id_linha)

create table #tmp_item( id_linha int identity(1,1) ,

campo varchar(300) null )

create NONCLUSTERED index idx_tmp_item on #tmp_item(id_linha)

select @comando = 'dir '+@path_txt+'*.txt /od'

insert #tmp_dir

exec master..xp_cmdshell @comando

insert #tmp_arq( campo )

select campo

from #tmp_dir

/* limpa linhas desnecessarias */

select @linhas=max(id_linha)

from #tmp_arq

delete from #tmp_arq where id_linha<=5

delete from #tmp_arq where id_linha>=@linhas-1

delete from #tmp_arq where isnumeric( substring( campo,1,2))=0

/* acerta nome do arq, data gerada e se já foi carregado */

update #tmp_arq

set nome_arq = substring(campo,37,50)

-- select * from #tmp_arq

select @id_linha=0

while exists( select 1 from #tmp_arq where id_linha>@id_linha )

begin

select top 1 @nome_arq = nome_arq ,

@dt_arq = dt_arq ,

@id_linha = id_linha

from #tmp_arq

where id_linha>@id_linha

order by id_linha

select @comando = 'type '+@path_txt+@nome_arq

set @arquivo_renomeado = substring( @nome_arq, 1, charindex('.',@nome_arq ) )+'REN'

insert #tmp_item

exec master..xp_cmdshell @comando

-- Le os itens da requisição

--- commit transaction

set @nr_error = 0

select @id_linha_item=0

while exists( select 1 from #tmp_item where id_linha>@id_linha_item )

begin

select top 1 @string_item = campo,

@id_linha_item = id_linha

from #tmp_item

where id_linha>@id_linha_item

order by id_linha

set @id_codigo = substring( @string_item, 1, 6 )

set @nome = substring( @string_item, 8, 20 )

-- select @id_codigo

-- select @nome

insert tb_job_sql( id_codigo, nome )

values( @id_codigo,

@nome )

set @nr_error = @nr_error + @@error

end

delete from #tmp_item

----

-- Deleta caso tenha ocorrido algum erro

-- if @nr_error <> 0

-- begin

-- rollback

-- end

-- else

-- begin

-- commit tran

-- end

----

select @comando = 'move '+@path_txt+@nome_arq+ ' '+@path_txt+@arquivo_renomeado

exec master..xp_cmdshell @comando

end

drop table #tmp_dir

drop table #tmp_arq

drop table #tmp_item

set nocount off

GO

SET QUOTED_IDENTIFIER OFF

SET ANSI_NULLS ON

SET ANSI_WARNINGS ON

GO

-- GRANT EXECUTE ON [dbo].[sp_job_sql] TO [***grupo]

GO

-- @errmsg varchar(255)

Agradeço Antecipadamente,

Rogerio

rogerio@tectoy.com.br

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,9k
×
×
  • Criar Novo...