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

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

oracle и trigger для добавления уникального значения [D6]


bobr12 ©   (2006-01-31 17:04:00) 

Используется компонент ADOQuery для создания triggera который подставляет уникальные значения:

ADOQuery10.Close;
ADOQuery10.SQL.Clear;
ADOQuery10.SQL.Add('create or replace trigger trig_st_test_1');
ADOQuery10.SQL.Add('before insert or update on st_test_1');
ADOQuery10.SQL.Add('for each row');
ADOQuery10.SQL.Add('begin');
ADOQuery10.SQL.Add('if :new.code is null then');
ADOQuery10.SQL.Add('select sq_st_test_1.nextval into :new.code from dual;');
ADOQuery10.SQL.Add('end if;');
ADOQuery10.SQL.Add('end;');
ADOQuery10.ExecSQL;


таблица st_test_1 и сиквенс sq_st_test_1 уже созданы до этого.

Возникает такая ошибка:
project raised exception class EOleException with massage 'Parametr object is improperly defined. Inconsistent. Inconsistent or incomplete information was provided'

При этом oracle console в созданном все таки триггере trig_st_test_1 в поле Trigger Body показывает следующий текст:

begin
if :V00001 is null then
select sq_st_test_1.nextval into :V00002 from dual;
end if;
end;

т.е. :new.code были заменены :V00001 и :V00002.
Почему так произошло и возможно ли как-нибудь с этим бороться?


bobr12   (2006-01-31 17:25:00) [1]

Спасибо - помогло


Johnmen   (2006-01-31 17:10:00) [2]

ParamCheck = False


Наверх

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