![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Редактирование данных в DBGrid в случае заполнения DBGrid изQuerу [XP]
Maridena © (2009-08-06 21:52:00)Привет всем.
У меня наверное несколько глупый вопрос, но я действительно не понимаю. Пожалуйста, помогите.
В общем есть несколько таблиц, из которых собирается вьюшка, которую я отображаю в DBGrid.
Меня интересует как можно меня данные в DBGrid?
Ни в самом гриде ни в dbedit и прочих связанных с query компонентами редактирование не получается. Почитала - видимо потому, что вьюшка собирается из нескольких таблиц.
Но как мне все таки отредактировать данные-то?
Самое замечательное, если у кого-то есть просто кусок кода с примером - надеюсь разобраться по нему сама.
Нашла тут на форуме похожий вопрос, вроде как решается с помощью UpdateSQL, но примера не нашла.
Если можно решить другим способом - подскажите, плз!
Спасибо.
(2009-09-17 14:24:00) [1]Удалено модератором
Anatoly Podgoretsky (2009-08-07 07:27:00) [2]> Игорь Шевченко (07.08.2009 00:17:21) [21]
У него свой наследник TDataset (обосновано), вот это и потребовало других наследников.
Игорь Шевченко (2009-08-07 00:17:00) [3]Anatoly Podgoretsky © (06.08.09 23:42) [15]
Тогда извиняюсь
Maridena (2009-08-07 00:16:00) [4]Ты прав, турбо. Вопрос в том, что делать-то ? :)
Сами ВЬЮХИ никто и не собирался редактировать - я об этом в самом начале написала.
Надо редактировать данные в таблицах.
Вопрос был как сделать так, чтобы юзеру было просто и удобно и в тоже время мне не пришлось бы городить огород.
Я уже решила - буду делать через доп.формы, как было предложено.
Сорри, если неточно донесла с самого начала.
Тему можно закрывать - всем спасибо !
turbouser (2009-08-07 00:12:00) [5]
> Maridena ©
Вьюхи (Views) могут (имхо, обязаны!!) быть не редактируемы.
Надо делать все по человечески...
Maridena (2009-08-07 00:12:00) [6]Инмемори тэйбл - да, я уже как раз смотрю, спасибо, что надоумили меня выше в примеры посмотреть :)
Anatoly Podgoretsky (2009-08-07 00:02:00) [7]У AbsDB своя справка и свои Демос, очень приличные.
Попытаться можно сделать или через TClicentDataset, или через InMemoryTable - небольшие примеры есть в Демос. Но это за счет довольно серьезных усложнений и стоит подумать стоит ли. А так AbsDB очень мощная СУБД и позволяет делать невероятные вещи, например ДБ только из одного ехе файла, без файла БД или ReadOnly DB на CD
Maridena (2009-08-06 23:43:00) [8]Да, к сожалению с абсолютом кэшед апдейтс не проходит, но спасибо все равно :)
Anatoly Podgoretsky (2009-08-06 23:42:00) [9]> Игорь Шевченко (06.08.2009 23:38:12) [12]
Игорь это AbsoluteDB, а у него свои TAbsTable/TAbsQuery
Maridena (2009-08-06 23:40:00) [10]Да уж... я думала есть какой-то способ.
Просто пользователю было бы удобнее сразу смотреть и в гриде и в dbedit'ах данные и тут же их редактировать.
Хорошо, как решение, наверное, можно использовать доп.форму для редактирования текущей записи по клику на ней пользователем.
Жалко, что нельзя редактировать он зе флай.
(но я еще подумаю :))
Спасибо всем.
Игорь Шевченко (2009-08-06 23:39:00) [11]Anatoly Podgoretsky © (06.08.09 23:37) [11]
Да без разницы
Игорь Шевченко (2009-08-06 23:38:00) [12]Maridena © (06.08.09 23:18) [9]
У Query надо указать CachedUpdates = true и UpdateObject = UpdateSQL, где написать тексты запросов на вставку/обновление/удаление
Anatoly Podgoretsky (2009-08-06 23:37:00) [13]У тебя не редактируемый набор данных, на мой взгляд лучшее решение - это редактирование в форме, данные получать из таблиц напрямую и запись обратно по таблицам, в транзакции. Грид же использовать только для навигации.
Maridena (2009-08-06 23:19:00) [14]Может правда надо сохранять во временной таблице и ее редактировать в гриде и через dbedit'ы? Но мне кажется, что это как-то глупо...
Maridena (2009-08-06 23:18:00) [15]Присоединила в тому же датасоурс, что и квери навигатор.
навигатор позволяет только перемещаться по записям. Кнопки редактирования, вставки, как и ожидалось отключены, т.к. квери составлен из неск.таблиц.
Не совсем поняла совет.
Игорь Шевченко (2009-08-06 23:09:00) [16]
> Есть грид, в котором данные из query (выборка из нескольких
> таблиц).
> К этому же query привязаны несколько компонентов типа dbedit,
> значения которых естественно меняются при движении пользователя
> по записям в гриде.
> Как мне сделать, чтобы человек смог ВВЕСТИ данные в эти
> же dbedit'ы и видеть то, что он вводит?
Выполнить Query.Edit (для пробы присоединить к DataSource dbNavigator - там кнопки есть Add/Edit/Delete)
Maridena (2009-08-06 22:57:00) [17]Да, по поводу базы данных - absolute database. (не знаю, можно ли тут ссылки кидать на сайт производителя, потому не добавляю)
Maridena (2009-08-06 22:54:00) [18]Игорь, я наверное, невнятно выражаюсь, извините - сейчас у меня основная проблема в том, что человек НЕ МОЖЕТ РЕДАКТИРОВАТЬ компоненты, связанные с Query.
Есть грид, в котором данные из query (выборка из нескольких таблиц).
К этому же query привязаны несколько компонентов типа dbedit, значения которых естественно меняются при движении пользователя по записям в гриде.
Как мне сделать, чтобы человек смог ВВЕСТИ данные в эти же dbedit'ы и видеть то, что он вводит?
Игорь Шевченко (2009-08-06 22:49:00) [19]
> Как человеку ввести то, что он хочет-то и видеть это?
Refresh сделать после Post, он увидит
Пример сделать не могу - база не озвучена
Maridena (2009-08-06 22:42:00) [20]Спасибо, Анатолий - хорошая идея.
Жаль только, что единственное, что нашлось - \RAD Studio\6.0\Demos\database\projects\samples\ и там про блэкфиш и про датаснап. Больше ничего нет.
Просто видимо дельфи без примеров установили :(
Может кто-нибудь просто пример сюда копи-пастнет?
Можно, конечно, сделанную выборку сохранять в таблицу, а ее вытаскивать в DBGrid и уже тогда редактировать, но это, по-моему, не лучшая идея. :)