Здравствуйте, ZORK, Вы писали:
ZOR>Этот вопрос можно сформулировать несколько по другому: Возможно ли решить задачу добавления записей с генерацией ID используя только DataAdapter, созданный визуально, или необходим дополнительный код.
ZOR>В настоящее время я разбираюсь с MS SQL, но решение для Oracle также интересно.
Для Oracle есть достаточно постой способ генерации ID — использование Oracle Sequences в триггере/процедуре и функции или в процедуре ставки данных.
Это триггер.
create or replace trigger gen_id_trg
before insert on dept
for each row
declare
begin
select some_table_seq.nextval into :new.some_table_id from dual;
end gen_id_trg;
а в inserte еще легче:
insert into some_table (id, name)
values (some_table_seq.nextval, 'Some Name');
при использовании триггера вставку модно выполнять таким образом:
insert into some_table (id, name)
values (0, 'Some Name');
Одно НО — в теле процедуры sequense можно использовать только в конструкциях эквивалентных запросам, объясню на примере:
такая конструкция хотя и не вызовет ошибки но работать не будет
declare
some_var number;
begin
...
some_var:=some_table_seq.nextval;
...
end some_proc;
необходим применять код показанный в примере триггера.
... << RSDN@Home 1.0 beta 4 >>