| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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,...] но поля все равно не редактируются |
| Автор: 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 |
| Спасибо! при помощи 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 | ||
Зачем? |
| Автор: Septima 4.10.2005, 13:30 | ||
Данные не будут сохраняться, если выход из Грида будет с редактируемой строки, т.е. для их сохранения нужно перескочить на соседнюю строчку. |