Текущий архив: 2003.07.17;
Скачать: CL | DM;
ВнизTIBDataSet: Проблема с генератором Найти похожие ветки
← →
Alexander Vasjuk (2003-06-20 13:12) [0]Как правльноовать поддержку первичного ключа в IBDataSet?
Мой подход:
FieldID.Required = False,
InsertSQL = "insert into tbl(id, name) values(gen_id(g, 1), :name)", тут напрямую вызывается генератор, это не красиво
RefreshSQL = "select id, name from tbl where name = :name", тут запись идентифицируется не по ID а по другому уникальному полю, которого в общем случае может не быть.
← →
Соловьев (2003-06-20 13:14) [1]тригерр не пробовал?
← →
Alexander Vasjuk (2003-06-20 13:18) [2]Пробовал.
Проблема, что IBDataSet после вставки ничего не знает о значении ключевого поля.
← →
Johnmen (2003-06-20 13:19) [3]1. Соловьев © (20.06.03 13:14)
2. Получить значение генератора заранее и указать его в insert
В твоем случае - второй подход...
← →
Alexander Vasjuk (2003-06-20 13:25) [4]Johnmen © (20.06.03 13:19)
>2. Получить значение генератора заранее и указать его в insert
Некрасиво, согласись.
У меня таких наборов 40 штук.
Неужели такой мощный инструмент IBDaatSet не поддерживает генерируемые ключи?
← →
Johnmen (2003-06-20 13:48) [5]>Alexander Vasjuk (20.06.03 13:25)
>Некрасиво, согласись.
Не соглашусь.
А если хочется автоматической поддержки, то переходи на FibPlus - там это есть.
← →
Danilka (2003-06-20 13:53) [6]Alexander Vasjuk (20.06.03 13:25)
Думаю, написать от него наследника, добавив свойство PKGeneratorName и переопределив insert не составит большого труда, думаю, времени уйдет меньше, чем прошло с момента появления вопроса на форуме. :))
← →
Alexandr (2003-06-20 14:00) [7]попробуйте обновить версию IBX
эта фича могла появиться...
← →
Alexander Vasjuk (2003-06-20 14:50) [8]Johnmen © (20.06.03 13:48)
>>Некрасиво, согласись.
>Не соглашусь.
Некрасивость проявляется при редактировании данных в гриде.
Danilka © (20.06.03 13:53)
Ну ты монстр!
Alexandr © (20.06.03 14:00)
А точных сведений нет?
← →
Johnmen (2003-06-20 14:53) [9]>Alexander Vasjuk (20.06.03 14:50)
>Некрасивость проявляется при редактировании данных в гриде.
Не понял...:)
← →
Alexander Vasjuk (2003-06-20 15:00) [10]В гриде - я вношу данные руками, а не программно (insert-post). Надо определять события. Геморой. Некрасиво.
И так для каждого набора данных.
← →
Danilka (2003-06-20 15:04) [11]хех, а в чем проявилась моя монстроватость? может, что-то не то сказал? вроде должно работать...
← →
Johnmen (2003-06-20 15:10) [12]>Alexander Vasjuk (20.06.03 15:00)
Еще раз не понял... Писать программу - Геморой. Некрасиво. ?????
← →
Alexander Vasjuk (2003-06-20 15:10) [13]Danilka © (20.06.03 15:04)
>"переопределив insert"
это круто
теоретически все можно
только жизнь коротка, хочется побольше успеть...
← →
Johnmen (2003-06-20 15:15) [14]>Alexander Vasjuk (20.06.03 15:10)
>хочется побольше успеть...
"Торопиться не надо" (c) т.Саахов
:-)
← →
Alexander Vasjuk (2003-06-20 16:00) [15]Итак, подведем итоги :)
Нет нормального метода работы с ключами у ibdataset.
Всем спасибо
← →
Johnmen (2003-06-20 16:05) [16]>Alexander Vasjuk (20.06.03 16:00)
>Итак, подведем итоги :)
>Нет нормального метода работы с ключами у ibdataset.
Этот вывод ты сделал САМ для СЕБЯ.
← →
Danilka (2003-06-20 16:11) [17]тем не менее, есть по-крайней мере 2212 человека, которые используют IB в своей работе и подозреваю, не имеют никаких проблем с клучами и генераторами.
:))
http://www.sql.ru/
← →
Alexander Vasjuk (2003-06-20 16:22) [18]у меня тоже нет с ним проблем
Проблема в TIBDataSet
← →
Danilka (2003-06-20 16:42) [19]Alexander Vasjuk (20.06.03 16:22)
а у него-то какие проблемы?
если не хочешь сделать так как я уже написал, самое простое, в обработчике BeforeInsert дергай генератор, и пиши его значение в ключевое поле, делов-то на 5 минут.
← →
Zacho (2003-06-20 18:39) [20]Блин ! У TIBDataSet есть св-во GeneratorField ! Хелп иногда читать надо, или хотя бы на Object Inspector смотреть !
А если даже и без GeneratorField то неужели трудно написать один обработчик OnNewRecord для всех IBDataSet ?
← →
Danilka (2003-06-21 08:03) [21]Zacho © (20.06.03 18:39)
Вероятно появилось в Д6-Д7, у меня в Д5 нет.
← →
Жук (2003-06-21 08:36) [22]
> Danilka © (21.06.03 08:03)
> Вероятно появилось в Д6-Д7, у меня в Д5 нет.
Появилось. И автор указал D7, значит
> Zacho © (20.06.03 18:39)
← →
Alexander Vasjuk (2003-06-23 13:39) [23]Посмотрел-посмотрел на GeneratorField.
Получилось, аллах акбар.
Спасибо Zacho
Страницы: 1 вся ветка
Текущий архив: 2003.07.17;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.009 c