Страница 1 из 1

Программная вставка записи

Добавлено: 04 апр 2013, 16:27
vasya_serega
Если приложение на C#, которое через OracleDataProvider выполняет вставку записи в таблицу. Создается акт, привязанный к ДО, дальше нужно создать спецификацию данного акта. А для этого нужно знать NREC созданной записи. Сразу в голову приходит несколько вариантов, но ни один сильно не нравится:
1) после insert выполнить select и найти нужную запись.
Минусы: нужно писать довольно большой запрос, плюсы: однозначный быстрый поиск
2) сразу после insert считать текущее значение последовательности, используемой при автоформировании nrec.
Минусы: необходимо как-то обеспечить невозможности использованием СУБД данной последовательности до того момента, как я считаю её текущее значение. Плюсы: простой код, если не учитывать подводные камни.

Может можно как-то еще. У кого будут идеи, поделитесь.

Re: Программная вставка записи

Добавлено: 04 апр 2013, 16:31
n0where
делайте по 2 только с транзакцией.

Re: Программная вставка записи

Добавлено: 04 апр 2013, 19:02
vasya_serega
Если верить документации Oracle, то достаточно написать

Код: Выделить всё

OracleTransaction transaction = _connection.BeginTransaction(IsolationLevel.RepeatableRead);
...
transaction.Commit();
Пожалуй, так и сделаю