В последнее время отображаются некоторые приложения Delphi / InterBase
«Запись не найдена или не изменена другим пользователем»
Они используют компоненты по умолчанию TSQLQuery / TClientDataSet (или TSimpleDataSet) dbExpress.
Мы обнаружили, что в таблице базы данных поле с миллисекундами сохранялось приложением, не относящимся к dbExpress.
Похоже, что dbExpress не считал миллисекунды из БД и не использовал это усеченное значение в условии «где» SQL-оператора таблицы обновления, поэтому не было соответствующей записи для обновления.
Обновление: мы используем поля TSQLTimeStamp в приложении Delphi. Обработчики OnBeforePost не изменяют значение поля.
Обновление 2
Как видно из IBExternals.pas, PCTimeStructure не имеет доли миллисекунд. Так что «по замыслу» нет поддержки миллисекунд для InterBase в Delphi (2009).
Кто-нибудь знает, добавлена ли поддержка ms в более поздней версии Delphi?