Клиентское приложение написано на Delphi с использованием библиотек DevExpress vcl, подключаюсь к MS SQl серверу.
Подключаюсь к Бд в связке DataSourse ADoQuery.
Столкнулся с таково рода проблемой:
Изменяю значение поля :
procedure TForm24.cxButton2Click(Sender: TObject);
begin
DM.tviezdi.edit;
Dm.Tviezdi.FieldByName('Выезд').AsString := 'Да';
DM.Tviezdi.post;
showmessage ('Аварком '+cxDBLookupComboBox3.Text+' назначен')
end;
Оно вроде изменяется и отображается в cxGrid (Изменен аварком на Яковлева)
Запускаю фильтр :
procedure TForm13.cxButton5Click(Sender: TObject);
begin
dm.Tviezdi.Active := false;
dm.Tviezdi.SQL.clear;
Dm.Tviezdi.SQL.Add('set language Russian set dateformat dmy ');
// Dm.Tviezdi.SQL.Add('select *');
Dm.Tviezdi.SQL.Add('select ');
Dm.Tviezdi.SQL.Add('[dbo].[Дата последнего изменения состояния дела]([dbo].[БД].[№ Заявки]) [Дата последнего изменения состояния дела],');
Dm.Tviezdi.SQL.Add('[dbo].[Просрочка состояния дела]([dbo].[БД].[№ Заявки])[Просрочено],');
Dm.Tviezdi.SQL.Add('[dbo].[БД].[№ Заявки] idLoss,');
Dm.Tviezdi.SQL.Add('*');
Dm.Tviezdi.SQL.Add('FROM [dbo].[БД]');
Dm.Tviezdi.SQL.Add('LEFT JOIN [dbo].[Фото инфо]');
Dm.Tviezdi.SQL.Add('ON [dbo].[Фото инфо].[№ заявки] = [dbo].[БД].[№ Заявки]');
DM.Tviezdi.SQL.Add('WHERE 1=1');
DM.Tviezdi.SQL.Add('-- find');
Dm.Tviezdi.SQL.Add('AND([Дата осмотра] >= '+#39+cxDateEdit1.Text+#39')');
Dm.Tviezdi.SQL.Add('and ([Дата осмотра] <= '+#39+cxDateEdit2.Text+#39')');
Dm.Tviezdi.SQL.Add('Order By [№ Заявки] Desc');
Dm.Tviezdi.ExecSQL;
dm.Tviezdi.Active := true;
end;
И вижу старые данные (аварком стал Уваров как и был), то есть поле записалось в грид, а в бд нет.Не могу понять в чем проблема.Однако если фильтр не запускать, то данные почему-то сохраняются, а после применения фильтра поменять уже ничего не получается.