我正在使用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
有什么想法吗?
答案 0 :(得分:1)
如果我没记错的话,那么DAC想要为计算值设置TLargeIntFile
个字段,但是当添加字段进行查询时,它们会被创建为普通整数。
在我的情况下,我刚刚修改了.dfm表单文件并手动更改了字段类型:
object QMinutes: TLargeintField
答案 1 :(得分:1)
我找到了问题的根本原因。此特定问题与korzh翻译工具有关,其中在对表单进行更改后,您需要刷新语言文件。这个过程多次运行编译器,据我所知,为每个文件更新不同的dfm。当我的区域设置设置为Itailian(意大利)并且看起来引用旧的dfm时,会出现此消息。刷新语言之后,它看起来像我的其他尝试(删除然后将字段读取到UniQuery组件),解决了问题......