Чтение результата из TFDUpdateSQL в событии OnUpdateRecord

Я настроил простой TFDQuery, который привязан к компоненту TFDUpdateSQL для обработки обновлений. TFDUpdateSQL Insert sql вставляет строку в таблицу и после этого вызывает scope_Indetity для получения последнего значения вставки Identity. Я хочу прочитать это значение в обработчике события OnUpdateRecord. Я пытаюсь прочитать его, используя TFDUpdateSQl.Dataset.Fields[0].Asinteger, но это возвращает 0 как значение каждый раз. Может кто-нибудь помочь мне понять, как я могу прочитать результаты вставки в OnUpdateRecord.


person Devd    schedule 12.12.2020    source источник
comment
Добро пожаловать в StackOverflow! Какую базу данных вы используете? Не могли бы вы отредактировать свой вопрос и добавить минимальный полный и проверяемый пример (stackoverflow.com/help/mcve), который мы можем протестировать?   -  person fpiette    schedule 12.12.2020


Ответы (1)


Вам нужно использовать OnNewRecord для вставки, OnUpdateRecord для редактирования/обновления. Это зависит от того, как вы работаете с БД и как создается/добавляется Identity. Возможно, вам нужно будет использовать AfterPost.

person Moskwa    schedule 12.12.2020
comment
Здесь мы не используем подписи. Ваша личность доступна в правом нижнем углу каждого вопроса или ответа, который вы публикуете. Также нет необходимости использовать HTML для завершения строк — простое нажатие клавиши Enter отлично работает. - person Ken White; 13.12.2020
comment
Ввод не работает. Если вы дадите два раза Enter, появится дополнительная строка ;-( если вы используете html - он работает. - person Moskwa; 13.12.2020
comment
Enter работает нормально и работает уже более десяти лет. Кажется, это работает для всех, кроме вас. :-) HTML иногда нарушает форматирование, и большая часть HTML не принимается вне блока кода. Вы можете видеть, что в вашем посте не требовался HTML, потому что я удалил его, когда редактировал — перенос слов сайта сделал всю работу. Если вам нужен новый абзац, один Enter предоставит его. Два ввода дают вам пустую строку между абзацами. - person Ken White; 14.12.2020
comment
и это не так, как я сделал это. Это однострочный текст ;-( после того, как вы его измените. - person Moskwa; 14.12.2020