Mój projekt Delphi ma TAdoQuery uzyskujący dostęp do danych na serwerze MS Sql Server 2014 oraz TClientDataSet, który odbiera dane AdoQuery za pośrednictwem TDataSetProvider. Jest on tworzony z szablonu projektu, który skonfigurowałem.TClientDataSet.ApplyUpdates() nie stosuje aktualizacji
Zwykle znalazłem ten zestaw do pracy bezbłędnie, ale z tym konkretnym projektem mam problem: ApplyUpdates() nie działa w trybie cichym, a dane serwera SQL nie są aktualizowane. W moim okrojona projektu debugowania, tylko kod mam, oprócz obsługi button-click, które nazywa, jest:
procedure TForm1.ApplyUpdates;
var
Errors : Integer;
begin
Errors := ClientDataSet1.ApplyUpdates(0);
Caption := IntToStr(Errors) + '/' + IntToStr(ClientDataSet1.ChangeCount);
end;
Po to wykonuje, podpis formularz powinien być 0/0
oczywiście, ale co to właściwie mówi to 0/1
. Więc na pierwszy rzut oka nie wystąpił żaden błąd , ale CDS ChangeCount
nie został zresetowany do zera, tak jak powinien być. Moje q to, w jaki sposób ApplyUpdates nie może zwracać błędów, ale zestaw danych serwera nie jest aktualizowany.
Fwiw, dodałem wyświetlacz ChangeCount jako część moich starań, aby usunąć problem. Ale obawiam się, że nie byłem w stanie śledzić tego, co powinno się dziać w szczegółach "rozmowy" między DataSetProvider i jego DataSet, aby zastosować aktualizacje na serwerze.
Czy dodano kod dla procedury obsługi błędów OnReconcileError? – mjn