![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TIBDataSet: Проблема с генератором [D7, FireBird 1.0]
Alexander Vasjuk © (2003-06-20 13:12:00)Как правльноовать поддержку первичного ключа в 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 а по другому уникальному полю, которого в общем случае может не быть.
Alexander Vasjuk (2003-06-23 13:39:00) [1]Посмотрел-посмотрел на GeneratorField.
Получилось, аллах акбар.
Спасибо Zacho
Жук (2003-06-21 08:36:00) [2]
> Danilka © (21.06.03 08:03)
> Вероятно появилось в Д6-Д7, у меня в Д5 нет.
Появилось. И автор указал D7, значит
> Zacho © (20.06.03 18:39)
Danilka (2003-06-21 08:03:00) [3]Zacho © (20.06.03 18:39)
Вероятно появилось в Д6-Д7, у меня в Д5 нет.
Zacho (2003-06-20 18:39:00) [4]Блин ! У TIBDataSet есть св-во GeneratorField ! Хелп иногда читать надо, или хотя бы на Object Inspector смотреть !
А если даже и без GeneratorField то неужели трудно написать одинобработчик OnNewRecord для всех IBDataSet ?
Danilka (2003-06-20 16:42:00) [5]Alexander Vasjuk (20.06.03 16:22)
а у него-то какие проблемы?
если не хочешь сделать так как я уже написал, самое простое, в обработчике BeforeInsert дергай генератор, и пиши его значение в ключевое поле, делов-то на 5 минут.
Alexander Vasjuk (2003-06-20 16:22:00) [6]у меня тоже нет с ним проблем
Проблема в TIBDataSet
Danilka (2003-06-20 16:11:00) [7]тем не менее, есть по-крайней мере 2212 человека, которые используют IB в своей работе и подозреваю, не имеют никаких проблем с клучами и генераторами.
:))
http://www.sql.ru/
Johnmen (2003-06-20 16:05:00) [8]>Alexander Vasjuk (20.06.03 16:00)
>Итак, подведем итоги :)
>Нет нормального метода работы с ключами у ibdataset.
Этот вывод ты сделал САМ для СЕБЯ.
Alexander Vasjuk (2003-06-20 16:00:00) [9]Итак, подведем итоги :)
Нет нормального метода работы с ключами у ibdataset.
Всем спасибо
Johnmen (2003-06-20 15:15:00) [10]>Alexander Vasjuk (20.06.03 15:10)
>хочется побольше успеть...
"Торопиться не надо" (c) т.Саахов
:-)
Johnmen (2003-06-20 15:10:00) [11]>Alexander Vasjuk (20.06.03 15:00)
Еще раз не понял... Писать программу - Геморой. Некрасиво. ?????
Alexander Vasjuk (2003-06-20 15:10:00) [12]Danilka © (20.06.03 15:04)
>"переопределив insert"
это круто
теоретически все можно
только жизнь коротка, хочется побольше успеть...
Danilka (2003-06-20 15:04:00) [13]хех, а в чем проявилась моя монстроватость? может, что-то не то сказал? вроде должно работать...
Alexander Vasjuk (2003-06-20 15:00:00) [14]В гриде - я вношу данные руками, а не программно (insert-post). Надо определять события. Геморой. Некрасиво.
И так для каждого набора данных.
Johnmen (2003-06-20 14:53:00) [15]>Alexander Vasjuk (20.06.03 14:50)
>Некрасивость проявляется при редактировании данных в гриде.
Не понял...:)
Alexander Vasjuk (2003-06-20 14:50:00) [16]Johnmen © (20.06.03 13:48)
>>Некрасиво, согласись.
>Не соглашусь.
Некрасивость проявляется при редактировании данных в гриде.
Danilka © (20.06.03 13:53)
Ну ты монстр!
Alexandr © (20.06.03 14:00)
А точных сведений нет?
Alexandr (2003-06-20 14:00:00) [17]попробуйте обновить версию IBX
эта фича могла появиться...
Danilka (2003-06-20 13:53:00) [18]Alexander Vasjuk (20.06.03 13:25)
Думаю, написать от него наследника, добавив свойство PKGeneratorName и переопределив insert не составит большого труда, думаю, времени уйдет меньше, чем прошло с момента появления вопроса на форуме. :))
Johnmen (2003-06-20 13:48:00) [19]>Alexander Vasjuk (20.06.03 13:25)
>Некрасиво, согласись.
Не соглашусь.
А если хочется автоматической поддержки, то переходи на FibPlus - там это есть.
Alexander Vasjuk (2003-06-20 13:25:00) [20]Johnmen © (20.06.03 13:19)
>2. Получить значение генератора заранее и указать его в insert
Некрасиво, согласись.
У меня таких наборов 40 штук.
Неужели такой мощный инструмент IBDaatSet не поддерживает генерируемые ключи?