3251 Current provider doesn't support returning multiple recordsets from a single execution 
Author Message
 3251 Current provider doesn't support returning multiple recordsets from a single execution

It's an activeX DLL which is always inprocess, where an activeX EXE is out
of process.  However, it resides on the server, not the client. So, it's a
COM DLL.


Quote:
> Hi,

> Is it out-of-process DLL or in-process? Could be somethign with
marshalling.

> --
> Val Mazur
> Microsoft MVP



> > Hi: Sorry I wasn't clear.  The class DLL does NOT disconnect the
> recordset.
> > So resources are open, and it shouldn't close.


> > > You get reference from class, not a separate object. If class sets
> > > ActiveConnection to Nothing then connection is closed for that
recordset
> > and
> > > recordset does not have any active connection to retrieve next part of
> > > information

> > > --
> > > Val Mazur
> > > Microsoft MVP



> > > > I understand.  Why do you think my DLL class is closing?  I'm only
> > calling
> > > a
> > > > function and then it closes down on its own.



> > > > > Yes, in case if you drop connection, then you cannot use
> > NextRecordset.
> > > It
> > > > > will work ONLY in case if connection is alive. You would need to
> find
> > > some
> > > > > sort of solution to keep connection opened and not set
> > ActiveConnection
> > > of
> > > > > recordset before you process all recordsets. OLEDB works that way
> that
> > > it
> > > > > returns only one recordset and wen you call NextRecordset, then it
> > > > executes
> > > > > next statement and opens another recordset. If connection is
closed,
> > > then
> > > > it
> > > > > cannot do that

> > > > > --
> > > > > Val Mazur
> > > > > Microsoft MVP



> > > > > > Thanks.  I tried it on the client and it works fine.  I think I
> > found
> > > > the
> > > > > > problem but don't know how to fix it.  Before I started
returning
> > > Multi
> > > > > > Recordsets, I was returning a disconnected recordset.  I now
> > remember
> > > I
> > > > > got
> > > > > > this same error if I set the active connection to nothing in the
> > DLL.
> > > I
> > > > > had
> > > > > > to let the client do all the getnextrecordsets and then set the
> > > > connection
> > > > > > to nothing.  When steping thru the code, I discovered that after
> the
> > > DLL
> > > > > > makes the call (successfully) and exits the function, the next
> thing
> > > > that
> > > > > > happens is that the class terminates.  My DLL opens the
connection
> > > upon
> > > > > > creation and it stays open until the class terminates.   With no
> > > active
> > > > > > connections you can't recieve a multiple recordset.  However,
for
> > the
> > > > life
> > > > > > of me I can't see why the class is terminating.
> > > > > > I have it checked to "Retained in Memory", "Apartment Threaded",
> > > "Remote
> > > > > > Server File", and "Project Compatibility".  The client calls the
> DLL
> > > and
> > > > > > before returning to the client, the termination happens.  And
the
> > > > function
> > > > > > leaves the connection open so its using resources.  Any help?



> > > > > > > Hi,

> > > > > > > SQLOLEDB provider supports multiple recordsets. It could be
> > > something
> > > > > > wrong
> > > > > > > with cursor location or marshalling recordsets between
> processes.
> > > Try
> > > > to
> > > > > > > execute same stored procedure from your code, not from
> > middle-tier.
> > > > see
> > > > > if
> > > > > > > it is fine, when it is local

> > > > > > > --
> > > > > > > Val Mazur
> > > > > > > Microsoft MVP



> > > > > > > > I'm using vb6, just upgraded to xp, and just upgraded xp,
> MSSQL
> > > 7.0.
> > > > > I
> > > > > > > > reinstalled ado 2.7 also to be sure.

> > > > > > > > A ntier dll is calling a stored procedure with
multi-selects,
> > and
> > > > > > > returning
> > > > > > > > them to the client.  The error happens in the client on a
"get
> > > > > > > > nextrecordset" execution.

> > > > > > > > My connection string is
> > > > > > > >  GetConnectionString = "Provider=SQLOLEDB.1;Persist Security
> > > > > > > Info=False;User
> > > > > > > > ID=sa;Initial Catalog=NadTable2;Data Source=NTSERVER"

> > > > > > > > Seems like I had the error long ago and solved it my using
> local
> > > > > cursor
> > > > > > > > (which is still being done).
> > > > > > > > Appreciate any help.

> > > > > > > > *************************************




Tue, 22 Mar 2005 02:02:31 GMT  
 3251 Current provider doesn't support returning multiple recordsets from a single execution
Hi,

What is your cursor location of recordset. Is it client-side or server-side?
I fit is not server one,  try to switch to server

--
Val Mazur
Microsoft MVP


Quote:
> It's an activeX DLL which is always inprocess, where an activeX EXE is out
> of process.  However, it resides on the server, not the client. So, it's a
> COM DLL.



> > Hi,

> > Is it out-of-process DLL or in-process? Could be somethign with
> marshalling.

> > --
> > Val Mazur
> > Microsoft MVP



> > > Hi: Sorry I wasn't clear.  The class DLL does NOT disconnect the
> > recordset.
> > > So resources are open, and it shouldn't close.


> > > > You get reference from class, not a separate object. If class sets
> > > > ActiveConnection to Nothing then connection is closed for that
> recordset
> > > and
> > > > recordset does not have any active connection to retrieve next part
of
> > > > information

> > > > --
> > > > Val Mazur
> > > > Microsoft MVP



> > > > > I understand.  Why do you think my DLL class is closing?  I'm only
> > > calling
> > > > a
> > > > > function and then it closes down on its own.



> > > > > > Yes, in case if you drop connection, then you cannot use
> > > NextRecordset.
> > > > It
> > > > > > will work ONLY in case if connection is alive. You would need to
> > find
> > > > some
> > > > > > sort of solution to keep connection opened and not set
> > > ActiveConnection
> > > > of
> > > > > > recordset before you process all recordsets. OLEDB works that
way
> > that
> > > > it
> > > > > > returns only one recordset and wen you call NextRecordset, then
it
> > > > > executes
> > > > > > next statement and opens another recordset. If connection is
> closed,
> > > > then
> > > > > it
> > > > > > cannot do that

> > > > > > --
> > > > > > Val Mazur
> > > > > > Microsoft MVP



> > > > > > > Thanks.  I tried it on the client and it works fine.  I think
I
> > > found
> > > > > the
> > > > > > > problem but don't know how to fix it.  Before I started
> returning
> > > > Multi
> > > > > > > Recordsets, I was returning a disconnected recordset.  I now
> > > remember
> > > > I
> > > > > > got
> > > > > > > this same error if I set the active connection to nothing in
the
> > > DLL.
> > > > I
> > > > > > had
> > > > > > > to let the client do all the getnextrecordsets and then set
the
> > > > > connection
> > > > > > > to nothing.  When steping thru the code, I discovered that
after
> > the
> > > > DLL
> > > > > > > makes the call (successfully) and exits the function, the next
> > thing
> > > > > that
> > > > > > > happens is that the class terminates.  My DLL opens the
> connection
> > > > upon
> > > > > > > creation and it stays open until the class terminates.   With
no
> > > > active
> > > > > > > connections you can't recieve a multiple recordset.  However,
> for
> > > the
> > > > > life
> > > > > > > of me I can't see why the class is terminating.
> > > > > > > I have it checked to "Retained in Memory", "Apartment
Threaded",
> > > > "Remote
> > > > > > > Server File", and "Project Compatibility".  The client calls
the
> > DLL
> > > > and
> > > > > > > before returning to the client, the termination happens.  And
> the
> > > > > function
> > > > > > > leaves the connection open so its using resources.  Any help?



> > > > > > > > Hi,

> > > > > > > > SQLOLEDB provider supports multiple recordsets. It could be
> > > > something
> > > > > > > wrong
> > > > > > > > with cursor location or marshalling recordsets between
> > processes.
> > > > Try
> > > > > to
> > > > > > > > execute same stored procedure from your code, not from
> > > middle-tier.
> > > > > see
> > > > > > if
> > > > > > > > it is fine, when it is local

> > > > > > > > --
> > > > > > > > Val Mazur
> > > > > > > > Microsoft MVP



> > > > > > > > > I'm using vb6, just upgraded to xp, and just upgraded xp,
> > MSSQL
> > > > 7.0.
> > > > > > I
> > > > > > > > > reinstalled ado 2.7 also to be sure.

> > > > > > > > > A ntier dll is calling a stored procedure with
> multi-selects,
> > > and
> > > > > > > > returning
> > > > > > > > > them to the client.  The error happens in the client on a
> "get
> > > > > > > > > nextrecordset" execution.

> > > > > > > > > My connection string is
> > > > > > > > >  GetConnectionString = "Provider=SQLOLEDB.1;Persist
Security
> > > > > > > > Info=False;User
> > > > > > > > > ID=sa;Initial Catalog=NadTable2;Data Source=NTSERVER"

> > > > > > > > > Seems like I had the error long ago and solved it my using
> > local
> > > > > > cursor
> > > > > > > > > (which is still being done).
> > > > > > > > > Appreciate any help.

> > > > > > > > > *************************************




Tue, 22 Mar 2005 19:31:23 GMT  
 
 [ 2 post ] 

 Relevant Pages 

1. Current provider does not support returning multiple recordsets from a single execution

2. Recordset, Sort, Error 3251 'Current provider does not support the necessary interfaces for sorting or filtering'.

3. error 3251 the operation requested by the application is not supported by the provider

4. Findfirst gives an error 3251 'operation is not supported for this type of object

5. class doesn't support automation or doesn't support expected interface

6. Object doesn't support current locale setting (Error 447)

7. FindFirst gives Error 3251 - Operation not supported?

8. The recordset doesn't return any record from MySQL database

9. Recordset.Open doesn't return any error

10. Run-time error '3251'

11. Class doesn't support Automation or does not support expected interface (Error 430)

12. run-time error: '3251':

 

 
Powered by phpBB® Forum Software