简体   繁体   English

未找到类 TArgeintField

[英]Class TLargeintField not found

I'm using C++ Builder 2009.我正在使用 C++ Builder 2009。

I've been doing some international work on one of my projects.我一直在为我的一个项目做一些国际工作。 I've upgraded my query components to UniQuery components and all of my db connections to UniDAC.我已将查询组件升级为 UniQuery 组件,并将所有数据库连接升级为 UniDAC。 Now when I run my program, some of the forms will throw some exceptions when the form is being created.现在,当我运行我的程序时,一些表单会在创建表单时抛出一些异常。

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

Doing some reading online, some suggestions were to remove all of the fields in the query component and readd them, which I did and still get the same messages.在网上做一些阅读,一些建议是删除查询组件中的所有字段并阅读它们,我这样做了并且仍然得到相同的消息。 I'm curious if I'm doing something wrong, or if I need to add a reference to the VCL?我很好奇我是否做错了什么,或者我是否需要添加对 VCL 的引用? http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/DB_TLargeintField.html http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/DB_TLargeintField.html

Additional Info:附加信息:

Below is a screenshot of the error message.下面是错误消息的屏幕截图。

在此处输入图片说明

Based on the error message, it makes me feel like I might have a reference to the header file properly, but not referencing the lib file properly.根据错误消息,我觉得我可能正确引用了头文件,但没有正确引用 lib 文件。

I beleive the header file for the VCL would be in:我相信 VCL 的头文件将在:

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

I've tried adding the following into the lib path and it still can't find the class:我尝试将以下内容添加到 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

Any ideas?有任何想法吗?

If I remember correctly then DAC wants to have TLargeIntFile fields for calculated values for example, but when adding fields to query then they are created as normal integers.如果我没记错的话,例如 DAC 想要计算值的TLargeIntFile字段,但是当添加字段进行查询时,它们被创建为普通整数。

In my case I just modified the .dfm formfile and changed the field type manually:就我而言,我只是修改了 .dfm 表单文件并手动更改了字段类型:

object QMinutes: TLargeintField

I found out the root cause of the issue.我找到了问题的根本原因。 This particular issues is related to korzh translation tool in which after you make changes to the form, you need to refresh the language files.此特定问题与 korzh 翻译工具有关,在其中更改表单后,您需要刷新语言文件。 This process runs the compiler multiple times and from what I can tell, updates different dfm's for each of the files.这个过程多次运行编译器,据我所知,为每个文件更新不同的 dfm。 This message was coming across when my region settings were set to Itailian (Italy), and looked to be referencing an old dfm.当我的区域设置被设置为意大利语(意大利)时,这条消息出现了,并且看起来是在引用旧的 dfm。 After refreshing the languages, it looks like my other attempts (removing then readding the fields to the UniQuery componenets), solved the issue...刷新语言后,看起来我的其他尝试(删除然后将字段读取到 UniQuery 组件)解决了这个问题......

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM