This discussion is archived
2 Replies Latest reply: Dec 3, 2012 11:26 AM by gdarling - oracle RSS

10g R2 OLEDB provider

imagic1 Newbie
Currently Being Moderated
Hi,

we have a client side application, on Windows and Oracle 10g R2.
We use OLEDB templates from MFC (CDynamicParameterAccessor).
There is a long query (4610 char) what provider return E_UNEXPECTED HRESULT (from execute, before the bind).
No detailed info from provider (GetErrorRecords() return E_FAIL).
If I copy this query into SQL* Plus, it run without error.
There is an almost the same query run successfull, the difference is only in two added order by and alias column.

recordset properties was:
stPropSet.AddProperty(DBPROP_BOOKMARKS, true);
stPropSet.AddProperty(DBPROP_CANSCROLLBACKWARDS, true);
stPropSet.AddProperty(DBPROP_CANFETCHBACKWARDS, true);
stPropSet.AddProperty(DBPROP_QUICKRESTART, true);
stPropSet.AddProperty(DBPROP_ISequentialStream, true);
     stPropSet.AddProperty(DBPROP_IRowsetScroll, true); // IsEmpty uses this interface
stPropSet.AddProperty(DBPROP_COMMITPRESERVE, true);
stPropSet.AddProperty(DBPROP_ABORTPRESERVE, true);

connection string is:
"Provider=OraOLEDB.Oracle;User ID=user;Password=pw;Data Source=foto1;ChunkSize=4000"


What can I do for found the problem?

Regards,
Imre
  • 1. Re: 10g R2 OLEDB provider
    imagic1 Newbie
    Currently Being Moderated
    Now, I am found the reason...
    ROW-00001: Can not allocate memory. (11g client can give some information before crash...)

    One of our recordset swallow up almost all the memory and the next recordset open failed.
    It is a narrow recordset (narrowed because of Oracle), only 3 navigator column in it, but the row count is hight.
    We can not narrow it any more.
    Can we set the client, to can receive this recordset without crash?
    Even if it need 11g client?

    Regards,
    Imre
  • 2. Re: 10g R2 OLEDB provider
    gdarling - oracle Expert
    Currently Being Moderated
    Without knowing whether you're out of memory due to some sort of leak or not it's hard to make a good suggestion. I'd certainly recommend trying the latest 11203 oledb provider/client to rule out any sort of known issue provider leak/malfunction.

    Short of that, if you're really just trying to stuff too much into memory, you might look into the lowering the fetchsize or changing the CacheType setting..
    http://docs.oracle.com/cd/A84870_01/doc/nt.816/a75235/using.htm#1004599

    Hope it helps,
    Greg

Legend

  • Correct Answers - 10 points
  • Helpful Answers - 5 points