Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.51 MB
Время: 0.018 c
14-55720
PlaTinum
2003-07-02 12:31
2003.07.17
FastReport Срочно Плиз


14-55734
Knight
2003-06-30 11:55
2003.07.17
Веб-дизайн


3-55401
Ai
2003-06-23 15:46
2003.07.17
Как программно очистить базу?


1-55650
FRT
2003-07-02 16:51
2003.07.17
QReport


6-55691
Santa
2003-05-12 11:49
2003.07.17
аля FlashGet