Форум: "Базы";
Текущий архив: 2004.04.18;
Скачать: [xml.tar.bz2];
ВнизADO в сети Найти похожие ветки
← →
Max1 (2004-03-18 10:10) [0]Уважаемые мастера, помогите разобраться, почему, когда я работаю с базой расположенной на моей машине- все нормально; когда же я пытаюсь подключаться к этой базе по сети и изменяю параметры в ADOConnection1 на:
CursorLocation=clUseServer
CursorType=ctDynamic
и во всех компонентах ADOTable , ADOQuery на эти же параметры
CursorLocation=clUseServer
CursorType=ctDynamic
то при пошаговой отладке на строке
ADOTable1.Properties["Update Resync"].Value:=adResyncAll;
получаю ошибку:
ADO не удается найти объект в семействе по указанной приложением ссылке на его имя или порядковый номер.
← →
Max1 (2004-03-18 10:22) [1]Мастера, откликнитесь, просидел вчера весь день, может что не правильно делаю?
← →
stas © (2004-03-18 10:28) [2]А ты в USES добавил ADOINT ?
Помоему при серверном курсоре
ADOTable1.Properties["Update Resync"].Value:=adResyncAll
писать не нужно.
← →
sniknik © (2004-03-18 10:34) [3]может поэтому (читайте хелп :)
Update Resync Property—Dynamic (ADO)
.......
Specifies whether the UpdateBatch method is followed by an
adResyncAll, adResyncUpdates, adResyncInserts, and adResyncConflicts
The constant adResyncConflicts stores the resync values as underlying values, but does not override pending changes.
Update Resync is a dynamic property appended to the Recordset object Properties collection when the CursorLocation property is set to adUseClient.
← →
Max1 (2004-03-18 13:03) [4]Сейчас переделал все с помощью ADODATAset, когда clUseServer и ctKeyset все нормально, но нужно чтобы изменения отображались сразу же поэтому когда уст-ю ctDynamic получаю ошибку
Dataset does not support Bookmarks, which are required for multi-record data controls.
Что посоветуете сделать?
← →
stas © (2004-03-18 13:13) [5]Курсор - ctKeySet.
А данные обновлять либо Close/Open, либо REQUERY. Для одной записи может Refresh поможет.
← →
sniknik © (2004-03-18 13:36) [6]для access хорошо работает
ADODATAset clUseServer и ctKeyset/ctStatic и CommandType = cmdTableDirect.
попробуй
а с ctDynamic тоже можно только если не пользоватся всякими DBDrig-ами (чисто с данными работать).
> но нужно чтобы изменения отображались сразу
где? в той же программе, другой(2м экземпляре)? в другой сразу могу сказать не получится "сразу", данные еще через кеш ADO(вернее Jet) проходят, на него никак повлиять нельзя. (или не знаю как) т.е. задержка всегда будет, разговор можно вести только о ее уменьшении (за счет других "тормозов"). открой 2 экземпляра access-а на одной таблице поэксперементируй (хочеш лутше? не получится).
← →
KSergey © (2004-03-18 13:41) [7]Когда-то взял с форума:
Как обновить текущу запись, перечитав ее с сервера?
Вариант 1
with ADODataSet do
if Recordset.Supports(adResync) then
begin
Recordset.Resync(adAffectCurrent, adResyncAllValues);
Resync([rmExact, rmCenter]);
end;
Вариант 2
>можно ли только одну строку обновить?
можно и нужно
ADODS.Properties["Unique Table"].Value := "table";
ADODS.Properties["Resync Command"].Value := "select * from table where ID = ?";
ADODS.Properties["Update Resync"].Value := adResyncAll;
ADODS.UpdateCursorPos;
ADODS.Recordset.Resync(adAffectCurrent,adResyncAllValues);
ADODS.Resync([rmExact]);
← →
stas © (2004-03-18 14:15) [8]KSergey © (18.03.04 13:41) [7]
А как же
sniknik © (18.03.04 10:34) [3] ???
← →
sniknik © (2004-03-18 14:19) [9]stas © (18.03.04 14:15) [8]
так это наверняка для локального курсора.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.04.18;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.031 c