Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Прога подключенная к MySQL (ODBC) "не видит" чужих изменений  (Прочитано 9354 раз)
0 Пользователей и 1 Гость смотрят эту тему.
MegaLamer
Гость
« : 13-05-2006 19:26 » 

Сервер 5.0.21 (самый последний на данный момент)
MyODBC 3.51.12 (тоже самое свежее)

в общем подключаемся через одбс, в с++ проге. Редактируем данные, все ок.
Запускаем чтонибудь из:
1. второй экземпляр программы
2. консоль сервера
3. MySQL Query Browser
И немного отредактируем базу. В итоге первый экземпляр программы не видит, что базу меняет кто то еще. Фихасе...

Предположил, что ODBC драйвер кеширует данные. Устанавливал свойства DSN так, что бы не кешировал (option=3147776), та же хрень. Запустил сервер под --log=c:\mysql.log, в логе показывается что запросы первого экземпляра программы до сервера все же доходят. Установил кеш query_cache_size=0k, не помогает.

Что делать, помогите плз. Однопользовательская БД какая то получается  С ума сойти...
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 13-05-2006 19:58 » 

MegaLamer, commit делай.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
MegaLamer
Гость
« Ответ #2 : 13-05-2006 20:06 » 

Само собой. В обязательном порядке делаю.

И что еще харатерно. Стоить изменить хотя бы одну запись (поле) в таблице из первого экхемпляра программы, она сразу начинает видеть все изменения.
То есть такое впечатление, что действительно присутствует кеш, который при выполнении UPDATE относительно данной таблицы сбрасывается. Только не пойму, он на уровне myodbc или самого сервера и как от него избавится...  Здесь была моя ладья...
« Последнее редактирование: 13-05-2006 20:22 от MegaLamer » Записан
MegaLamer
Гость
« Ответ #3 : 14-05-2006 11:32 » 

Все, нашел ответ.
Если кто еще столкнется с такой проблемой, решение которой тривиально но не лежит на поверхности (разве что проштудировать  хелпы по innodb...)  http://forums.mysql.com/read.php?37,85687,85687#msg-85687

или сразу на http://dev.mysql.com/doc/refman/5.0/en/innodb-transaction-isolation.html
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #4 : 14-05-2006 13:53 » 

Сам накрутил лишнего?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
MegaLamer
Гость
« Ответ #5 : 14-05-2006 17:59 » 

RXL, неа, не сам. Проблема была в сервере.
Самое интересное, что режим транзакций INNODB таблиц по умолчанию стоит таким, что новые данные, даже закоммитенные, другому подключению не показываются. Почему - хз...
Может потому что чаще всего к mysql обращаются из скрипта (пхп и тд). Подключился - взял/положил что надо, ушел. Тогда все работает на ура.
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 14-05-2006 18:40 » new

Я давно с innodb не эксперементровал. Может просто в конфиге режимы по умолчанию проставил? Помнится, авто-комит можно настроить.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines