Exporting large amount of data

Discussion of open issues, suggestions and bugs regarding ODAC (Oracle Data Access Components) for Delphi, C++Builder, Lazarus (and FPC)
Post Reply
Guest

Exporting large amount of data

Post by Guest » Wed 15 Dec 2004 15:55

Hi.

I am trying to export table of 1.5m records into csv file using ODAC.

My application consumes incredeble amount of memory and it is increasing with every row fetched

Any Suggestions?

Mike

brekhof
Posts: 22
Joined: Tue 16 Nov 2004 21:59

Post by brekhof » Wed 15 Dec 2004 20:03

http://crlab.com/forums/viewtopic.php?t=125

I guess you could use the same solution I use (disconnect and reconnect every x000 records)

hth
Martin

Bagieta
Posts: 21
Joined: Tue 09 Nov 2004 08:02
Location: Poland

Post by Bagieta » Thu 16 Dec 2004 08:20

But if you disconnect and reconnect you are loosing your cursor and must open your table once again. Also the data can be changed. Or I'm wrong?

Paul
Posts: 725
Joined: Thu 28 Oct 2004 14:06

Post by Paul » Thu 16 Dec 2004 09:19

Please use TOraQuery.UniDirectional=True. ODAC will use one memory buffer for all receiving records.

brekhof
Posts: 22
Joined: Tue 16 Nov 2004 21:59

Post by brekhof » Thu 16 Dec 2004 11:25

Bagieta wrote:But if you disconnect and reconnect you are loosing your cursor and must open your table once again. Also the data can be changed. Or I'm wrong?
You are probably right, but the alternative is huge memory consumption (or the uni-directional solution, never tried it)

Bagieta
Posts: 21
Joined: Tue 09 Nov 2004 08:02
Location: Poland

Post by Bagieta » Thu 16 Dec 2004 14:22

Can the unidirectional be set in a runtime. The question is if I can use before opening a query, or after it or during creation a new query object?

Paul
Posts: 725
Joined: Thu 28 Oct 2004 14:06

Post by Paul » Fri 17 Dec 2004 07:39

No. You can set UniDirectional if TOraQuery is closed.

Post Reply