Страница 1 из 1

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

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

Добавлено: 29 мар 2005, 15:39
kdv
неправильно понял. commit это commit, и в bde он неявно вызывается в applyupdates, если изменения прошли на сервере без ошибок.

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

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

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

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

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