|
|
|
MySQL сервер в Delphi11.11.2011, 10:43. Показов 1979. Ответов 11
Метки нет (Все метки)
Здравствуйте!, я работаю в d2006 соединяюсь с MySQL server 5.0... через ADO по средствам TADOQuery размещенных в TDataModule, обновления данных переходит под контроль TDBGridEh. При редактировании данных, не понятно при каких обстоятельствах, время от времени выпадают различные ошибки типа "не могу найти строку обновления...". Может я что то не правильно делаю и что то не учитываю?, как то самостоятельно отлавливать изменения в таблице? или может поменять компоненты доступа к данным, пока еще есть такая возможность? дайте какие то советы при работе с серваком (раньше больше работал с локальными базами типа Access и прочей дребедени которая уже не подходить)
0
|
|
| 11.11.2011, 10:43 | |
|
Ответы с готовыми решениями:
11
Перезагрузить mysql сервер с обнулением таблицы mysql - опция mysqld --skip-grant-tables Сервер MySQl Mysql сервер |
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
||||||
| 11.11.2011, 11:35 | ||||||
|
Ваша проблема в том, что Вы абсолютно не понимаете СУТИ того, что делаете, о чем красноречиво говорит вот эта фраза:
Написание КОРРЕКТНО работающего GUI с правкой непосредственно в гриде требует от программиста понимания поведения датасета и написания соответсвующего кода. Например для обработчиков событий BeforeEdit, BeforeInsert, BeforeDelete, BeforePost, AfterPost, AfterScroll, OnUpdateRecord и других. В противном случае получается чудо-юдо, при работе с которым (особенно в комплекте с бесподобным нафигатором ) в базе появляются записи-пустышки (полупустышки), пропадают нужные записи, в поля вместо нужных данных записывается какая-то абракадабра и т.д. Ну и конечно постоянные вылеты приложения ![]() К сожалению, в популярной прог.литературе сплошь и рядом авторы предпочитают приводить примеры работы с базами данных именно при помощи "сеточного" редактирования (в принципе понятно их стремление - большинство "заказчиков" ПО привыкли к Экселю и требуют от программ "умения" работать в той же манере), уверяя к тому же, что это так просто ! Ложь, конечно, причем чистейшей воды, во всяком случае на "стандартных" компонентах Делфи, однако читатели покупаются ! В том числе и преподы ![]() Добавлено через 9 минут Совет простой: забудье про локальные методы работы с базой и переходите на клиент-серверные. В частности ВСЕ изменения через явные запросы (TADOCommand), редактирование (удаление) через модальные формы с клиентским (предметным) контролем корректности вводимых данных. Каждый запрос проверять на успешность с выдачей обнаруженных ошибок(try except) Перенос на сторону сервера максимум общего контроля данных и целостности данных (счетчики, констрэйнты, триггеры, хранимки, эксепшены етц) ИМХО, одна из лучших книг для получения начального представления о КОНЦЕПЦИИ КС технологии (коренным образом отличающейся от локальной, например парадоксовской) - "Мир интербэйз" Вострикова и Ковязина. Это ничего, что там интербэйз - общее направление дано четко, а суть механизма транзакции вообще супер (несмотря что транзакции в интербэйзе по управляемости совсем иное, чем например в Ms SQL Server или том же акцесе)
1
|
||||||
|
|
|
| 11.11.2011, 13:31 [ТС] | |
|
на операцию обновления сделать процедуру (SQ:L, не Delphi процедуру) с параметрами в виде полей и передавать серверу что бы он сам вставлял записи через INSERT и UPDATE (в случае обновления а не добавления), я в правильном направлении???
0
|
|
|
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 | ||||||
0
|
||||||
|
|
|
| 11.11.2011, 17:01 [ТС] | |
|
Тогда такой вопрос, я редактирую данные в таблице, потом отлавлюю событие (какое событие брать AfterEdit или BeforPost) на событие вешаю вызов StoredProc отправляю параметры и делаю ExecProc, все верно ?
0
|
|
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
|
| 11.11.2011, 17:41 | |
|
Нет, не верно !
Я Вам еще раз повторяю - откажитесь от гридного редактирования в пользу модальных форм.
0
|
|
|
|
|
| 14.11.2011, 10:06 [ТС] | |
|
Нет такой возможности, модальные формы сильно снижают функциональность, и толку от программы работающей с базой с которой нельзя работать сразу с набором данных а не вызывать форму для редактирования каждой конкретной записи, юзер заморится от такой фигни и выкинет на мусор такую прогу.
0
|
|
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
||||||||||||||||
| 14.11.2011, 11:59 | ||||||||||||||||
![]()
Короче, Вам надо просто почитать что-нибудь про клиент-серверные технологии. А то Вам кто-то вбил в голову что единственная и неповторимая технология - локальная и парадокс - пророк ее ![]() Добавлено через 7 минут И еще. На клиенте Вы можете вытврять с ПОЛУЧЕННЫМИ с сервера данными что Вам заманэться, например засовывать их в стрингрид или в TClientDataSet, где править "шахматкой", "елочкой" или квадратно-гнездовым. Но вот к серверу будьте добры обращаться запросами и при этом не забывая проверить корректность передаваемых данных - либо ловите и диагностируйте полученные от него "эксепщины") ! Кстати, в так любимом Вами и Вашим учителями TTable при каждом Post формируются именно такие запросы, но при этом неявно, поэтому иногда в базу записывается не совсем то (или совсем не то), что хотелось бы И именно поэтому, а еще и потому что не соблюдается ЛОГИЧЕСКАЯ ЦЕЛОСТНОСТЬ правок (т.е. когда объект ГАРАНТИРОВАННО корректно добавляется или изменяется в базе, что ДОСТАТОЧНО ПРОСТО обеспечивается МОДАЛЬНОСТЬЮ интерфейса)
0
|
||||||||||||||||
|
|
|
| 14.11.2011, 13:38 [ТС] | |
|
0
|
|
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
||||||
| 14.11.2011, 16:37 | ||||||
|
Ну вот и сделайте ему на чистом акцесе - ему с головой хватит
Только предупредите, что работать с информацией можно будет только на его компе. Добавлено через 5 минут
0
|
||||||
|
|
|
| 14.11.2011, 17:31 [ТС] | |
|
я не пойму к чему такие ответы типа "погугли", "посмотри инфу". Я зашел на форум что бы задать вопрос и получить ответ от кого-то кто может ответить, помоему форумы для это и предназначены, и я писал: "аксесс и прочая дребедень не подходит" короче, закрыли тему, я уже разобрался.
0
|
|
| 14.11.2011, 17:31 | |
|
Помогаю со студенческими работами здесь
12
Не запускается сервер mysql Денвер и сервер mysql Сервер для MySQL Клиент -> Сервер -> MySQL Клиент + Сервер + MySQL Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
моя боль
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 из. . .
|