CORRECÇÃO: xp_sendmail Generates UNICODE CSV ficheiro formato

Traduções de Artigos Traduções de Artigos
Artigo: 280720 - Ver produtos para os quais este artigo se aplica.
N.º DE BUGS: 351089 (SHILOH_BUGS)
N.º DE BUGS: 351894 (SHILOH_BUGS)
Expandir tudo | Reduzir tudo

Nesta página

Sintomas

Se executar o comando xp_sendmail com um anexo de ficheiro no SQL Server 2000 e, em seguida, tente abrir o ficheiro .csv com o Microsoft Excel, Microsoft Word ou qualquer outra aplicação (excepto o bloco de notas [Notepad]), poderá receber um aviso de que o formato de ficheiro é irreconhecível.

Causa

SQL Server 2000 gera ficheiros xp_sendmail com um formato UNICODE. No SQL Server 7.0, os ficheiros são criados com um formato ANSI.

Resolução

Para resolver este problema, obtenha o service pack mais recente do SQL Server 2000. Para obter informações adicionais, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
290211INF: How to Obtain the Latest SQL Server 2000 Service Pack

Como contornar

A versão inglesa desta correcção deverá ter os seguintes atributos de ficheiro ou posteriores:
   Date           Version     Size     File name      Platform
   -------------------------------------------------------------
   Nov 21, 2000   8.00.0224   165 KB   Sqlmap70.dll   x86
				

Ponto Da Situação

A Microsoft confirmou que este é um problema no SQL Server 2000. Este problema foi corrigido pela primeira vez no SQL Server 2000 Service Pack 1.

Mais Informação

Passos para reproduzir o comportamento

  1. Execute o seguinte comando:
    execute	master..xp_sendmail
    	@recipients = 'user1',
        	@message = 'Testing',
        	@query = 'select * from sysobjects',
        	@width = 256,
        	@subject = 'testing',
        	@attach_results = 'true',
        	@no_header = 'false',
        	@separator = ',',
        	@attachments = 'test.csv'
    					
  2. Depois de receber o ficheiro test.csv, tente abri-lo no Excel ou Word; receberá um ficheiro não reconhecido Formatar aviso.
  3. Tente os mesmos passos no SQL Server 7.0 e tenha em atenção que é necessário sem formatação.
Depois de aplica a correcção ou service pack, são implementadas as seguintes duas coisas:
  • Um parâmetro opcional, @ ansi_attachment , é criada para xp_sendmail . Este parâmetro pode ser VERDADEIRO (indicando um ficheiro de anexo ANSI), FALSE (indicando um ficheiro UNICODE) ou não está presente. Quando este parâmetro for omitido, um valor de registo, ansi_attachment, é de leitura.
  • A seguinte nova chave de registo é lido pela Sqlmap70.dll para decidir se pretende enviar os anexos como ANSI ou Unicode.

    Para instância predefinida:
    HKLM\Software\Microsoft\MSSQLSERVER\SQLMAPI\ansi_attachment
    Para instância nomeada:
    HKLM\Software\Microsoft\Microsoft SQL Server\InstanceNameHere\SQLMAPI\ansi_attachment
  • Se a chave de registo acima estiver em falta, siga os passos abaixo para criar a chave de registo. aviso : a utilização incorrecta do Editor de registo poderá provocar problemas graves que poderão forçar a reinstalação do sistema operativo. Microsoft não garante que os problemas resultantes da utilização incorrecta do Editor de registo possam ser resolvidos. As suas próprias risco da utilização do Editor de registo.

    1. Inicie o Regedt32.exe.
    2. Para instância predefinida, navegue para HKLM\Software\Microsoft\MSSQLSERVER .
      Para instância nomeada, navegue para HKLM\Software\Microsoft SQL Server\InstanceNameHere .
    3. Crie uma nova chave denominada SQLMAPI.
    4. A classe para a chave deixe em branco.
    5. Crie um novo valor denominado ansi_attachment.
    6. Defina o tipo do valor como REG_DWORD.
    7. Defina o valor para 1 para o ANSI anexos, 0 para anexos de Unicode.

Propriedades

Artigo: 280720 - Última revisão: 17 de outubro de 2003 - Revisão: 3.2
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2000 Standard Edition
Palavras-chave: 
kbmt kbbug kbfix kbqfe kbsqlserv2000sp1fix KB280720 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 280720

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com