FIX: xp_sendmail 生成 UNICODE CSV 文件格式

文章翻译 文章翻译
文章编号: 280720 - 查看本文应用于的产品
错误 #: 351089 (SHILOH_BUGS)
错误 #: 351894 (SHILOH_BUGS)
展开全部 | 关闭全部

本文内容

症状

如果在 SQL Server 2000 执行 xp_sendmail 命令带有文件附件,并再尝试打开.csv 文件,与 Excel 中,Microsoft Word 或除记事本) 以外的任何其它应用程序可能会收到一条警告是无法识别的文件格式。

原因

SQL Server 2000 生成 xp_sendmail 具有 UNICODE 格式中的文件。在 SQL Server 7.0 文件生成带有 ANSI 格式。

解决方案

若要解决此问题,获得最新的 service pack,对于 SQL Server 2000。有关更多的信息请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
290211INF: 如何获取最新的 SQL Server 2000 Service Pack

替代方法

此修复程序的英文版应具有以下文件属性或更高版本:
   Date           Version     Size     File name      Platform
   -------------------------------------------------------------
   Nov 21, 2000   8.00.0224   165 KB   Sqlmap70.dll   x86
				

状态

Microsoft 已经确认这是 SQL Server 2000 中的问题。此问题 SQL Server 2000 Service Pack 1 中第一次已得到纠正。

更多信息

重现行为的步骤

  1. 运行以下命令:
    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. 您收到 test.csv 文件后,尝试将其打开以 Excel 或 Word ; 您将收到一个无法识别文件格式警告。
  3. 尝试在 SQL Server 7.0 中相同的步骤,请注意没有格式是必填。
应用此修补程序或 service pack 后,将实现以下两件事情:
  • 一个可选参数、 @ ansi_attachmentxp_sendmail 为创建。此参数可以为 True (指示一个 ANSI 附件文件) False (指示 UNICODE 的文件) 或不存在。当省略此参数时,将读取注册表值 ansi_attachment。
  • 决定是否将作为 ANSI 或 Unicode 发送附件 Sqlmap70.dll 读取以下新注册表项。

    对于默认实例:
    HKLM\Software\Microsoft\MSSQLSERVER\SQLMAPI\ansi_attachment
    对于命名实例:
    HKLM\Software\Microsoft\Microsoft SQL Server\InstanceNameHere\SQLMAPI\ansi_attachment
  • 缺少上面的注册表项是否按照以下步骤来创建注册表项。警告: 如果注册表编辑器使用不当可能会导致严重的问题,可能会要求您重新安装操作系统。Microsoft 不能保证可以解决问题所产生的错误地使用注册表编辑器。使用注册表编辑器需要您自担风险。

    1. 启动 Regedt32.exe。
    2. 对于默认实例导航到 HKLM\Software\Microsoft\MSSQLSERVER
      对于命名的实例导航到 HKLM\Software\Microsoft SQL Server\InstanceNameHere
    3. 创建新的密钥称为 SQLMAPI。
    4. 项的类为空。
    5. 创建一个新的值,调用 ansi_attachment。
    6. 将值的类型设置为 REG_DWORD。
    7. 将该值设置为 1 表示 ANSI 附件,0 表示 Unicode 附件。

属性

文章编号: 280720 - 最后修改: 2003年10月17日 - 修订: 3.2
这篇文章中的信息适用于:
  • Microsoft SQL Server 2000 标准版
关键字:?
kbmt kbbug kbfix kbqfe kbsqlserv2000sp1fix KB280720 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 280720
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

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