|
DAO + ODBC + MySql получение ключа-счетчика в момент создания записи
|
|||
---|---|---|---|
#18+
На сколько я помню при любом ODBC соединении вот такая конструкция: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8.
Будет выдавать всегда 0 (ноль) вместо значения ключа ? Может кто: - нарыл коннектор MySql - или знает как конфигурить эту MySql - или придумал оптимальный костыль Чтобы таки узнать ключ-счетчик в момент создания записи через ODBC соединение? Пока вижу пару решений: 1. Генерить запись в самой MySql с возвратом ключа, а потом её модифицировать. 2. Хранить и Генерить ключ в бд акцесса, а потом писать запись в MySql (естественно в MySql это уже будет не счетчик) Но они как-то на мой взгляд не очень... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2019, 04:12 |
|
DAO + ODBC + MySql получение ключа-счетчика в момент создания записи
|
|||
---|---|---|---|
#18+
vmag, Если есть возможность, поменяйте DAO на ADO. Там есть возможность выйти на ado connection и ado command. Драйвера свежие для адаптера посмотрите в Гугле mysql odbc driver. (Ставьте сразу и 32 и 64) Станет возможно писать на mysql и выполнять запросы к серверу mysql. Вопрос достаточно распространенный про id только что добавленной записи, в самом сообществе mysql. Посмотрите mysql функцию last_insert_id. Она как раз и делает то что вам нужно. Исполнить сможете используя запрос серверу и адаптер mysql. Причем это не будет даже костылем. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2019, 08:13 |
|
DAO + ODBC + MySql получение ключа-счетчика в момент создания записи
|
|||
---|---|---|---|
#18+
Значение ключа имеет смысл только в том случае, если вставляемая совокупность значений уникальна в пределах таблицы. А если она уникальная - ничто не мешает, используя эту совокупность в условии отбора, получить значение ключа свежевставленной записи. Единственное, что теоретически может этому мешать - DEFAULT CURRENT_TIMESTAMP. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2019, 12:25 |
|
DAO + ODBC + MySql получение ключа-счетчика в момент создания записи
|
|||
---|---|---|---|
#18+
Сергей Лалов Если есть возможность, поменяйте DAO на ADO.......... Спасибо попробую... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2019, 13:27 |
|
DAO + ODBC + MySql получение ключа-счетчика в момент создания записи
|
|||
---|---|---|---|
#18+
Akina ничто не мешает, используя эту совокупность в условии отбора, получить значение ключа свежевставленной записи. В многопользовательском режиме есть вероятность получить ключ не своей свеже вставленной записи... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2019, 13:30 |
|
DAO + ODBC + MySql получение ключа-счетчика в момент создания записи
|
|||
---|---|---|---|
#18+
Исключено. Если ты вставляешь поле="моё_значение", а потом делаешь запрос WHERE поле="моё_значение" - то как ты получишь ЧУЖУЮ запись? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2019, 15:10 |
|
DAO + ODBC + MySql получение ключа-счетчика в момент создания записи
|
|||
---|---|---|---|
#18+
Akina Исключено Допустим сидит много менеджеров и фиксируют поступающие заявки... № заявки = № ключа/счетчика (1, 2, 3, ....) К заявке цепляются строки (другая таблица) со вторичным ключом № заявки В случае с DAO выше, мы получаем № заявки при её создании и на него непосредственно вешаем строки... Если такой возможности нет, то № заявки нужно вычислять потом по максимальному № заявки, а так как одновременно создали свои заявки многие пользователи, то максимальное значение № заявки для заведения строк менеджер может получить уже не своё, а чужое... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2019, 15:54 |
|
DAO + ODBC + MySql получение ключа-счетчика в момент создания записи
|
|||
---|---|---|---|
#18+
Сергей Лалов Если есть возможность, поменяйте DAO на ADO. Спасибо за пинок в нужном направлении, всё сложилось! Итого: - можно привязать таблицы через ODBC и работать как с обычными и в том числе с DAO... - параллельно, если чего не хватает, можно выкрутиться посредством ADO, вполне адекватный пример тут ... Единственное, last_insert_id капризная штука в самой MySql вот такая связка идет на ура Код: sql 1. 2. 3.
Ну как бы мускулю, пофиг, тупо выполняет два запроса подряд с результатом по последнему и всё... А в ADO нужно эти запросы разделять и запускать по очереди, причем селект сразу за инсертом, иначе получишь или не то, или ноль... И ещё, мне как то иннодб больше понравилось, чем исам, - можно делать полноценную схему Бд (целостность, каскадность и т.д.), хотя помню кажется именно Вы предпочитаете юзать второе... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2019, 19:29 |
|
DAO + ODBC + MySql получение ключа-счетчика в момент создания записи
|
|||
---|---|---|---|
#18+
vmag Если такой возможности нет, то № заявки нужно вычислять потом по максимальному № заявки ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2019, 19:57 |
|
DAO + ODBC + MySql получение ключа-счетчика в момент создания записи
|
|||
---|---|---|---|
#18+
Akina, Хорошо, в заявке есть: -Счетчик/ключ (1, 2, 3, ...) -Тип заявки, например код 25 (вывоз мусора) -Дата в формате (ДД.ММ.ГГ) Три менеджера одновременно Создали по заявке: 102, 25, 22.12.19 103, 25, 22.12.19 104, 25, 22.12.19 И где чья ? Кто раньше нажал кнопку? Ну если еще в заявке будет код Менеджера, то еще куда ни шло - можно вычислить последнюю именно свою... Ну и чем больше отпечатков пальцев - тем проще... Интересен был именно сам факт получения ключа на момент создания, без лишних вычислений его апосля... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2019, 20:15 |
|
DAO + ODBC + MySql получение ключа-счетчика в момент создания записи
|
|||
---|---|---|---|
#18+
vmag Три менеджера одновременно Создали по заявке: 102, 25, 22.12.19 103, 25, 22.12.19 104, 25, 22.12.19 И где чья ? Кто раньше нажал кнопку? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2019, 20:18 |
|
DAO + ODBC + MySql получение ключа-счетчика в момент создания записи
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2019, 20:30 |
|
DAO + ODBC + MySql получение ключа-счетчика в момент создания записи
|
|||
---|---|---|---|
#18+
Akina Тогда это ошибка архитектуры Таких "ошибок архитектуры" везде и повсюду вагон и маленькая тележка, по этому и придумали ключ/счетчик дабы не парится с абсолютной идентификацией конкретной записи... Большинство таблиц любой БД содержат именно такие ключи и это не ошибка архитектуры, а выход из тупика... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2019, 20:37 |
|
DAO + ODBC + MySql получение ключа-счетчика в момент создания записи
|
|||
---|---|---|---|
#18+
Лапух Может секундами? Ну да мля... оператор глянул на свои котлы... ага 25 минут - 46 сякунд и жмякнул на кнопку... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2019, 20:39 |
|
DAO + ODBC + MySql получение ключа-счетчика в момент создания записи
|
|||
---|---|---|---|
#18+
vmag,, вы же не первый день замужем, ну типа на сём форуме. Должны же за столько лет понять и осознать, что без реального примера, вам 10-20 страниц напишут всяко-разных теоретических и по сути не пригодных советов. Чё у вас за форум такой, где нормальный пример просто невозможно выложить и остается только прикалываться. Кстати, что то плакальшик и весь из себя обиженый на Нашем форуме - Панург - Пропал. Даже в тут его не видно и не слышно стало, а то ведь как бы в каждой бочке затычкой был. Даже скучно без него стало. Поспорить не с кем. Может кто призовёт его к пустопорожнему обсуждению. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2019, 20:53 |
|
DAO + ODBC + MySql получение ключа-счетчика в момент создания записи
|
|||
---|---|---|---|
#18+
Время ввода, как и автоматически присвоенный номер, не являются информацией ЗАЯВКИ. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2019, 20:54 |
|
DAO + ODBC + MySql получение ключа-счетчика в момент создания записи
|
|||
---|---|---|---|
#18+
vmag по этому и придумали ключ/счетчик дабы не парится с абсолютной идентификацией конкретной записи... Синтетический ключ-счётчик придумали для совсем иных целей. И изначально предполагалось, что его ни смотреть, ни тем более как-то (иначе чем для связывания таблиц) использовать, никто не будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2019, 20:55 |
|
DAO + ODBC + MySql получение ключа-счетчика в момент создания записи
|
|||
---|---|---|---|
#18+
Akina ...И изначально предполагалось... А в где, из первоисточников, можно об этом почитать? Очень уж интересненько. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2019, 21:24 |
|
DAO + ODBC + MySql получение ключа-счетчика в момент создания записи
|
|||
---|---|---|---|
#18+
Первоисточников уже фиг найдёшь - они если и есть, то изначально только в бумаге. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2019, 21:31 |
|
DAO + ODBC + MySql получение ключа-счетчика в момент создания записи
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2019, 22:06 |
|
DAO + ODBC + MySql получение ключа-счетчика в момент создания записи
|
|||
---|---|---|---|
#18+
Если это поможет (хотя вряд ли) - я это дело в своё время вычитал в мануале на СУБД Gupta (была такая где-то в забугорье, её портировали, во всяком случае пытались, под ЕС ЭВМ). Они ссылались на какой-то серьёзный труд по теории реляционных БД, ессно я не помню какой, и его не читал, ибо достать импортное узкоспециальное издание в те времена было более чем нереально. Там автогенерящиеся индексы и поля-ссылки вообще были заложены безусловно, не описывались структурой (описывался только факт референса, а СУБД уже всё организовывала самостоятельно), и занимались чисто установлением соответствия. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2019, 23:21 |
|
DAO + ODBC + MySql получение ключа-счетчика в момент создания записи
|
|||
---|---|---|---|
#18+
Пример, приведенный в самом начале заработает, если добавить цикл ожидания ненулевого значения поля-счетчика, он появляется, но не сразу. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 05:45 |
|
DAO + ODBC + MySql получение ключа-счетчика в момент создания записи
|
|||
---|---|---|---|
#18+
Для DAO: Код: vbnet 1. 2. 3. 4. 5. 6.
В ADO еще проще. Там добавленная запись становится текущей. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 10:19 |
|
DAO + ODBC + MySql получение ключа-счетчика в момент создания записи
|
|||
---|---|---|---|
#18+
Кривцов Анатолий, Способ рабочий, но иногда нужно знать значение ключа до апдейта. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 10:47 |
|
DAO + ODBC + MySql получение ключа-счетчика в момент создания записи
|
|||
---|---|---|---|
#18+
Akina Синтетический ключ-счётчик придумали для совсем иных целей. И изначально предполагалось, что его ни смотреть, ни тем более как-то (иначе чем для связывания таблиц) использовать, никто не будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 10:55 |
|
|
start [/forum/topic.php?fid=45&msg=39906729&tid=1610323]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
56ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 149ms |
0 / 0 |