Добрый день. Работаю через ADO с SQL Server 2005, запускаю 2 одинаковых exe в одном отменяю (или разрешаю) возможность корректировать данные, а во втором это не отражается, не могу понять, почему. Может, есть какие-то тонкости многопользовательской работы в delphi? ADODataSet1 формирует запрос, который показывается в DBGrid; ADODataSet2 выполняется, чтобы узнать значение поля, которое показывает, разрешена ли корректировка. ADOCommand1 и ADOCommand2 изменяют соответствующим образом значение этого поля. Вот код:
Код | procedure TForm1.FormCreate(Sender: TObject); begin ADODataSet1.Open(); ADODataSet2.Open(); ADODataSet2.First(); if ADODataSet2.Fields[0].Value=1 then begin DBGrid1.ReadOnly := FALSE; Button3.Caption:='Запретить корректировку'; end; if ADODataSet2.Fields[0].Value=0 then begin DBGrid1.ReadOnly := TRUE; Button3.Caption:='Разрешить корректировку'; end; // Кнопка запрета или разрешения корректировки procedure TForm1.Button3Click(Sender: TObject); begin if Button3.Caption='Запретить корректировку' then begin DBGrid1.ReadOnly := TRUE; Button3.Caption:='Разрешить корректировку'; ADOCommand1.Execute(); end else begin DBGrid1.ReadOnly := FALSE; Button3.Caption:='Запретить корректировку'; ADOCommand2.Execute(); end; end; // Обновление таблицы и времени каждые 10 секунд procedure TForm1.Timer1Timer(Sender: TObject); begin ADODataSet1.Close(); ADODataSet1.Open(); ADODataSet2.Close(); ADODataSet2.Open(); ADODataSet2.First(); if ADODataSet2.Fields[0].Value=1 then begin DBGrid1.ReadOnly := FALSE; Button3.Caption:='Запретить корректировку'; end; if ADODataSet2.Fields[0].Value=0 then begin DBGrid1.ReadOnly := TRUE; Button3.Caption:='Разрешить корректировку'; end; end;
|
|