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

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
vasya_serega
Сообщения: 18
Зарегистрирован: 01 мар 2012, 15:14
Откуда: Украина, Вознесенск
Контактная информация:

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

Сообщение vasya_serega »

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

Может можно как-то еще. У кого будут идеи, поделитесь.
n0where
Местный житель
Сообщения: 499
Зарегистрирован: 30 дек 2010, 08:16

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

Сообщение n0where »

делайте по 2 только с транзакцией.
хороший программист — это человек, который переходя улицу с односторонним движением смотрит в обе стороны
vasya_serega
Сообщения: 18
Зарегистрирован: 01 мар 2012, 15:14
Откуда: Украина, Вознесенск
Контактная информация:

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

Сообщение vasya_serega »

Если верить документации Oracle, то достаточно написать

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

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