Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.07.17;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.009 c
1-55641
Andrey V.
2003-07-04 08:42
2003.07.17
Подчеркивание в репорте


4-55906
Mischka
2003-05-14 07:36
2003.07.17
Приход / уход мыши


4-55888
AD
2003-05-15 10:06
2003.07.17
API диалог


14-55797
Mihey
2003-06-30 22:00
2003.07.17
Зацените, пожалуйста форум.


14-55789
Region
2003-06-29 21:41
2003.07.17
Сортировка





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский