Автоинкрементальные поля и InterbaseDelphi , Базы данных , InterbaseАвтоинкрементальные поля и InterbaseОказывается, что Interbase триггер "before insert" срабатывает только после того, как запись "запостится" из Delphi приложения. В связи с чем становится невозможным увеличение автоинкрементальных ключевых полей. Есть решение? Большинство программистов решило эту проблему созданием хранимой процедуры (stored procedure), позволяющей от InterBase получить следующий номер и поместить его в вашу запись посредством метода onBeforePost или onNewRecord. Бессконечная борьба с полями автоматического увеличения и Interbase! Действительно, триггер "before insert" в Interbase активируется после того, как запись была вставлена из приложения Delphi, что делает невозможно увеличение поля автоматического ключа. И вы правы, что создание хранимой процедуры (ХП) - это один из способов решить эту проблему. Позволяя вызывать ХП из вашего приложения Delphi, вы можете получить следующий доступный для поля автоматического увеличения и вставить его в свою запись. Вот возможное решение:
В этом примере хранимая процедура В статье описывается проблема срабатывания триггера "before insert" в Interbase только после постирования записи из Delphi приложения, что препятствует увеличению автоинкрементальных ключевых полей, и предлагается решение в виде создания хранимой процедур Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |