Поиск идентификатора последней записи в таблице Oracle

ODBC

Модератор: Andrew™

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Гость

Сообщение Гость »

Как найти идентификатор последней записи в таблице Oracle для того, чтобы добавить новую запись в таблицу?::unsure.gif::
Как это сделать с помощью SEQUENCES(последовательностей)?
Написал: chaynik(40)
Гость

Сообщение Гость »

Hi,

Ты бы хоть сказал, что значит "последняя". Если с самым большим
автоинкрементным ключом, то стандартно - Set - Previous. Проблема в том, что
в SQL на больших таблицах Previous весьма не эффективен. Проблема решается
переходом от автоинкрементных ключей к автодекрементным и заменой в
классах/шаблонах Set - Previous на Set - Next.

WBR, Nick Tsigouro. MailTo:Nick@arsis.ru

(Добавление)

либо через SELECT MAX(PrimaryField) from myTable

либо сразу добавить
insert into ars_typesprav

(typesprid,typesprname)

values((select max(typesprid)+1 from ars_typesprav),'ggg')

лучше всего в оракле для этих целей использовать Sequences

Andrew Myalin
andrew@arsis.ru
http://mavcla.arsis.ru (MAV Direct ODBC)
Yahoo group: clarion@yahoogroups.com
Написал: ClaList(2)
Гость

Сообщение Гость »

Я имела в виду: как с помощью Clarion'а, работая с БД Oracle, найти последнюю запись (инкрементный номер), ведь в Oracle нет понятия EOF

Заранее спасибо!

chaynik

(Добавление)

Например, через {PROP:SQL} сделать запрос 'SELECT MAX(ID) FROM MyTable'
и через NEXT его прочитать, желательно в транзакции, чтобы никто ничего не
добавил

WBR, Igor Timofeev
Написал: ClaList(2)
Гость

Сообщение Гость »

Работает ли ораклянский драйвер Clarion 5.5 с базами Oracle 9i
Гость

Сообщение Гость »

Работает без проблем и на С55 и С6
jura
Гость

Сообщение Гость »

{prop:sql}='SELECT GEN_DOLG.CURRVAL FROM DUAL'
GEN_DOLG - имя sequences
получите последнее значение последоватнльности
могу ошибиться curval или currval
jura
Ответить