Delphi TADOQuery -更改表字段定义导致行为异常

pcrecxhr  于 2023-04-05  发布在  其他
关注(0)|答案(1)|浏览(158)

我正在重构一个现有的 Delphi VCL应用程序,将底层数据库从Access 97(!!)迁移到SQL Server 2014。在此过程中,我们决定更改表的一些字段定义,特别是我们将字段'Ora'类型从DateTime更改为int
我在表单上有一个TADOQuery,它可以

SELECT * FROM Carichi

在更改了'Carichi'表定义后,我从TADOQuery中删除了所有字段,并运行“添加字段”来添加刷新的字段。现在我可以看到'Ora'字段是一个TIntegerField。
但是当我运行表单时,出现以下异常:

06/03/2018 11:00:56:qcarichi: Type mismatch for field 'ora', expecting: Integer actual: DateTime:

它看起来像旧的字段类型被保存和检查的地方。
我也试着从表单中完全删除TADOQuery对象,然后从头开始重新插入....没办法....有什么建议吗?

wvmv3b1j

wvmv3b1j1#

在设计时,我在新数据库上建立了一个连接,但我在代码中发现数据库连接字符串被强制连接到旧数据库,因为e.message说你的字段对象看起来是整数,但数据库正在发送日期时间:TField对象已正确定义。
Stefano Lossi和Vector的评论汇编。

相关问题