Использование ApplyUpdates

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
SAMZ
Сообщения: 128
Зарегистрирован: 21 мар 2005, 08:17

Использование ApplyUpdates

Сообщение SAMZ » 29 мар 2005, 15:00

Уважаемые коллеги!
Один, может быть дилетантский вопрос. До последнего времени для досупа к БД я использовал BDE. С недавнего времени перешел на FIBPlus. При работе через BDE для фиксации изменений в БД я использовал ApplyUpdates. Насколько я понял в библиотеках прямого доступа для этого используется Commit. Но есть и метод ApplyUpdates. Необходимо ли его использовать до Commit? Если необходимо, то во всех ли случаях или только, когда изменения кэшируются?

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 29 мар 2005, 15:39

неправильно понял. commit это commit, и в bde он неявно вызывается в applyupdates, если изменения прошли на сервере без ошибок.

то есть, в компонентах прямого доступа есть явное управление транзакциями, и есть CachedUpdates. Если транзакции использовать НАДО, то CU использовать необязательно, то есть по вкусу.

SAMZ
Сообщения: 128
Зарегистрирован: 21 мар 2005, 08:17

Сообщение SAMZ » 29 мар 2005, 15:59

kdv писал(а):неправильно понял. commit это commit, и в bde он неявно вызывается в applyupdates, если изменения прошли на сервере без ошибок.

то есть, в компонентах прямого доступа есть явное управление транзакциями, и есть CachedUpdates. Если транзакции использовать НАДО, то CU использовать необязательно, то есть по вкусу.
Вопрос об опциональности свойства CachedUpdates понятен. Для меня непонятка в другом, если я использую CachedUpdates в компоненте TpFIBDataSEt, то необходимо ли при этом до Commit выплнить ApplyUpdates или нет.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 29 мар 2005, 16:10

непонятен вопрос :)
если ты используешь cachedUpdates, то по идее никто за тебя ApplyUpdates вызывать не будет. Кроме того, есть исходники, и в вызов commit глянуть элементарно. хотя я не уверен, что ibx/fibplus будет за тебя сам изменения на сервер кидать. Ведь от результата applyupdates вызывается либо commit, либо rollback. а когда ты commit зовешь, то уже все должно быть прокомпостировано.

В общем, насколько я помню, в BDE CU приходилось использовать потому, что связка TQuery+TUpdateSQL иначе не работала. В IBX/FIBPlus для IBDataSet или IBQuery+IBUpdateSQl CachedUpdates необязательно.

Ответить