народ..
кто с талкивался с такой проблемой..
mysql сервер под виндой (хр) mysql-5.0.18-win32
пишу в делфи 7.
на форму кладу стандартные компоненты TTable (пробовал и квери) , datasourse и dbGrid.
всё завязываю и TTable коннекчу к мускульной базе через ODBC драйвер "mysql-connector-odbc-3.51.12-win32"
изначально всё раборает нормально. записи добавляются, удаляются, редактируются.. но иногда возникают ситуации, когда после редактирования какой-то записи мне мускуль выдаёт сообщение, что "не могу произвести редактирование, т.к. другой юзер выбрал эту запись".. смотрю паралельно монитором в базу — никаких левых юзеров нет.. тут явно прога сама на себя натыкается.. я уже поубирал половину полей для эксперимента, но всё равно глючил. полей осталось штук 12. все они или смоллИнт, int или строки длиной не больше 20-ти символов.
заметил, что это случается, чаще всего после того, как я введу новую запись, перейду на другую строчку (тем самым внеся запись) а потом возвращаюсь к этой записи и редактирую в ней что либо..
после таких ошибок бывает даже не получается удалить эту запись.. говорит, что занята и всё.. в общем я уже задолбался вычислять этот глюк..
ни у кого ничего подобного небыло? может проблема с самим mysql сервером, а может с драйвером. уже не знаю на что и думать..
никто таким не страдал?
надеюсь на подмогу..
Re: ошибка редактирования записи при работе с mysql
может ли быть такое, что mysql сервер не успевает прописывать свои записи.. т.е. я изменил запись, перешёл на другую запись, а потом сразу начал править эту запись и в этот момент, мускуль, не успев доделать предидущий шаг — выдаёт ошибку..
я конечно не считаю, что я таким быстрым, но ума не приложу что за лажа (((
Re[2]: ошибка редактирования записи при работе с mysql
От:
Аноним
Дата:
18.10.06 14:17
Оценка:
SK>может ли быть такое, что mysql сервер не успевает прописывать свои записи.. т.е. я изменил запись, перешёл на другую запись, а потом сразу начал править эту запись и в этот момент, мускуль, не успев доделать предидущий шаг — выдаёт ошибку.. SK>я конечно не считаю, что я таким быстрым, но ума не приложу что за лажа (((
А ты уверен, что до мускуля что надо доходит ?
Смотри какую ты эстафету выстроил:
1) TTable, вместо TQuery (да, для начала проще, но при более-менее больших данных начнутся тормоза)
2) устаревший и всеми по сути отменённый BDE
3) устаревший и мало кем из новых программ используемый ODBC
4) MySQL
Во любом месте этой эстиафеты может быть сбой.
У записи есть уникальный идентификатор ? Так чтобы BDE (да еще TTable) мог однозначно одну от другой отделить ?
Кстати, а тем же монитором отследить — какие именно запросы приходят в мускуль, когда ты всё это делаешь ?
Re[2]: ошибка редактирования записи при работе с mysql
Здравствуйте, sas-koval, Вы писали:
SK>может ли быть такое, что mysql сервер не успевает прописывать свои записи.. т.е. я изменил запись, перешёл на другую запись, а потом сразу начал править эту запись и в этот момент, мускуль, не успев доделать предидущий шаг — выдаёт ошибку.. SK>я конечно не считаю, что я таким быстрым, но ума не приложу что за лажа (((
У меня такая же фигня была один раз, но при использовании ADO и TQuery. Коннектился к базе Access.
Лечилось только закрыванием-открыванием таблицы.
Объем данных был маленкий, прога тестовая, поэтому этого было достаточно.
Причину так и не выяснил.
Re[3]: ошибка редактирования записи при работе с mysql
Здравствуйте, Аноним, Вы писали:
А>Смотри какую ты эстафету выстроил:
А>1) TTable, вместо TQuery (да, для начала проще, но при более-менее больших данных начнутся тормоза) А>2) устаревший и всеми по сути отменённый BDE А>3) устаревший и мало кем из новых программ используемый ODBC А>4) MySQL
А>Во любом месте этой эстиафеты может быть сбой.
А>У записи есть уникальный идентификатор ? Так чтобы BDE (да еще TTable) мог однозначно одну от другой отделить ?
А>Кстати, а тем же монитором отследить — какие именно запросы приходят в мускуль, когда ты всё это делаешь ?
уникальный идентификатор конечно есть.
монтор к сожалению не показывает какие запросы приходят в БД. он лишь показывал текущее состояние сервера, где было видно, что лишних подключений не болтается.
что касается TTable, вместо TQuery — спасибо. учту.. не знал, но проблема не в этом пока.
я уже перенёс это всё под линуксовый сервер мускуля, но проблема осталась.
у меня после прочтения вашего ответа возник встречный вопрос.. А как правильно? я не силён в этом и буду рад, если кто-то подскажет как правильней/оптимальней писать.. я то делал всё по книжкам.
может подскажите какие компоненты для работы с мускулем.. и вообще по какому порядку должна строиться такая связь с базой данных.
буду рад любым советам
Re[4]: ошибка редактирования записи при работе с mysql
Здравствуйте, sas-koval, Вы писали:
SK>народ..
обновить mdac компоненты.
... << RSDN@Home 1.2.0 alpha rev. 655>>
Я не умею быть злым, и не хочу быть добрым.
Re[5]: ошибка редактирования записи при работе с mysql
От:
Аноним
Дата:
23.10.06 07:53
Оценка:
SK>да.. и ещё.. как кроме как через ОДБС связать приложение с базой?
www.torry.ru -> есть компоненты и ODBC и для прямой связи
И еще побегай по форумам мускуля, по rsdn.DB, по sql.ru, неужели для него нет монитора, который бы запросы показывал? Ну не может быть у мускуля все настолько плохо.
Re[4]: ошибка редактирования записи при работе с mysql
От:
Аноним
Дата:
23.10.06 08:03
Оценка:
SK>уникальный идентификатор конечно есть. SK>монтор к сожалению не показывает какие запросы приходят в БД. он лишь показывал текущее состояние сервера, где было видно, что лишних подключений не болтается. SK>что касается TTable, вместо TQuery — спасибо. учту.. не знал, но проблема не в этом пока.
Для TQuery как минимум можно самому все запросы сделать, а TTable сама пытается сделать, может быть и rhbdj делает.
Транзакции отрываешь
закрываешь сам, или тоже на BDE надеешься ?
SK>я уже перенёс это всё под линуксовый сервер мускуля, но проблема осталась.
"это всё" — и Delphi тоже ?
SK> А как правильно? я не силён в этом и буду рад, если кто-то подскажет как правильней/оптимальней писать.. я то делал всё по книжкам.
По мускулю не подскажу. По Firebird'у хорошие книжки на ibase.ru и их форум на gmane.org
У мусклевцев наверняка ест ьсвои форумы и там тебе скорее порекомендуют, какие книжки правильные.
Re[5]: ошибка редактирования записи при работе с mysql
Спасибо всем. долго долбался, но потом нашёл статью, уде описывали другие компоненты, в частности dbExpress и написал всё на них. правда эта проблема там продолжала меня доставать,но тогда я просто сделал занесение в базу по кнопке применить.. и проблема отпала. единственное, что в тех компонентах плохо — что они не знают 5-го мускуля. и драйвера пришлось искать. нашёл CoreLab. с их сайта скачал. поставил. работает
пишу свою "базульку" дальше
тему можно закрывать.
ещё раз всем спасибо.
Re[6]: ошибка редактирования записи при работе с mysql
Здравствуйте, <Аноним>, Вы писали:
SK>>да.. и ещё.. как кроме как через ОДБС связать приложение с базой?
А>И еще побегай по форумам мускуля, по rsdn.DB, по sql.ru, неужели для него нет монитора, который бы запросы показывал? Ну не может быть у мускуля все настолько плохо.
mysql administrator
берется с оффсайта мускля.