dbTalk Databases Forums  

Problem with x64 Oracle OLE DB Provider, MS ADO,server side forwardcursor

comp.databases.oracle.tools comp.databases.oracle.tools


Discuss Problem with x64 Oracle OLE DB Provider, MS ADO,server side forwardcursor in the comp.databases.oracle.tools forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
pbarnes1970@gmail.com
 
Posts: n/a

Default Problem with x64 Oracle OLE DB Provider, MS ADO,server side forwardcursor - 03-04-2009 , 03:31 PM






With 64 bit Oracle 10 or 11 client, using MS ADO with a server side
forward only cursor to run a simple query against a single table, the
result Recordset does not contain all rows. In fact the number of
records I can see is equal to the Recordset.CacheSize. It works as
expected when runnning in 32 bit app.

The client is Vista x64 and I have installed both 32 bit and 64 bit
versions of Oracle Client, and get same results with latest Oracle 10
and 11 clients. I have tried against a 32 bit server running Oracle
9.2.0.1.0 and another 32 bit server running 10.2.0.1.0, both with
identical results.

I have tried this with ADO 2.5, 2.6, 2.7, and 6.0, again with same
results.

Here is a VBA script that demonstrates:
--------------------------------------
cs = "Provider=OraOLEDB.Oracle.1;Password=(edit);Persis t Security
Info=True;User ID=(edit);Data Source=(edit);Extended Properties="""""
qs = "SELECT * FROM MYTABLE"

Set rs = CreateObject("ADODB.Recordset")
rs.CacheSize = 10
rs.CursorLocation = 2 ' adUseServer
rs.CursorType = 0 ' adOpenForwardOnly
rs.Open qs, cs, 0, 1 ' 0=adOpenForwardOnly, 1=adLockReadOnly

cnt = 0
rs.MoveFirst ' same with or without this
While Not rs.EOF
cnt = cnt + 1
rs.MoveNext
Wend
MsgBox CStr(cnt)
----------------------------------------------------------
When I run this with 32 bit version of wscript.exe ( in %WINDIR%
\SysWow64) it displays the correct number of records (200 in one
table, 12000 in another I tried.) When I run with 64 bit version of
wscript.exe (in %WINDIR%\system32) it always displays 10 records and
reaches EOF. If I change the cache size to N, I get N records.

Has anyone else seen this? Does anyone have any ideas how to fix or
workaround this issue?

Reply With Quote
  #2  
Old   
PBarnes
 
Posts: n/a

Default Re: Problem with x64 Oracle OLE DB Provider, MS ADO,server sideforward cursor - 03-10-2009 , 09:09 AM






On Mar 4, 4:31*pm, pbarnes1... (AT) gmail (DOT) com wrote:
Quote:
With 64 bit Oracle 10 or 11 client, using MS ADO with a server side
forward only cursor to run a simple query against a single table, the
result Recordset does not contain all rows. In fact the number of
records I can see is equal to the Recordset.CacheSize. It works as
expected when runnning in 32 bit app.

The client is Vista x64 and I have installed both 32 bit and 64 bit
versions of Oracle Client, and get same results with latest Oracle 10
and 11 clients. I have tried against a 32 bit server running Oracle
9.2.0.1.0 and another 32 bit server running 10.2.0.1.0, both with
identical results.

I have tried this with ADO 2.5, 2.6, 2.7, and 6.0, again with same
results.

Here is a VBA script that demonstrates:
--------------------------------------
cs = "Provider=OraOLEDB.Oracle.1;Password=(edit);Persis t Security
Info=True;User ID=(edit);Data Source=(edit);Extended Properties="""""
qs = "SELECT * FROM MYTABLE"

Set rs = CreateObject("ADODB.Recordset")
rs.CacheSize = 10
rs.CursorLocation = 2 ' adUseServer
rs.CursorType = 0 ' adOpenForwardOnly
rs.Open qs, cs, 0, 1 ' 0=adOpenForwardOnly, 1=adLockReadOnly

cnt = 0
rs.MoveFirst ' same with or without this
While Not rs.EOF
cnt = cnt + 1
rs.MoveNext
Wend
MsgBox CStr(cnt)
----------------------------------------------------------
When I run this with 32 bit version of wscript.exe ( in %WINDIR%
\SysWow64) it displays the correct number of records (200 in one
table, 12000 in another I tried.) When I run with 64 bit version of
wscript.exe (in %WINDIR%\system32) it always displays 10 records and
reaches EOF. If I change the cache size to N, I get N records.

Has anyone else seen this? Does anyone have any ideas how to fix or
workaround this issue?
Oracle Support has confirmed that this is a known bug with their x64
OLE DB Provider (all versions.) Their bug number is 6623430. I'll try
to update this thread when I get more information on when a fix will
be available.


Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.3
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.