Имеется следующая процедурка:
- Код: Выделить всё
procedure TfrmReferences.TabSheet1Show(Sender: TObject);
var
zq: TZQuery;
zu: TZUpdateSQL;
ds: TDataSource;
begin
zq := TZQuery.Create(Self);
zq.Connection := frmMain.ZConnection1;
zq.SQL.Clear;
zq.SQL.Text := 'SELECT ID, sort as `Сорт.`, descr as `Значение` FROM root1 order by sort';
//zq.SQL.Text := 'SELECT * FROM root1 order by sort';
zu := TZUpdateSQL.Create(Self);
zu.DeleteSQL.Text := 'DELETE FROM root1 WHERE'+
' ((root1.id IS NULL AND :OLD_id IS NULL) OR (root1.id = :OLD_id)) AND'+
' ((root1.sort IS NULL AND :OLD_sort IS NULL) OR (root1.sort = :OLD_sort)) AND'+
' ((root1.descr IS NULL AND :OLD_descr IS NULL) OR (root1.descr = :OLD_descr))';
zu.InsertSQL.Text := 'INSERT INTO root1 (id, sort, descr) VALUES (:id, :sort, :descr)';
zu.ModifySQL.Text := 'UPDATE root1 SET'+
' id = :id,'+
' sort = :sort,'+
' descr = :descr'+
' WHERE'+
' ((root1.id IS NULL AND :OLD_id IS NULL) OR (root1.id = :OLD_id)) AND'+
' ((root1.sort IS NULL AND :OLD_sort IS NULL) OR (root1.sort = :OLD_sort)) AND'+
' ((root1.descr IS NULL AND :OLD_descr IS NULL) OR (root1.descr = :OLD_descr))';
zq.UpdateObject := zu;
zq.Active := True;
ds := TDataSource.Create(Self);
ds.DataSet := zq;
ds.Enabled := True;
root1Editor.DataSource := ds;
root1Editor.Columns.Items[0].Width := 30;
root1Editor.Columns.Items[1].Width := 40;
root1Editor.Columns.Items[2].Width := 240;
end;
Все работает, но грид не редактируется.
Если zq.SQL.Text сменить на закомментированный - все редактируется и апдейтится отлично.
Подскажите, пожалуйста, как сделать запрос с перечислением полей редактируемым?