Форум: "Базы";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];
ВнизТранзакции в FIBPlus (БД FireBird 1.5) Найти похожие ветки
← →
Iconka © (2004-09-02 11:44) [0]Всем привет.
Расскажите как правильно работать с сабжем.
На таком примере: есть две таблицы - огранизации и счета. Связь master-detail по полю ID в организациях и ID_ORG в счетах. У каждой организации может быть несколько счетов.
Хотелось бы получить следующее: открывается окно создания организации. Заполняются поля. Так же можно создать несколько счетов (открыв еще одно окошко). Потом в ComboBoxe выбрать основоной счет. И все "то сохранить. Или отменить (созданные счета тоже).
Проблема номер один. Как получить значение ID организации если оно формируется в тригере BeforeInsert? Может по другому организовать?
Проблема номер два в полной отмене всех действий. Как правильно сконфигурировать TpFIBTransaction?
← →
Роман Снегирев (2004-09-02 11:51) [1]номер один
select gen_id(имя генератора,0)+1 from RDB$DATABASE
номер два
привязывать датасеты организации и счета к одной транзакции и соответсвенно Commit или Rolback
← →
Iconka © (2004-09-02 11:54) [2]
> привязывать датасеты организации и счета к одной транзакции
> и соответсвенно Commit или Rolback
Там есть Transaction и UpdateTransaction. Они должны быть одинаковые для них? Какие параметры указать в транзакции?
← →
Роман Снегирев (2004-09-02 12:03) [3]тебе надо UpdateTransaction Она должна быть одинаковая для них
← →
-SeM- (2004-09-02 12:11) [4]Роман Снегирев (02.09.04 11:51) [1]
> select gen_id(имя генератора,0)+1 from RDB$DATABASE
Это может привести к неприятностям с несколькими клиентами. Лучше через хранимую процедуру. А если это ФИБ (судя по [2]), еще проще - смотри AutoUpdateOptions
← →
Iconka © (2004-09-02 12:14) [5]
> А если это ФИБ (судя по [2])
Это FIB судя по названию темы :)
> Лучше через хранимую процедуру.
Это как? Подробнее объясни.
← →
Sergey13 © (2004-09-02 12:24) [6]2[1] Роман Снегирев (02.09.04 11:51)
>select gen_id(имя генератора,0)+1 from RDB$DATABASE
А почему не
select gen_id(имя генератора,1) from RDB$DATABASE
← →
-SeM- (2004-09-02 12:26) [7]Iconka © (02.09.04 12:14) [5]
> Это FIB судя по названию темы :)
Да уж ...
В базе создаем хранимую процедуру, возвращающую новое значение генератора через gen_id(имя генератора,1). Для его получения используй TpFIBStoredProc.
Но проще всего в AutoUpdateOptions TpFIBDataSet выставить опции: GeneratorName, GeneratorStep(если нужно), KeyFields, WhenGetGenID. Теперь при вставке сначала будет получено значение генератора и вставлено в ключевое поле.
← →
Iconka © (2004-09-02 12:37) [8]
> >select gen_id(имя генератора,0)+1 from RDB$DATABASE
> А почему не
> select gen_id(имя генератора,1) from RDB$DATABASE
Ну я так понимаю в первом варианте мы получим значение и сделаем инкремент в программа, не изменяя значение генератора в БД.
← →
Sergey13 © (2004-09-02 12:40) [9]2Iconka © (02.09.04 12:37)
>Ну я так понимаю в первом варианте мы получим значение и сделаем инкремент в программа, не изменяя значение генератора в БД.
Это "мы" только "подумаем что сделаем". Так подумать могут многие.
← →
Iconka © (2004-09-02 12:52) [10]А как насчет параметров транзакции?
Сейчас у меняread
read_committed
rec_version
nowait
Подойдет?
← →
Роман Снегирев (2004-09-02 13:29) [11]read_committed
← →
Zacho © (2004-09-02 20:17) [12]
> Iconka © (02.09.04 12:52) [10] [Новое
>сообщение][Ответить]
> А как насчет параметров транзакции?
Очень рекомендую http://www.ibase.ru/devinfo/ibtrans.htm
И не помешает всё остальное на http://www.ibase.ru/develop.htm
Например, http://www.ibase.ru/devinfo/generator.htm :-)
← →
Астроном (2004-09-03 08:43) [13]Пришлите плиз FibPlus 5.3 на blot@amik.ru
← →
Роман Снегирев (2004-09-03 10:35) [14]Пришлите плиз FibPlus 5.3 на blot@amik.ru
читай почту
← →
Астроном (2004-09-03 13:19) [15]сенкс
← →
Vasis (2004-09-03 13:44) [16]
> Роман Снегирев (03.09.04 10:35) [14]
> Пришлите плиз FibPlus 5.3 на blot@amik.ru
> читай почту
О! А это триал?
Вышлите и мне плиз... на vasis@pisem.net. Большое спасибо
← →
Роман Снегирев (2004-09-03 15:32) [17]О! А это триал?
Вышлите и мне плиз... на vasis@pisem.net. Большое спасибо
нет это абсолютная халаява
читай почту
← →
Vasis (2004-09-03 16:14) [18]Большое спасибо
← →
Sergey13 © (2004-09-03 16:16) [19]2[17] Роман Снегирев (03.09.04 15:32)
>читай почту
А правила форума читать не пробовал?
← →
Роман Снегирев (2004-09-03 16:54) [20]а зачем?
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.034 c