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