dbexpint vs dbexpida for Transactions

Discussion of open issues, suggestions and bugs regarding usage of dbExpress drivers for InterBase & Firebird in Delphi and C++Builder
Post Reply
johncnoland
Posts: 4
Joined: Wed 09 Jun 2010 22:27
Location: Irvine, CA

dbexpint vs dbexpida for Transactions

Post by johncnoland » Wed 09 Jun 2010 22:43

We have a program that updates a list of records by first deleting the list and then readding a new version of the list. When trying to add a new record to the list using the dbexpida driver, when the transaction completes, all of the records are deleted except the record being added.

This was working before and the code hasn't changed since 2002. When we turn off transaction processing, the update is handled correctly.

For example:

Read current list with secondary key = X from table into combo box
user adds records to combobox

Start Transaction
delete all records with secondary key = X
add each record in combo box to list
commit transaction

The records that were originally in the list are deleted. Only the records the user added are in the list.

In another forum I noticed comments about AutoCommit. Is it possible that the old driver had AutoCommit on and it is off using dbexpida?

Or is there some other issue?

Dimon
Devart Team
Posts: 2910
Joined: Mon 05 Mar 2007 16:32

Post by Dimon » Thu 10 Jun 2010 09:07

DbxIda doesn't use the AutoCommit setting. dbExpress driver applies changes to database on calling the TClientDataSet.ApplyUpdates method.
Please, compose a small sample to demonstrate the problem and send it to dmitryg*devart*com.

Post Reply