powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как "заставить" TpFIBDataSet при вставке "дочитывать" ID зап
3 сообщений из 3, страница 1 из 1
Как "заставить" TpFIBDataSet при вставке "дочитывать" ID зап
    #32253284
Даниил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как "заставить" TpFIBDataSet при вставке "дочитывать" ID записи, созданный генератором?

Ситуация следующая:
Есть некэшируемый DataSet от FIBPlus. В AutoUpdateOptions прописан сам генератор и UpdateTable; GenBeforePost и SelectGenID - True. Но, как я понял, все эти настройки работают только в том случае, если ДатаСет кэшируемый. Или я не прав?
При вставке записи все поля явно присваиваются из клиента, а ID остается - null. В базе стоит триггер(Beforeinsert) на ID этой таблички:
IF (NEW.ID IS NULL) THEN
NEW.ID = GEN_ID(GEN_SCLAD_ID,1);
В базу пишутся, естественно, все поля, а ДатаСет "не знает", какой ID присвоен только-что вставленной записи.
Интересно следующее:
При рефреше этой только что вставленной записи не по ID, а по другим полям (RefreshSQL):
SELECT * FROM SCLAD
WHERE (NAMELAT = ?OLD_NAMELAT) AND (NAMERUS = ?OLD_NAMERUS)
В гриде, связанном с ДатаСетом, "появляется" правильный ID. Но при последующем удалении (не переоткрывая ДатаСет):
DELETE FROM SCLAD
WHERE (ID = ?OLD_ID)
Удаления не происходит, т.к. ДатаСет опять считает, что ID=null ???

В общем, если хотя бы немного понятно, чего я здесь понаписал, посоветуйте, как "дочитать" ID для вставленной записи?

Конечно, можно элементарно с помощью процедуры прочитать значение генератора, и присвоить его явно. Но меня интересует как, все-таки обойтись без создания дополнительных процедур, дополнительных компонент по работе с этими процедурами и т.п., а заставить ДатаСет самого показывать то, что нужно его методами. Если это возможно конечно.
...
Рейтинг: 0 / 0
Как "заставить" TpFIBDataSet при вставке "дочитывать" ID зап
    #32253567
Даниил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То есть вы хотите сказать, что pFIBDataSet этого не может?..
...
Рейтинг: 0 / 0
Как "заставить" TpFIBDataSet при вставке "дочитывать" ID зап
    #32254249
Даниил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И сам же отвечаю... МОЖЕТ!

Разыскал документацию, выяснил, что у меня старая версия fIBPlus'а (которая несколько отличается от описанной в доках), разобрался - все работает.

Всем спасибо, кто принимал участие в беседе ))))) т.е. самому себе...
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как "заставить" TpFIBDataSet при вставке "дочитывать" ID зап
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]