Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.misc -> Re: LONG RAW type and ODBC within Visual C++ 6

Re: LONG RAW type and ODBC within Visual C++ 6

From: FaheemRao <faheemrao_at_yahoo.com>
Date: 18 Dec 2003 08:41:09 -0800
Message-ID: <43b58913.0312180841.421936b7@posting.google.com>


Philippe,

 You are not overriding the OPEN member function of CRecordSet?

Did you try Open directly from CRecordset?

here is the description of the error which you are getting

///////////////
ORA-03127 no new operations allowed until the active operation ends

Cause: An attempt was made to execute a new operation before the active non-blocking operation completed or a new operation was attempted before all the pieces of a column were inserted or fetched.

Action: Execute the new operation after the non-blocking operation completes. If piecewise binds/defines were done, execute the new operation after all the pieces have been inserted or fetched.

////////////////////


I looks like you trying to open a CRecordset within an other recordset which generating this error.

If this is the case then Close the first Crecordset them open new one.

Please explain in more detail.

Faheem

Looks of to me ---

"Philippe CASTELLA" <philippe.castella_at_free.fr> wrote in message news:<brmqjs$6m6$1_at_s1.read.news.oleane.net>...
> Hi,
>
> I am new in this forum and maybe someone has allready answered this
> question... but if someone can help me...
>
>
> I need to store binary files (variable sizes) in an Oracle Database (from
> 7.3 to 9i). So I use a long raw data type (Blob does not exist in 7.3).
>
> My problem is easy :
>
> How can I do this using ODBC within Visual C++ ?
>
>
> I tried editing a Derived Class from MFC CRecordset but when I do that, I
> receive this message :
>
> ORA-03127: no new operations allowed until the active
> operation ends
>
> whereas no operation was made before.
>
> The code Was :
>
> CGXDynamicRecordset TmpReq(m_ReqUpd);
> TmpReq.SetSqlQuery("select ID, FILE from TMP_FILE where ID = 1");
> TmpReq.Open(); --> the problem happens here
> TmpReq.MoveFirst();
> TmpReq.Edit();
> TmpReq.SetFieldData(1, << the data >>, &csErr);
> TmpReq.SetFieldDirty(NULL);
> TmpReq.Update();
>
> ID is the unique key of TMP_FILE and FILE is a long raw data type.
>
> m_reqUpd is a pointer to my CDatabase Object
> CGXDynamixRecordset is a CRecordset derived class wich allow executing
> requests in an easyest way than with CRecordset
>
> It works well if I use a long data type instead of long raw. So how can I do
> with long raw ?
>
>
> Thanks for all help
>
> Regards,
>
> Philippe CASTELLA
Received on Thu Dec 18 2003 - 10:41:09 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US