Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Использование триггера при генерировании нового значения поля [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]


> поля на клиенте нельзя использовать триггер?

потому как трггер и клиент - разные вещи. Может ты пгенератор имеешь ввиду?


Наверх

Титульная страница Поиск, карта сайта Написать письмо