Страница 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 необязательно.