delphi – 与TBCDField和TfmtBCDfield以及oracle兼容性类型不匹配的问题

前端之家收集整理的这篇文章主要介绍了delphi – 与TBCDField和TfmtBCDfield以及oracle兼容性类型不匹配的问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在将一个大型应用程序从Delphi 6转换为Delphi 2009.

它最初是为使用Oracle 8i而构建的,但现在需要使用Oracle 11g.原始应用程序很高兴使用oracle 11g,如果我使用Delphi 6重建它,它将会这样做.

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

但是现在几乎我试图打开我的测试oracle 11g数据库的每个表/数据集报告“类型不匹配字段’xxxxxx’期望BCD实际FmtBCDField.

有没有办法解决这个问题而不打开所有80个数据模块,这些数据模块将保证与客户端数据库安装的兼容性?我不介意改变它们,但我不能在没有太多麻烦的情况下对着实时数据库进行测试,并且不想只是为了在客户端的网站上得到相反的错误

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

有任何想法吗?

解决方法

当我需要我的DBXpress应用程序同时使用Oracle 9和11时,我遇到了类似的问题.出于某种原因,DBXpress根据Oracle数据库版本以不同的方式识别某些NUMBER字段.我通过将数字字段转换为更大的数字字段并在我的所有查询中更改FMTBCD字段的BCD字段来解决这个问题,演员强制DBXpress将每个NUMBER识别为FMTBCD,因为BCD无法支持如此大的数字,也许它会也在研究ADO.

猜你在找的Delphi相关文章