最近一些 Delphi / InterBase 应用程序展示
“其他用户未找到或更改记录”
它们使用 dbExpress 的默认 TSQLQuery/TClientDataSet(或 TSimpleDataSet)组件。
我们发现,在数据库表中,非 dbExpress 应用程序以毫秒为单位存储了一个字段。
看起来 dbExpress 没有从 DB 读取毫秒数,并在更新表 SQL 语句的“where”条件中使用该截断值,因此没有匹配的记录要更新。
更新:我们在 Delphi 应用程序中使用 TSQLTimeStamp 字段。没有 OnBeforePost 处理程序正在修改字段值。
更新 2
从 IBExternals.pas 中可以看出,PCTimeStructure 没有毫秒部分。所以'按设计'不支持 Delphi (2009) 中的 InterBase 毫秒。
有谁知道在更高版本的 Delphi 中是否添加了 ms 支持?