Если надо редактировать выборку лучше использовать Table, а не Query. Использовать вместо SQL запроса фильтры. Скорость конечно будет поменьше.
Если редактировать результаты SQL запроса в DBGrid-е необходимо то лучше использовать DataSet. С ADO это срабатывает, а вот с BDE не знаю.
Статья как раз об этом.
http://www.delphikingdom.com/asp/vie...?catalogid=420
А вообще обычно делают выборку через Query, а редактируют уже через Table. Например в DBGrid при двойном щелчке на записи, которую необходимо редактировать открываем форму для редактирования (карточку), где DB контролы уже подключены к соответствующим таблицам.
Переход на нужную запись в таблице,
Код:
Table1.Locate('id',Query1.fieldbyname('id').asstring,[]);
где id - ключевое поле.