![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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