gpt4 book ai didi

delphi - TBCDField 和 TfmtBCDfield 类型不匹配以及 Oracle 兼容性问题

转载 作者:行者123 更新时间:2023-12-03 14:55:00 26 4
gpt4 key购买 nike

我正在将一个大型应用程序从 Delphi 6 转换为 Delphi 2009。

它最初是为使用 Oracle 8i 而构建的,但现在需要使用 Oracle 11g。原始应用程序非常高兴地使用 Oracle 11g,并且如果我使用 Delphi 6 重建它,也会这样做。

为了克服过去 11 年中开发的应用程序的一些字符集/字符显示问题和其他小烦恼,我决定在 Delphi 的更高版本中重建它(该版本也被推迟了几年)自此使用 2009 年。)这是为此目的购买的。我现在已经克服了 550 多个关于这个、那个以及其他的编译器警告。

但现在,我尝试针对测试 Oracle 11g 数据库打开的几乎每个表/数据集都会报告“字段‘xxxxxx’的类型不匹配,期望 BCD 实际 FmtBCDField。

有没有办法解决这个问题,而无需打开所有 80 多个数据模块,从而保证与客户端数据库安装的兼容性?我不介意全部更改它们,但我无法在没有大量困惑的情况下对实时数据库进行测试,并且不想这样做只是为了在客户端站点上得到相反的错误!

这些几乎是连接到 ADO 查询的 TClientDataSet 中的所有持久字段,但在(几乎)所有情况下都通过使用 FieldByName 进行访问。

有什么想法吗?

最佳答案

当我需要 DBXpress 应用程序与 Oracle 9 和 11 一起使用时,我遇到了类似的问题。由于某种原因,DBXpress 根据 Oracle 数据库版本以不同的方式识别某些 NUMBER 字段。我通过将数字字段转换为更大的数字字段并在所有查询中将 BCD 字段更改为 FMTBCD 字段来解决这个问题,转换迫使 DBXpress 将每个数字识别为 FMTBCD,因为 BCD 无法支持这么大的数字,也许它会也在 ADO 上工作。

关于delphi - TBCDField 和 TfmtBCDfield 类型不匹配以及 Oracle 兼容性问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10065787/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com