![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Использование триггера при генерировании нового значения поля [D7, IB6.x]
YA © (2004-07-05 12:18:00)Скажите пожалуйста,а почему при генерировании нового значения поля на клиенте нельзя использовать триггер?И вообще что лучше всего и проще всего применять?
wisekaa (2004-07-05 13:18:00) [1]Боюсь у тебя проблемы в непонимании, из-за чего ошибки лезут.
А заначения ID можно в IB сделать разными способами, самое главное создать для этого генератор.
CREATE GENERATORGEN_myTable_ID;
- прямо в тригере
CREATE TRIGGER myTable_BI FOR myTable
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
IF (NEW.ID IS NULL) THEN
NEW.ID = GEN_ID(GEN_myTable_ID,1);
END
- в хранимо процедуре
CREATE PROCEDURE GET_ID_myTable
RETURNS (ID INTEGER)
AS
BEGIN
ID = GEN_ID(GEN_myTable_ID, 1);
END
- в SQL запросе
aQry.SQL.text:='select gen_id(GEN_myTable_ID,1) from RDB$GENERATORS '+
'where UPPER(RDB$GENERATORS.RDB$GENERATOR_NAME)=GEN_myTable_ID';
Anatoly Podgoretsky (2004-07-05 13:12:00) [2]Johnmen © (05.07.04 12:57) [10]
А, а то мы тут такое подумали, особенно в свете одноименного спама :-)
Johnmen (2004-07-05 12:57:00) [3]>Vlad © (05.07.04 12:53) [9]
Да это я попробовал сделать, как у автора...
:)
Vlad (2004-07-05 12:53:00) [4]
> Johnmen © (05.07.04 12:45) [8]
> ... У меня нормально, выдаёт 'Член найден'
ты че за систему там разрабатываешь а ? :-)))
Johnmen (2004-07-05 12:45:00) [5]Странно... У меня нормально, выдаёт 'Член найден'
:)
YA (2004-07-05 12:39:00) [6]Как только начинаю редактировать,выдаёт:
class EOleSysError
'Член группы не найден'
Курдль (2004-07-05 12:36:00) [7]
> YA © (05.07.04 12:33) [3]
> Вот написал я генератор и что дальше?Как мне поместить его
> значение в таблицу,почему-то хранимые процедуры не помогают
Попробуйте транзакции. Наверняка помогут (чур я первый посоветовал!)
Соловьев (2004-07-05 12:34:00) [8]приведите код который у Вас ошибку выдает.
Johnmen (2004-07-05 12:34:00) [9]А на ibase.ru ходил ? Вообще к.-н. литературу по теме читал ?
YA (2004-07-05 12:33:00) [10]Вот написал я генератор и что дальше?Как мне поместить его значение в таблицу,почему-то хранимые процедуры не помогают
Курдль (2004-07-05 12:25:00) [11]
> генерировании нового значения поля на клиенте нельзя использовать
> триггер?И вообще что лучше всего и проще всего применять?
Генерировать новое поле на клиенте - самое милое дело! В основном, все приложения этим только и занимаются. Но только не генерацией первичного ключа! Это прерогатива СУБД. Проще применять автоинкрементные поля (Sybase, MSSQL) а лучше - генераторы (IB, FB) или последовательности (oracle).
Соловьев (2004-07-05 12:19:00) [12]
> поля на клиенте нельзя использовать триггер?
потому как трггер и клиент - разные вещи. Может ты пгенератор имеешь ввиду?