我正在重构一个现有的 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对象,然后从头开始重新插入....没办法....有什么建议吗?
1条答案
按热度按时间wvmv3b1j1#
在设计时,我在新数据库上建立了一个连接,但我在代码中发现数据库连接字符串被强制连接到旧数据库,因为
e.message
说你的字段对象看起来是整数,但数据库正在发送日期时间:TField对象已正确定义。Stefano Lossi和Vector的评论汇编。