|
DAO + ODBC + MySql получение ключа-счетчика в момент создания записи
|
|||
---|---|---|---|
#18+
MrShin Способ рабочий, но иногда нужно знать значение ключа до апдейта. Приведите пример, когда оно нужно "до апдейта". К тому же все методы "до того" не надежны. Например если есть запись со счетчиком 1, а запись с 2 удалена, то DMax вернет 2, а счетчик в новой записи будет 3. Я уже не говорю о многопользовательской среде. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 11:02 |
|
DAO + ODBC + MySql получение ключа-счетчика в момент создания записи
|
|||
---|---|---|---|
#18+
Что, на хвост тебе наступил? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 11:03 |
|
DAO + ODBC + MySql получение ключа-счетчика в момент создания записи
|
|||
---|---|---|---|
#18+
Кривцов Анатолий Приведите пример, когда оно нужно "до апдейта". Например, когда нужно сформировать код записи для чтения человеком для новой записи на базе значения счетчика. Кривцов Анатолий К тому же все методы "до того" не надежны. Например если есть запись со счетчиком 1, а запись с 2 удалена, то DMax вернет 2, а счетчик в новой записи будет 3. Так я ж и не предлагал DMax использовать, этого делать нельзя. Я предлагал просто подождать несколько циклов, пока база не вернет новый ключ, он точно будет правильным и в многопользовательской среде. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 11:15 |
|
DAO + ODBC + MySql получение ключа-счетчика в момент создания записи
|
|||
---|---|---|---|
#18+
Панург Счётчики остались для совместимости со старыми приложениями. Панург Им требовались номера строк. Что-то я не припоминаю приложений, работавших именно с БД (даже файловыми) и использовавших именно порядковый номер записи (тем более что все они работали по принципу "пометить на удаление, а удалим, когда попросят сжать"). Что же до внутреннего номера записи - так он есть в той или иной форме практически в любой современной СУБД. Впрочем, явно это описано, пожалуй, только у MySQL, и только для InnoDB. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 11:36 |
|
DAO + ODBC + MySql получение ключа-счетчика в момент создания записи
|
|||
---|---|---|---|
#18+
Akina, мне кажется я привёл ссылку на источник информации. Источник и автор высказывания лично у меня вызывают доверие. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 11:56 |
|
DAO + ODBC + MySql получение ключа-счетчика в момент создания записи
|
|||
---|---|---|---|
#18+
Akina Ну если учесть тот факт, что до сих пор они интенсивно используются, и куда чаще естественных ключей Akina Что-то я не припоминаю приложений ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 12:08 |
|
DAO + ODBC + MySql получение ключа-счетчика в момент создания записи
|
|||
---|---|---|---|
#18+
MrShin Пример, приведенный в самом начале заработает, если добавить цикл ожидания ненулевого значения поля-счетчика, он появляется, но не сразу. Не дождался... пару минут прошло- снял задачу, похоже на ODBC MySql это не распространяется... Кривцов Анатолий Для DAO: Код: vbnet 1. 2. 3. 4. 5. 6.
тоже не работает, ошибка типа текущая запись удалена, пробовал LastUpdated, аналогично... А вот такое заработало: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Вопрос только в том всегда ли будет Last = LastModified в разрезе ODBC MySql ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 13:21 |
|
DAO + ODBC + MySql получение ключа-счетчика в момент создания записи
|
|||
---|---|---|---|
#18+
Прикольно... Можно сделать важный вывод по работе c DAO через ODBC MySql: после добавления записей при помощи rs.AddNew .... rs.Update они вообще недоступны от слова никак в этом rs до применения rs.Requery !!! То есть все добавления идут за пределами ODBC на самом сервере, а чтобы их увидеть, нужно обновить набор ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 13:37 |
|
DAO + ODBC + MySql получение ключа-счетчика в момент создания записи
|
|||
---|---|---|---|
#18+
vmag тоже не работает, ошибка типа текущая запись удалена, пробовал LastUpdated, аналогично... Не забываем при открытии рекордсета добавить опции dbOpenDynaset, dbSeeChanges, тогда будет это работать ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 14:40 |
|
DAO + ODBC + MySql получение ключа-счетчика в момент создания записи
|
|||
---|---|---|---|
#18+
vmag Не дождался... пару минут прошло- снял задачу, похоже на ODBC MySql это не распространяется... Да, сейчас проверил, действительно, значение появляется только после апдейта на SQL базах. Извиняюсь, спутал с необходимостью ждать уже ПОСЛЕ апдейта. Не знаю, насколько это критично на MySQL и при прямой работе с MS SQL, но при работе с SharePoint _иногда_ значение после апдейта не появлялось и происходила ошибка, поэтому я стараюсь на всякий случай добавлять ожидание: Код: vbnet 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 14:50 |
|
DAO + ODBC + MySql получение ключа-счетчика в момент создания записи
|
|||
---|---|---|---|
#18+
vmag, тогда пробуйте использовать ADODB.Recordset (только без пакетного обновления). Там новая запись становится текущей. "Вопрос только в том всегда ли будет Last = LastModified в разрезе ODBC MySql" - не знаю, как с MySql, но справка по AddNew для DAO рассказывает, что в Recordset типа "Таблица" ее расположение зависит от индексов. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 16:58 |
|
|
start [/forum/topic.php?fid=45&msg=39906908&tid=1610323]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
61ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 321ms |
total: | 464ms |
0 / 0 |