none
BCP caminho na rede RRS feed

  • Pergunta

  • Bom dia a todos...

     Segnte, eu uso o comando BCP para exportar os dados de uma consulta em SQL conforme abaixo :

    SET @caminho='C:\'
    SET @NomeArquivo = '1NFE.txt'                                     
    select @exec = 'exec master..xp_cmdshell''  BCP "select texto from dw..RetornoNf order by id" queryout '+@caminho+@NomeArquivo+' -E -c -T -U** -P** '''
    exec(@exec)

    Este comando funciona perfeitamente... Meu problema é que o sistema foi migrado para acessar remotamente (TS) então no caminmho estou passando

    SET @caminho='\\tsclient\C\NFE\'

    mas é retornado uma msg de erro

    Error = [Microsoft][SQL Server Native Client 10.0]Não é possível abrir o arquivo de dados do host BCP

     

    O que eu já fiz:

    Maper um drive apontando para esta pasta que esta no pc do cliente... e alterar o @caminho...

    Na conexao remota pelo explorer o cliente consegue "ver" os drives da sua maquina

     

    O BCP não exporta para uma pasta em rede ? tem como contornar este problema....

     

    Att,

    Jose Luiz

    A Solução adotada...

    O Sistema pede o caminho

     

    • Movido Gustavo Maia Aguiar terça-feira, 27 de abril de 2010 01:52 (De:SQL Server - Desenvolvimento Geral)
    sábado, 24 de abril de 2010 14:50

Respostas

  • Você verificou as permissões desta pasta no servidor??

    Se tem permissão para modificar?


    "ѕó αqυєℓєѕ q тєм α ¢σяαgєм ∂є ¢αмιηнαя, ρσ∂єм νινєя тσ∂σѕ σѕ ∂ιαѕ ηα ¢єятєzα ∂є ¢нєgαя" msn: poseidonfba@hotmail.com
    sábado, 24 de abril de 2010 17:01
  • Jose,

    Quando você utilizar uma sessão de TS é possível especificar para que as unidades de rede sejam mapeadas para as sessões, desta forma, seu script poderá funcionar.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário]
    domingo, 25 de abril de 2010 02:04
    Moderador
  • Opa obrigado por responder POSEIDON

    Então as pastas ja tem a permissão ...

    Mas a pasta não é do servidor é da maquina do cliente....

     

    domingo, 25 de abril de 2010 13:53
  • Opa obrigado por responder Junior

     

    Então as unidades do cliente já são mapeadas para a sessão dele... NO entanto que ele pode salvar um arquivo qualquer acessando \\tsclient\c\   mas isso só funciona pelo windows explorer...

    quando eu passo este caminho (\\tsclient\C\NFE\)  pelo BCP ele me retorna o erro ..."Error = [Microsoft][SQL Server Native Client 10.0]Não é possível abrir o arquivo de dados do host BCP"

     

    Será que o BCP não reconhece pastas mapeadas via TS ?

     

     

    domingo, 25 de abril de 2010 13:56
  • Jose,

    Você já tentou passar o endereço de IP?


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário]
    segunda-feira, 26 de abril de 2010 14:31
    Moderador
  • Então....

    ainda não tentei... mas o ip do cliente sempre será dinâmico, será que seria uma boa pratica ?

     

    Mas interessante né...

    via explorer eu consigo.. \\tsclient\c\nfe

    mas via BCP nada feito....

     

     

    segunda-feira, 26 de abril de 2010 22:09
  • Boa Noite,

    Não vejo como isso possa dar certo. O caminho \\tsclient é um caminho que aparece para o usuário logado e o xp_cmdshell irá sempre obedecer a conta de serviço do SQL Server. Se isso estiver correto, o SQL Server jamais irá enxergar o caminho \\tsclient.

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com


    Classifique as respostas. O seu feedback é imprescindível
    terça-feira, 27 de abril de 2010 01:52
  • Opa Gustavo...

     Isso mesmo o xp_cmdshell irá ser startado com a conta do SQL Server, logo não irá reconhecer o comando \\tsclient...

     

    Agora para quem estiver interessado na solução que eu encontrei .:

    Foram 2 soluções .:

    1 - Instalei o SQL Server Express no cliente, ai liberei o SQL para acesso via web (porta 1433 e 1444) entao no bcp mandei o resultado para este servidor sql ...

       Obs... Não gostei desta solução pois além de ficar instalando o SQL Express, necessito ficar configurando firewall e router, enfim fiz somente para fins didáticos....

     

    2 - Solução adotada...

       Configurei nosso ERP para "perguntar" onde irá salvar o arquivo, logo não utilizo mais o BCP e sim um pequeno programinha em Delphi que retorna o resultado e salva em arquivo .txt

      Obs... Expliquei as usuários que a exportação automática não seria possível, devido a segunrança (hehehe), entao apresentei esta solução e expliquei as vantagens dela... Todos entenderam e por incrível que parece a maioria já preferia esta solução, por não ter que deixar uma pasta sempre padrão no seu PC....  Como o arquivo que eu exporto não necessita salvar, então fechou...

     

     

     

    Obrigado por todos que contrinuiram neste tópico....

     

     

    domingo, 2 de maio de 2010 13:49

Todas as Respostas

  • Você verificou as permissões desta pasta no servidor??

    Se tem permissão para modificar?


    "ѕó αqυєℓєѕ q тєм α ¢σяαgєм ∂є ¢αмιηнαя, ρσ∂єм νινєя тσ∂σѕ σѕ ∂ιαѕ ηα ¢єятєzα ∂є ¢нєgαя" msn: poseidonfba@hotmail.com
    sábado, 24 de abril de 2010 17:01
  • Jose,

    Quando você utilizar uma sessão de TS é possível especificar para que as unidades de rede sejam mapeadas para as sessões, desta forma, seu script poderá funcionar.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário]
    domingo, 25 de abril de 2010 02:04
    Moderador
  • Opa obrigado por responder POSEIDON

    Então as pastas ja tem a permissão ...

    Mas a pasta não é do servidor é da maquina do cliente....

     

    domingo, 25 de abril de 2010 13:53
  • Opa obrigado por responder Junior

     

    Então as unidades do cliente já são mapeadas para a sessão dele... NO entanto que ele pode salvar um arquivo qualquer acessando \\tsclient\c\   mas isso só funciona pelo windows explorer...

    quando eu passo este caminho (\\tsclient\C\NFE\)  pelo BCP ele me retorna o erro ..."Error = [Microsoft][SQL Server Native Client 10.0]Não é possível abrir o arquivo de dados do host BCP"

     

    Será que o BCP não reconhece pastas mapeadas via TS ?

     

     

    domingo, 25 de abril de 2010 13:56
  • Jose,

    Você já tentou passar o endereço de IP?


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário]
    segunda-feira, 26 de abril de 2010 14:31
    Moderador
  • Então....

    ainda não tentei... mas o ip do cliente sempre será dinâmico, será que seria uma boa pratica ?

     

    Mas interessante né...

    via explorer eu consigo.. \\tsclient\c\nfe

    mas via BCP nada feito....

     

     

    segunda-feira, 26 de abril de 2010 22:09
  • Boa Noite,

    Não vejo como isso possa dar certo. O caminho \\tsclient é um caminho que aparece para o usuário logado e o xp_cmdshell irá sempre obedecer a conta de serviço do SQL Server. Se isso estiver correto, o SQL Server jamais irá enxergar o caminho \\tsclient.

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com


    Classifique as respostas. O seu feedback é imprescindível
    terça-feira, 27 de abril de 2010 01:52
  • Opa Gustavo...

     Isso mesmo o xp_cmdshell irá ser startado com a conta do SQL Server, logo não irá reconhecer o comando \\tsclient...

     

    Agora para quem estiver interessado na solução que eu encontrei .:

    Foram 2 soluções .:

    1 - Instalei o SQL Server Express no cliente, ai liberei o SQL para acesso via web (porta 1433 e 1444) entao no bcp mandei o resultado para este servidor sql ...

       Obs... Não gostei desta solução pois além de ficar instalando o SQL Express, necessito ficar configurando firewall e router, enfim fiz somente para fins didáticos....

     

    2 - Solução adotada...

       Configurei nosso ERP para "perguntar" onde irá salvar o arquivo, logo não utilizo mais o BCP e sim um pequeno programinha em Delphi que retorna o resultado e salva em arquivo .txt

      Obs... Expliquei as usuários que a exportação automática não seria possível, devido a segunrança (hehehe), entao apresentei esta solução e expliquei as vantagens dela... Todos entenderam e por incrível que parece a maioria já preferia esta solução, por não ter que deixar uma pasta sempre padrão no seu PC....  Como o arquivo que eu exporto não necessita salvar, então fechou...

     

     

     

    Obrigado por todos que contrinuiram neste tópico....

     

     

    domingo, 2 de maio de 2010 13:49