Microsoft 托管提供程序主机文件的不服从不是在主机集成服务器 2006 年美国 EBCDIC 037 的主机 CCSID 代码页


症状


主机文件在 Microsoft 主机集成服务器 2006 年托管提供程序并不理会主机字符代码组标识符 (CCSID) 的代码页不支持美国 EBCDIC 037 的。

例如,您可以配置用于访问主机文件的连接字符串。使用连接字符串来指定主机 CCSID 代码页中,不是美国 EBCDIC 037。但是,主机文件托管提供程序将继续使用美国 EBCDIC 037,而不是配置的主机 CCSID 代码页。

原因


因为主机 CCSID 代码页属性不从托管代码传递到 HostAccess.dll 文件,将出现此问题。

解决方案


Service Pack 信息

若要解决此问题,请获取主机集成服务器 2006 年最新的 service pack。有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
979497如何获取最新的主机集成服务器 2006年服务包

修补程序信息

可以从 Microsoft 获得受支持的修复程序。然而,此修补程序仅用于解决本文中描述的问题。此修复程序仅适用于遇到本文中描述的问题的系统。此修补程序可能会接受进一步的测试。因此,如果这个问题没有对您造成严重的影响,我们建议您等待包含此修复程序的下一个软件更新。

如果此修复程序可供下载,则在此知识库文章的顶部会出现“修补程序下载可用”部分。如果未显示此部分,请与 Microsoft 客户服务和支持部门联系以获取此修复程序。

注意:如果出现其他问题或需要任何故障诊断时,您可能需要创建单独的服务请求。对于不符合此特定的修补程序的其他支持问题和事项将照常收取费用。有关 Microsoft 客户服务和支持电话号码或创建单独的服务请求的完整列表,请访问下面的 Microsoft 网站︰注意:"提供修补程序下载"窗体显示获取此修复程序的语言。如果看不到您的语言,则修补程序没有那种语言的版本。

系统必备组件

您必须安装该修补程序的主机集成服务器 2006年。

重启要求

应用此修补程序后,不需要重新启动计算机。

修补程序替换信息

此更新不替换任何以前发布的修补程序。

文件信息

此修复程序的英文版具有的文件属性 (或更高版本) 在下表中列出。日期和为这些文件的时间以协调世界时 (UTC) 列出。当您查看文件信息时,它将转换为本地时间。要了解 UTC 与本地时间之间的时差,请使用控制面板中的日期和时间工具中的时区选项卡。

主机集成服务器 2006 年,32 位版本
文件名称文件版本文件大小日期时间平台
Hostaccess.dll7.0.2913.0116,55204-Feb-200904:14x86
Microsoft.hostintegration.mshostfileclient.dll7.0.2913.0165,76804-Feb-200904:14x86

主机集成服务器 2006 年,64 位版本
文件名称文件版本文件大小日期时间平台
Hostaccess.dll7.0.2913.0116,55204-Feb-200904:14x64
Microsoft.hostintegration.mshostfileclient.dll7.0.2913.0165,76804-Feb-200904:14x64

状态


Microsoft 已经确认这是“适用于”一节中列出的 Microsoft 产品中的问题。

详细信息


应用此更新后,主机文件托管提供程序使用的连接字符串中指定的主机 CCSID 代码页。主机文件托管提供程序使用此主机 CCSID 代码页转换为发送和接收主机系统中的数据。

在应用此更新后,您可能会注意到,仍将为美国 EBCDIC 037 的主机 CCSID 代码页显示在 Microsoft Visual Studio。这可能会发生您主机列说明 (HCD) 文件或被配置为使用主机 CCSID 代码页中,不是美国 EBCDIC 037 程序集导入。但是,这不影响主机集成服务器 2006年读取和写入数据时,会发生实际数据转换过程。因为在连接字符串中的主机 CCSID 代码页用于应用此更新后,不会影响数据转换过程。

下面的示例说明如何主机 CCSID 代码页不正确地显示在 Microsoft Visual Studio 中︰

如果在托管提供程序用于在主机集成服务器 2006 年主机文件的 Visual Studio 中创建主机文件项目,您可以导入现有 HCD 文件。此 HCD 文件描述主机文件系统上将访问数据文件的格式。例如,以下示例 HCD 文件导入︰
[files]
SAMPLE/ACCOUNTS=1

[SAMPLE/ACCOUNTS]
numcol=4
col1=0;CUST_NO;CUST_NO;8;0;0;ZONED;LONG;N;937;;
col2=0;CUST_NAME;CUST_NAME;0;0;40;CHAR;CHAR;N;937;;
col3=0;BALANCE;BALANCE;10;2;0;ZONED;FLOAT;Y;937;;
col4=0;LAST_ACC;LAST_ACC;0;0;26;TIMESTAMP;TIMESTAMP;N;937;;
在此示例中,主机 CCSID 代码页配置为 937 (IBM EBCDIC-繁体中文)。当此 HCD 文件导入到一个主机文件库,并且您在 Visual Studio 设计器中的 HCD 选项卡中查看结果时,作为美国 EBCDIC 037 显示列出的代码页。例如,列出的代码页将显示如下︰
[Files]
SAMPLE/ACCOUNTS=1
[SAMPLE/ACCOUNTS]
UseForFileTransfer=0
DelimiterField=
DelimiterRecord=
TextQualifier=
FileCreationType=0
KeyPosition=0
KeyLength=0
KeySort=A
Col1=0;CUST_NO;CUST_NO;8;0;8;ZONED;LONG;N;37; ;N;
Col2=0;CUST_NAME;CUST_NAME;40;0;40;CHAR;CHAR;N;37; ;N;
Col3=0;BALANCE;BALANCE;8;2;10;ZONED;DECIMAL;N;37; ;N;
Col4=0;LAST_ACC;LAST_ACC;0;0;26;TIMESTAMP;TIMESTAMP;N;37; ;N;

有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
用于描述 Microsoft 软件更新的标准术语的824684说明