Re: Автогенерация ID при добавлении данных из DataSet в БД
От: vedmalex Россия  
Дата: 05.01.03 08:01
Оценка:
Здравствуйте, 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 >>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.