Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Редактирование данных в DBGrid в случае заполнения DBGrid изQuerу [XP]


Страницы:   1 2

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 и уже тогда редактировать, но это, по-моему, не лучшая идея. :)


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо