![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
при использовании ADO [D7, Access]
Timka © (2003-05-22 13:58:00)при использовании ADO
получилась цепочка
TADOConnection - TADODataSet - TDataSetProvider - TSocetConnection - TClientDataSet - TDataSource-TDBGrid
редактирование набора идёт с помощью TDBNavigator, изменения сохраняю в базе с помощью
ClientDataSet1.ApplyUpdates(0)
текст SQL - запроса :
select *,Calls.* from Abonents
inner join Calls on Abonents.AbonentID = Calls.AbonentID
либо
select * from Calls order by AbonentID
при попытке ClientDataSet1.ApplyUpdates(0) выдаётся ошибка. Прошу подсказать, в чём может быть дело.
если убрать - TDataSetProvider - TSocetConnection - TClientDataSet - всё нормально.
иначе - ошибка, даже если клиент и сервер не разнесены по разным приложениям, т.е
идёт связка - TDataSetProvider - TClientDataSet -.
Timka (2003-05-22 17:52:00) [1]да, изменяю в TDBGrid / то, что в кеше запись была изменена, отслеживается
Собствено процедура выглядит так :
procedure TDataModule1.Action1Execute(Sender: TObject);
begin
if ClientDataSet1.ApplyUpdates(0)>0 then
raise Exception.Create("Ups Action1");
ClientDataSet1.UpdateCursorPos;
ClientDataSet1.Resync([]);
end;
прошу прощения за неточность:
если я убираю if ... raise - просто нет реакции на событие. после Cancel всё откатывается.
это вариант с сервер - клиент. набор я вижу и могу сортировать, так что всё запущено и
зарегистрировано.
база ACCESS2000. ClientDataSet1.ApplyUpdates(-1) тоже не помогает.
sniknik (2003-05-22 14:13:00) [2]для начала поставь ClientDataSet1.ApplyUpdates(-1), а то максимальное количество ошибок до остановки = 0. как то не правильно, остановка должна идти ну хотябы после одной.
потом SocketConnection не работает без запущеного ScktSrvr.exe даже если обе части программы на одной машине.
ну и регистрировать нужно написанный сервер, и естественно прописать в свойства SocketConnection.ServerName/GUID.
Соловьев (2003-05-22 14:10:00) [3]
> при попытке ClientDataSet1.ApplyUpdates(0) выдаётся ошибка
какая?
> редактирование набора идёт с помощью TDBNavigator,
а в чем? DBGrid?