Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Триггеры и копмоненты Borland, почему не работает? 
:(
    Опции темы
rOOxus
Дата 26.6.2007, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 95
Регистрация: 28.8.2006

Репутация: нет
Всего: нет



Например компонент TIBTable призводит вставку новой зписи в таблицу БД. В БД прописан триггер, который инкрементирует генратор для первичного ключа этой при вставке новой записи и писваивает клюевому полю значение генератора таблицы. Но триггер не работает! Пустое пустое и как следствие violation of primary key.
Может снег не идет или...?

Это сообщение отредактировал(а) rOOxus - 26.6.2007, 15:02
PM MAIL   Вверх
Rodman
Дата 26.6.2007, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 1
Всего: 122



как выглядет триггер и как добавляешь???
PM MAIL WWW Skype GTalk YIM MSN   Вверх
rOOxus
Дата 27.6.2007, 08:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 95
Регистрация: 28.8.2006

Репутация: нет
Всего: нет



Ну например есть табличка A_TABLE (PK KEY_ID Integer, TEXT Varchar(10))

Простейший триггер:
Код

CREATE TRIGGER A_TABLE_BI0 FOR A_TABLE
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
    NEW.KEY_ID = GEN_ID(GEN_A_TABLE_ID,1);
END

Ну а в клиентском приложении IBTable с ней связанный, ну там DataSourceи и DBGrid. По идее при вставке новой записи при помощи DBGrid должен срабатывать триггер заполнять поле KEY_ID новым инкрементированным значением генератора GEN_A_TABLE_ID. А хренушки. :(
PM MAIL   Вверх
Zan_ZaraBear
Дата 18.8.2007, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 5.8.2007

Репутация: нет
Всего: нет



А вот и не хренушки smile

триггер:
Код

CREATE TRIGGER TR_TABLE1_B FOR TABLE1
ACTIVE BEFORE  INSERT POSITION 0
AS

begin
if (NEW.ID IS NULL) then
   NEW.ID = GEN_ID(GEN_TABLE1_ID,1);
end


Сгенерированное значение можно увидеть после подтверждения транзакции и refresh данных.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C++: Базы данных"
chipset

Данный форум предназначен для обсуждения вопросов прямым образом связанных с C++ и БД. Так, вопросы только по C++ следует задавать в C++:Общие вопросы а вопросы по абстрактным БД в Базах данных или в соответствующих под-форумах.

Благодарим за понимание.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, chipset.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Базы данных | Следующая тема »


 




[ Время генерации скрипта: 0.0809 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.