jennyИменно в DbGrid ничего вписывать нельзя, т.к. он только отображает содержимое ZQuery.
Вам нужно в компоненте ZQuery добавить специальный запрос изменения данных. К примеру, у Вас в ZQuery содержится запрос на выборку данных:
- Код: Выделить всё
ZQuery.SQL.Text:='SELECT fld1, fld2, fld3 FROM table1'
Обращаю Ваше внимание, что одно из полей в этой выборке должно быть ключевым, т.е. однозначно идентифицировать выбранную запись, т.к. именно по этому ключевому полю будудт в дальнейшем изменяться данные конкретной записи. Само ключевое поле в DbGrid'е отображать необязательно. Для простоты условимся, что ключевое поле - fld1.
Теперь нужно заполнить свойство отвечающее за изменение данных в ZQuery. Для этого на форму нужно положить компонент ZUpdateSQL и внести его название в ZQuery.UpdateObject.
В ZUpdateSQL нужно заполнить свойство для изменения данных:
- Код: Выделить всё
ZQpdateSQL.ModifySQL:='UPDATE table1 SET fld2=:fld2, fld3=:fld3 WHERE fld1=:fld1'
В данном случае :fld1, :fld2, :fld3 это автоматически создаваемые параметры запроса, содержащие изменённые данные, которые Вы будете менять через DbGrid. Не обязательно менять их все и уж что точно не нужно изменять, так это данные в ключевом поле fld1, т.к. именно по нему будет происходить поиск записи в таблице БД.
Внесённые изменения нужно "закрепить" в базе данных с помощью методов:
ZQuery.ApplyUpdates;
ZQuery.CommitUpdates;
Эти методы применяются после того, как все изменения в таблице Вы уже сделали.
Для ввода новой записи в таблицу Вам понадобится свойство ZQpdateSQL.InsertSQL, а для удаления ZQpdateSQL.DeleteSQL с соответствующими командами в них.