![]() |
|
Модераторы: Akina |
![]()
|
|
| nicka |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 11.6.2003 Репутация: нет Всего: 1 |
Как получить id последней записи таблицы в Access из модуля формы?
Срочнооо!!! |
|||
|
||||
| nicka |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 11.6.2003 Репутация: нет Всего: 1 |
Очень, очень срочно
Кто-нибудь!!! |
|||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
Вот это единственное, что я нашел. Как тут что я просто не помню и время сейчас особо нет. Может что поможет. mdb здесь это database, а PR - это Recordset. Работал я с Microsoft DAO 3.6. У PR есть метод MoveLast насколько я помню и помоему это и есть то, что тебе надо. Извини за такой небольшой примерчик, но просто времени сейчас нет, а этот проект мой старый что-то не заводится, недавно Windows переставлял просто
-------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| nicka |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 11.6.2003 Репутация: нет Всего: 1 |
да но movelast перемещаеться по всему ecordset-ту, а это плохо, если таблица большая,
Нет так не годится Неужели нет другого способа, Например для QLServer-ра мне подсказали @@Identity - то что надо! |
|||
|
||||
| vickr |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 13.5.2003 Где: Санкт-Петербург Репутация: нет Всего: нет |
В Access, насколько я знаю, аналогов @@Identity нет. Единственный выход, который я вижу - сразу после INSERT делать запрос SELECT MAX(id) FROM table, где id - есмь поле-счетчик в таблице table. По крайней мере, мне приходилось видеть ОЧЕНЬ много реализаций этой проблемы таким способом. Правда, это не означает, что порывшись хорошенько в документации, нельзя найти ничего более правильного - дело в том, что я сейчас дорабатываю чужую прогу, в которой даже при работе с SQL Server на каждом шагу встречается что-то вроде SELECT MAX(id)
Вывод: ищите да обрящете! PS: надежда умирает последней... --------------------
Каждую секунду, тыкая в клавиши, мы давим насмерть не менее 1000 микробов =:) |
|||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
Не думаю, что по movelast мы прыгаем по каждому элементу recordset пока не дойдем до конца, так как это просто бред. Можно конечно попробовать на двух recordset`ах разных размеров, но предполагаю, что резулятат будет один и тот же -> константное время выполнения процедуры. Если это не так, то поправьте. -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| nicka |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 11.6.2003 Репутация: нет Всего: 1 |
Возможно так, просто в литературе такой метод не рекомендуется использовать часто да на больших таблицах |
|||
|
||||
| nicka |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 11.6.2003 Репутация: нет Всего: 1 |
vickr
Очень интересно, то что ты сказал, а я думала это только я так могу, поэтому искала другой выход у проффесианалов Что ж max так max, А может с recordset - movelast будет быстрее, ведь таблицы то растут не по дням а по часам? И еще насчет max возможна ли ситуация, когда два пользователя практически одновременно сделают Insert, и тогда возвращаемое max-ом Id у них перепутается, а? |
|||
|
||||
| nicka |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 11.6.2003 Репутация: нет Всего: 1 |
Это очень интересно то , что ты сказал, я то думала что так только я могу, поэтому искала ответа у проффесионалов,
Что ж max так max , только может с Recordset - Movelast будет быстрее? А еще может быть так, что 2 пользователя практически одновременно произведут Insert и тогда возвращение Id может перепутаться? |
|||
|
||||
| vickr |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 13.5.2003 Где: Санкт-Петербург Репутация: нет Всего: нет |
Подозреваю, что теоретически в Access такое возможно. imho, он не поддерживает транзакций. --------------------
Каждую секунду, тыкая в клавиши, мы давим насмерть не менее 1000 микробов =:) |
|||
|
||||
| nicka |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 11.6.2003 Репутация: нет Всего: 1 |
Что это? Значит токое возможно теоретически? А насколько часто это встречаеться практически? Могу ли я это себе позволить сделать ? |
|||
|
||||
| vickr |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 13.5.2003 Где: Санкт-Петербург Репутация: нет Всего: нет |
In My Humble Opinion
Если и встречается, то очень редко. Уж точно реже, чем при использовании MoveLast после Insert-а. Как правило, Access не используется для настолько огромного числа пользователей, чтобы вероятность обсуждаемого события была достойна рассмотрения. --------------------
Каждую секунду, тыкая в клавиши, мы давим насмерть не менее 1000 микробов =:) |
|||
|
||||
| nicka |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 11.6.2003 Репутация: нет Всего: 1 |
OK!
|
|||
|
||||
![]()
|
| Правила форума "VB6" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | VB6 | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |