|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
09.07.2013, 09:38 | #1 |
Пользователь
Регистрация: 26.12.2009
Сообщений: 95
|
большая проблема с редактированием dbgrid
у меня есть таблица в mysql, соединяюсь из delphi компонентом mydac
так вот есть несколько dbgrid, данные из таблицы базы поступают в них sql запросами. Проблема в том как реализовать редактирование. Если бы я выводил всю таблицу, то никаких проблем dbedit и post как реализовать в данном случае, могу только представить - по щелчку на строку, эта запись должна найтись в таблице - и отобразиться в dbedit. конечно можно обойтись наверное и без вывода в дбгрид запросом, но тогда придется одинаковых таблиц множить целую кучу, и как то связывать их. Может быть кто-нибудь сталкивался с подобным? |
09.07.2013, 11:56 | #2 |
Homo Interneticus
Форумчанин
Регистрация: 04.03.2011
Сообщений: 611
|
Не пользовался mydac, но по сути Вам нужны "живые запросы", если компонент поддерживает подобную возможность (может быть есть свойство или опция LiveQuery или что-то типа того), то можете использовать. Но для работы "живых запросов" в выборке должно быть достаточно ключевых полей. Да и сама реализация "живых запросов" именно так как Вы предполагаете и делается - запросами. Так что если нельзя выборки связанные с DbGrid-ами сделать "живыми" то тогда только самостоятельно писать запросы на редактирование записей. Это все без привязки к mySQL. Возможно там можно триггеры написать какие-то, не знаю, не работал...
|
09.07.2013, 14:37 | #3 | |
Ваш К. О.
Участник клуба
Регистрация: 26.12.2012
Сообщений: 1,775
|
Цитата:
Если правильно понимаю, то MyDAC должен использовать ту же систему, что и ODAC, поскольку написан на том же DAC-движке. В нем обычно бывает "ручная" и "продвинутая" версии -- TxxQuery и TxxSmartQuery. В ручной версии нужно UpdateSQL и DeleteSQL нужно писать вручную, а в smart-версии достаточно указать KeyFields, и компонент сгенерит соответствующие UpdateSQL сам. |
|
09.07.2013, 15:53 | #4 | ||
Пользователь
Регистрация: 26.12.2009
Сообщений: 95
|
Цитата:
Ручной вариант получился по образцу, прикрепил. в принципе keyfields тоже попробовал - быстрее. Но! печаль в том что все записи должны быть уникальны, потому что если в дбгриде есть 2 одинаковые строки - то выскочит ошибка Цитата:
Можно про это поподробней? с примером Идея! Если создать в базе id2 например, и сделать его автозаполнение, то если в keyfields засунуть id 2 - проблема решиться? все остальные поля в строках могут быть одинаковыми Последний раз редактировалось Stilet; 09.07.2013 в 17:07. |
||
09.07.2013, 17:35 | #5 |
Ваш К. О.
Участник клуба
Регистрация: 26.12.2012
Сообщений: 1,775
|
И правильно, ибо нефиг. Возможных причин две:
По поводу редактирования и диалогов:
Код:
Код:
Последний раз редактировалось Vapaamies; 09.07.2013 в 17:38. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проблема с редактированием записи таблицы. | p.majorov | БД в Delphi | 4 | 15.11.2010 13:25 |
Большая проблема в 300Gb :( | ProIgor | Операционные системы общие вопросы | 3 | 18.09.2009 20:17 |
Большая проблема | BlackOmen | Работа с сетью в Delphi | 2 | 16.03.2008 19:02 |