【问题标题】:Why does TClientDataSet get the wrong type for WideText fields?为什么 TClientDataSet 会为 WideText 字段获取错误的类型?
【发布时间】:2012-07-19 14:19:36
【问题描述】:

我正在使用 Delphi XE 的服务,我从客户端收到一个 ClientDataset。当我检查 ftWideText 字段的类型时,系统检测到该字段是 ftBlob。为了理解原因,我已将 ClientDataset 保存到一个文件中,并且我得到了带有该字段定义错误的 XML。我明白了:

<FIELD attrname="TEXTTEST" fieldtype="bin.hex" SUBTYPE="" SUBTYPE="WideText" />

属性SUBTYPE出现两次时正确为:

<FIELD attrname="TEXTTEST" fieldtype="bin.hex" SUBTYPE="WideText" />

这个问题只出现在服务器上;其他工作正常。不知道问题出在哪里,是Delphi、ADO、SQL Server。

如果我将 Web 服务更改为使用相同数据库的另一台计算机,则一切正常。我认为这是计算机上安装的组件的 ADO 问题。

更新:我在使用 Windows 2003 Server 计算机时遇到了同样的问题。两台装有 MDAC 2.8 SP2(ODBC 组件版本 3.526)的计算机都失败了。我在其中一台计算机上安装了 Microsoft SQLServer 2008 R2,问题已解决。我需要知道使用 SqlServer2008 安装或重新安装了什么来解决问题。显然与 ADO 有关,但现在我有两台机器使用相同版本的 ADO,只有一台出现故障。

【问题讨论】:

  • 服务器是否支持 Unicode 字符串?如果是,这些字段是这样声明的吗?

标签: sql-server delphi ado delphi-xe


【解决方案1】:

这个问题肯定与 ADO 组件有关。组件的版本是6.0,升级到6.1问题就解决了。

【讨论】:

    【解决方案2】:

    最后,问题与 Microsoft MDAC ADO 组件无关。问题是有这个问题的计算机有旧版本的 Midas.dll。该 dll 与 Delphi ClientDataset 相关。问题已修复,将服务器 Midas.dll 替换为相同版本的客户端。

    【讨论】:

      猜你喜欢
      • 2016-01-04
      • 2015-08-17
      • 1970-01-01
      • 2015-01-07
      • 1970-01-01
      • 2019-08-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-09
      相关资源
      最近更新 更多