Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > не редактируется dbgrid при sql запросе


Автор: Lilu 30.9.2005, 15:18
Подскажите, пожалуйста,
вывожу в DBGrid таблицу - значения редактируюся,
а если вывожу через query - нет, хотя в query та же таблица с условием и с сортировкой.
как сделать, чтоб можно было редактировать DBGrid, например, из такого query:

select Quantity, Price
from Table1
where Name='1'
order by Quantity

установила
RequestLive=True
ReadOnly=false и Options=[dgEditing,...]
но поля все равно не редактируются smile

Автор: bas 30.9.2005, 15:32
Используем TUpdateSQL.

Автор: _hunter 30.9.2005, 15:34
дело, скорее всего, в том, что BDE не знает каким образом изменять значения в этом запросе.
нужно использовать другой компонент ( или метод )...

Автор: DEER 30.9.2005, 16:12
Можно отлавливать события на dbGrid'е и при помощи стандартных методов edit и.п. заносить данные в БД

Автор: Lilu 30.9.2005, 16:43
Спасибо! smile

при помощи TUpdateSQL получается редактировать DBGrid

Только при выходе изменения не сохраняются в таблице?
А что еще надо сделать для их сохранения?

Автор: _hunter 30.9.2005, 17:24
транзакцию подтвердить

Автор: Bes 3.10.2005, 10:37
Если хочешь нормально редактировать значения в Гриде - используй компонент TTable а Квери я так понял не совсем для этого.

Автор: bas 3.10.2005, 12:07
Для того, чтобы всё это нормально работало, нужно, чтобы в TQuery были
включены RequestLive и CashedUpdates. Соответственно, для
подтверждения изменений нужно вызывать TQuery.ApplyUpdates и
TQuery.CommitUpdates, либо TDatabase.ApplyUpdates, а для отмены -
CancelUpdates.



Добавлено @ 12:14
http://www.gyry.net/?d=webdesign&did=390

Автор: falcon785 3.10.2005, 14:35
Насколько я помню, поля надо не по имени перечислять, а * ставить.

Автор: bas 3.10.2005, 15:08
Цитата(falcon785 @ 3.10.2005, 14:35)
Насколько я помню, поля надо не по имени перечислять, а * ставить.

Зачем?

Автор: Septima 4.10.2005, 13:30
Цитата(Lilu @ 30.9.2005, 16:43)
Спасибо! smile

при помощи TUpdateSQL получается редактировать DBGrid

Только при выходе изменения не сохраняются в таблице?
А что еще надо сделать для их сохранения?


Данные не будут сохраняться, если выход из Грида будет с редактируемой строки, т.е. для их сохранения нужно перескочить на соседнюю строчку.


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)