RefreshRecord loads **ALL** records again

Discussion of open issues, suggestions and bugs regarding IBDAC (InterBase Data Access Components) for Delphi, C++Builder, Lazarus (and FPC)
Post Reply
eliesermorais
Posts: 5
Joined: Tue 18 Dec 2007 19:09

RefreshRecord loads **ALL** records again

Post by eliesermorais » Tue 18 Dec 2007 19:23

Hello!

I'm trying IBDAC in a multi-tier application with D2007. I'm using IBCQuery, DataSetProvider on Server. On the Client side, a SocketConnection and a ClientDataSet component.

The problem begin with slow updates. I use DBMonitor to check what happen and...
1. When I issue a ApplyUpdates on my ClientDataset, the IBCQuery on Server loads all records again before UPDATE.
2. After the ApplyUpdates I issue a RefreshRecord to refresh data modified by triggers on the update process. Again, IBCQuery loads all data.

I configured the IBCQuery with SELECT, INSERT, UPDATE, DELETE, LOCK and REFRESH queryes, but when a RefreshRecord is issued, it runs SELECT script, but not the REFRESH script.

There is a configuration to workaround this?

Thanks in advance,
Elieser

Plash
Devart Team
Posts: 2844
Joined: Wed 10 May 2006 07:09

Post by Plash » Wed 19 Dec 2007 09:48

This problem can occur if you don't open TIBCQuery component on the server. In this case TIBCQuery component is opened and closed every time when you perform some operation with TClientDataSet.

Try to open the TIBCQuery component before openning TClientDataSet.

eliesermorais
Posts: 5
Joined: Tue 18 Dec 2007 19:09

Post by eliesermorais » Wed 19 Dec 2007 22:18

I'm trying dbExpress driver too, and this problem don't happen with dbExpress in 3 tier application. Since I will not have control to open IBCQuery before ClientDataSet, is dbExpress driver the best option in this case?
If I decide to buy it there is an educational price for students? (is for my conclusion project on this summer, and my money downs)

Plash
Devart Team
Posts: 2844
Joined: Wed 10 May 2006 07:09

Post by Plash » Thu 20 Dec 2007 09:33

We could not reproduce the problem that all records are selected on ApplyUpdates call.

We have also made test with dbExpress. It works same as IBDAC. All records are selected on RefreshRecord call, and they does not selected on ApplyUpdates call.

Probably, there is no way to avoid selecting all records.

Devart
Site Admin
Posts: 3974
Joined: Tue 26 Oct 2004 13:51

Post by Devart » Thu 20 Dec 2007 17:29

eliesermorais wrote:If I decide to buy it there is an educational price for students? (is for my conclusion project on this summer, and my money downs)
We offer special prices for education organizations and students.
Ordering details by email.

Core Lab Sales team
www.crlab.com

Post Reply