Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
 Аватар для MrHitman47
35 / 35 / 4
Регистрация: 23.05.2011
Сообщений: 201
Записей в блоге: 1

MySQL сервер в Delphi

11.11.2011, 10:43. Показов 1979. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!, я работаю в d2006 соединяюсь с MySQL server 5.0... через ADO по средствам TADOQuery размещенных в TDataModule, обновления данных переходит под контроль TDBGridEh. При редактировании данных, не понятно при каких обстоятельствах, время от времени выпадают различные ошибки типа "не могу найти строку обновления...". Может я что то не правильно делаю и что то не учитываю?, как то самостоятельно отлавливать изменения в таблице? или может поменять компоненты доступа к данным, пока еще есть такая возможность? дайте какие то советы при работе с серваком (раньше больше работал с локальными базами типа Access и прочей дребедени которая уже не подходить)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.11.2011, 10:43
Ответы с готовыми решениями:

Перезагрузить mysql сервер с обнулением таблицы mysql - опция mysqld --skip-grant-tables
Здравствуйте , столкнулся с такой проблемой ,неудаётся подключиться к серверу mysql из командной строки. mysql -p pass -u login ...

Сервер MySQl
Привет! Ребята подскажите кто нить делал себе БД на сервере MySql и как вообще с этим разбираться - я создал БД естестно зарегался а как...

Mysql сервер
Здравствуйте, подскажите пожалуйста где можно разрешить подключатся к MySQL серверу с другой машины ? т.к. я ставил в настройках...

11
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
11.11.2011, 11:35
Ваша проблема в том, что Вы абсолютно не понимаете СУТИ того, что делаете, о чем красноречиво говорит вот эта фраза:
Delphi
1
обновления данных переходит под контроль TDBGridEh
Грид сам по себе никакие обновления не отслеживает, и тем более не контролирует.

Написание КОРРЕКТНО работающего GUI с правкой непосредственно в гриде требует от программиста понимания поведения датасета и написания соответсвующего кода. Например для обработчиков событий BeforeEdit, BeforeInsert, BeforeDelete, BeforePost, AfterPost, AfterScroll, OnUpdateRecord и других.
В противном случае получается чудо-юдо, при работе с которым (особенно в комплекте с бесподобным нафигатором ) в базе появляются записи-пустышки (полупустышки), пропадают нужные записи, в поля вместо нужных данных записывается какая-то абракадабра и т.д. Ну и конечно постоянные вылеты приложения
К сожалению, в популярной прог.литературе сплошь и рядом авторы предпочитают приводить примеры работы с базами данных именно при помощи "сеточного" редактирования (в принципе понятно их стремление - большинство "заказчиков" ПО привыкли к Экселю и требуют от программ "умения" работать в той же манере), уверяя к тому же, что это так просто ! Ложь, конечно, причем чистейшей воды, во всяком случае на "стандартных" компонентах Делфи, однако читатели покупаются ! В том числе и преподы

Добавлено через 9 минут
Совет простой: забудье про локальные методы работы с базой и переходите на клиент-серверные.
В частности ВСЕ изменения через явные запросы (TADOCommand), редактирование (удаление) через модальные формы с клиентским (предметным) контролем корректности вводимых данных. Каждый запрос проверять на успешность с выдачей обнаруженных ошибок(try except)
Перенос на сторону сервера максимум общего контроля данных и целостности данных (счетчики, констрэйнты, триггеры, хранимки, эксепшены етц)

ИМХО, одна из лучших книг для получения начального представления о КОНЦЕПЦИИ КС технологии (коренным образом отличающейся от локальной, например парадоксовской) - "Мир интербэйз" Вострикова и Ковязина. Это ничего, что там интербэйз - общее направление дано четко, а суть механизма транзакции вообще супер (несмотря что транзакции в интербэйзе по управляемости совсем иное, чем например в Ms SQL Server или том же акцесе)
1
 Аватар для MrHitman47
35 / 35 / 4
Регистрация: 23.05.2011
Сообщений: 201
Записей в блоге: 1
11.11.2011, 13:31  [ТС]
на операцию обновления сделать процедуру (SQ:L, не Delphi процедуру) с параметрами в виде полей и передавать серверу что бы он сам вставлял записи через INSERT и UPDATE (в случае обновления а не добавления), я в правильном направлении???
0
 Аватар для rdama
569 / 292 / 12
Регистрация: 28.01.2011
Сообщений: 1,326
11.11.2011, 13:46
А по мне раз взялись за мускуль то и пишите максимально функционала на стороне БД. Ибо когда с ним работаешь сам не замечаешь как переходишь к веб интерфейсам. Так почему же сразу не сделать так чтоб было удобно потом.
0
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
11.11.2011, 15:34
Delphi
1
я в правильном направлении???
В правильном.
0
 Аватар для MrHitman47
35 / 35 / 4
Регистрация: 23.05.2011
Сообщений: 201
Записей в блоге: 1
11.11.2011, 17:01  [ТС]
Тогда такой вопрос, я редактирую данные в таблице, потом отлавлюю событие (какое событие брать AfterEdit или BeforPost) на событие вешаю вызов StoredProc отправляю параметры и делаю ExecProc, все верно ?
0
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
11.11.2011, 17:41
Нет, не верно !
Я Вам еще раз повторяю - откажитесь от гридного редактирования в пользу модальных форм.
0
 Аватар для MrHitman47
35 / 35 / 4
Регистрация: 23.05.2011
Сообщений: 201
Записей в блоге: 1
14.11.2011, 10:06  [ТС]
Нет такой возможности, модальные формы сильно снижают функциональность, и толку от программы работающей с базой с которой нельзя работать сразу с набором данных а не вызывать форму для редактирования каждой конкретной записи, юзер заморится от такой фигни и выкинет на мусор такую прогу.
0
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
14.11.2011, 11:59
Delphi
1
Нет такой возможности
Настоятель монастыря не позволят ?

Delphi
1
модальные формы сильно снижают функциональность
Это Вы никому не говорите - засмеют

Delphi
1
толку от программы работающей с базой с которой нельзя работать сразу с набором данных а не вызывать форму для редактирования каждой конкретной записи, юзер заморится от такой фигни и выкинет на мусор такую прогу.
Если "база" принадлежит только юзеру, то эксель в руки и пусть он хоть селедку на нем заворачивает. Если же база общая, то юзер должен пользоватьеся ею не монопольно (делаю что хочу, хоть вдоль правлю, хоть поперек, а хоть по диагонали !), а наравне с другими, т.е. по ПРАВИЛАМ. А правила любого РАЗДЕЛЯЕМОГО доступа состоят в том, что кроме прав, имеются также и ограничения - и одно из основных ограничений и состоит в том, что пользователь должен сначала ПОЛУЧИТЬ право на реактирование ОДНОЙ записи, а потом только изменять ее !
Короче, Вам надо просто почитать что-нибудь про клиент-серверные технологии. А то Вам кто-то вбил в голову что единственная и неповторимая технология - локальная и парадокс - пророк ее

Добавлено через 7 минут
И еще. На клиенте Вы можете вытврять с ПОЛУЧЕННЫМИ с сервера данными что Вам заманэться, например засовывать их в стрингрид или в TClientDataSet, где править "шахматкой", "елочкой" или квадратно-гнездовым. Но вот к серверу будьте добры обращаться запросами и при этом не забывая проверить корректность передаваемых данных - либо ловите и диагностируйте полученные от него "эксепщины") !
Кстати, в так любимом Вами и Вашим учителями TTable при каждом Post формируются именно такие запросы, но при этом неявно, поэтому иногда в базу записывается не совсем то (или совсем не то), что хотелось бы И именно поэтому, а еще и потому что не соблюдается ЛОГИЧЕСКАЯ ЦЕЛОСТНОСТЬ правок (т.е. когда объект ГАРАНТИРОВАННО корректно добавляется или изменяется в базе, что ДОСТАТОЧНО ПРОСТО обеспечивается МОДАЛЬНОСТЬЮ интерфейса)
0
 Аватар для MrHitman47
35 / 35 / 4
Регистрация: 23.05.2011
Сообщений: 201
Записей в блоге: 1
14.11.2011, 13:38  [ТС]
Цитата Сообщение от MsGuns Посмотреть сообщение
Это Вы никому не говорите - засмеют
Код Delphi
1
толку от программы работающей с базой с которой нельзя работать сразу с набором данных а не вызывать форму для редактирования каждой конкретной записи, юзер заморится от такой фигни и выкинет на мусор такую прогу.
это даже не мои слова а пользователей и заказчика
0
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
14.11.2011, 16:37
Ну вот и сделайте ему на чистом акцесе - ему с головой хватит
Только предупредите, что работать с информацией можно будет только на его компе.

Добавлено через 5 минут
Delphi
1
Тогда такой вопрос, я редактирую данные в таблице, потом отлавлюю событие (какое событие брать AfterEdit или BeforPost) на событие вешаю вызов StoredProc отправляю параметры и делаю ExecProc, все верно ?
А в справку по событиям датасета заглянуть дельфишную тоже заказчик не дает ?
0
 Аватар для MrHitman47
35 / 35 / 4
Регистрация: 23.05.2011
Сообщений: 201
Записей в блоге: 1
14.11.2011, 17:31  [ТС]
я не пойму к чему такие ответы типа "погугли", "посмотри инфу". Я зашел на форум что бы задать вопрос и получить ответ от кого-то кто может ответить, помоему форумы для это и предназначены, и я писал: "аксесс и прочая дребедень не подходит" короче, закрыли тему, я уже разобрался.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.11.2011, 17:31
Помогаю со студенческими работами здесь

Не запускается сервер mysql
Доброго времени суток! Работаю (пытаюсь) с консольной версией mysql. Только что установил, при попытке запуска mysql.exe выдаёт...

Денвер и сервер mysql
не знаю здесь ли я пишу, если что, не ругайте. помогите пожалуйста, не могу подконнектиться к серверу mysql. Установлен денвер.

Сервер для MySQL
Добрый день. По работе попросили сделать сервер в пределах компании, чтобы любой пользователь мог через свой комп подключаться к БД MySQL...

Клиент -> Сервер -> MySQL
Всем добрый вечер. В данный момент занимаюсь довольно крупным проектом, по крайней мере перед собой поставил очень много задач, которые...

Клиент + Сервер + MySQL
Доброго времени суток. Собственно вопрос большой, требуется написать клиент-серверное приложение, сервер находится на 1 машине с базой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru