0

我正在使用 C++ Builder 2009。

我一直在为我的一个项目做一些国际工作。我已将查询组件升级为 UniQuery 组件,并将所有数据库连接升级到 UniDAC。现在,当我运行我的程序时,某些表单会在创建表单时抛出一些异常。

Project X.exe raised exception class EClassNotFound with message 'Class TLargeintField not found'.

在网上做了一些阅读,一些建议是删除查询组件中的所有字段并阅读它们,我这样做了,仍然得到相同的消息。我很好奇我是否做错了什么,或者我是否需要添加对 VCL 的引用?http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/DB_TLargeintField.html

附加信息:

以下是错误消息的屏幕截图。

在此处输入图像描述

根据错误消息,我觉得我可能正确引用了头文件,但没有正确引用 lib 文件。

我相信 VCL 的头文件会在:

C:\Program Files (x86)\CodeGear\RAD Studio\6.0\include\vcl

我尝试将以下内容添加到 lib 路径中,但仍然找不到该类:

C:\Program Files (x86)\CodeGear\RAD Studio\6.0\lib
C:\Program Files (x86)\CodeGear\RAD Studio\6.0\lib\release
C:\Program Files (x86)\CodeGear\RAD Studio\6.0\lib\psdk

有任何想法吗?

4

2 回答 2

1

如果我没记错的话TLargeIntFile,例如,DAC 希望为计算值提供字段,但是在添加要查询的字段时,它们会被创建为普通整数。

就我而言,我只是修改了 .dfm 表单文件并手动更改了字段类型:

object QMinutes: TLargeintField
于 2013-04-04T20:59:28.660 回答
1

我找到了问题的根本原因。此特定问题与 korzh 翻译工具有关,在该工具中,您对表单进行更改后,需要刷新语言文件。这个过程多次运行编译器,据我所知,为每个文件更新不同的 dfm。当我的区域设置设置为意大利(意大利)时,出现此消息,并且看起来引用了旧的 dfm。刷新语言后,看起来我的其他尝试(删除然后将字段读取到 UniQuery 组件)解决了这个问题......

于 2013-04-05T20:28:17.593 回答