Уважаемые коллеги!
Один, может быть дилетантский вопрос. До последнего времени для досупа к БД я использовал BDE. С недавнего времени перешел на FIBPlus. При работе через BDE для фиксации изменений в БД я использовал ApplyUpdates. Насколько я понял в библиотеках прямого доступа для этого используется Commit. Но есть и метод ApplyUpdates. Необходимо ли его использовать до Commit? Если необходимо, то во всех ли случаях или только, когда изменения кэшируются?
Использование ApplyUpdates
неправильно понял. commit это commit, и в bde он неявно вызывается в applyupdates, если изменения прошли на сервере без ошибок.
то есть, в компонентах прямого доступа есть явное управление транзакциями, и есть CachedUpdates. Если транзакции использовать НАДО, то CU использовать необязательно, то есть по вкусу.
то есть, в компонентах прямого доступа есть явное управление транзакциями, и есть CachedUpdates. Если транзакции использовать НАДО, то CU использовать необязательно, то есть по вкусу.
Вопрос об опциональности свойства CachedUpdates понятен. Для меня непонятка в другом, если я использую CachedUpdates в компоненте TpFIBDataSEt, то необходимо ли при этом до Commit выплнить ApplyUpdates или нет.kdv писал(а):неправильно понял. commit это commit, и в bde он неявно вызывается в applyupdates, если изменения прошли на сервере без ошибок.
то есть, в компонентах прямого доступа есть явное управление транзакциями, и есть CachedUpdates. Если транзакции использовать НАДО, то CU использовать необязательно, то есть по вкусу.
непонятен вопрос
если ты используешь cachedUpdates, то по идее никто за тебя ApplyUpdates вызывать не будет. Кроме того, есть исходники, и в вызов commit глянуть элементарно. хотя я не уверен, что ibx/fibplus будет за тебя сам изменения на сервер кидать. Ведь от результата applyupdates вызывается либо commit, либо rollback. а когда ты commit зовешь, то уже все должно быть прокомпостировано.
В общем, насколько я помню, в BDE CU приходилось использовать потому, что связка TQuery+TUpdateSQL иначе не работала. В IBX/FIBPlus для IBDataSet или IBQuery+IBUpdateSQl CachedUpdates необязательно.

если ты используешь cachedUpdates, то по идее никто за тебя ApplyUpdates вызывать не будет. Кроме того, есть исходники, и в вызов commit глянуть элементарно. хотя я не уверен, что ibx/fibplus будет за тебя сам изменения на сервер кидать. Ведь от результата applyupdates вызывается либо commit, либо rollback. а когда ты commit зовешь, то уже все должно быть прокомпостировано.
В общем, насколько я помню, в BDE CU приходилось использовать потому, что связка TQuery+TUpdateSQL иначе не работала. В IBX/FIBPlus для IBDataSet или IBQuery+IBUpdateSQl CachedUpdates необязательно.