Re: OLE error 80040200 when assigning events of a TCustomADODatasetpointingto a multi-select stored proc

From: Oliver Giesen (NO.ogware.SPAM_at_gmx.ALLOWED.net.INVALID)
Date: 05/05/04


Date: Wed, 05 May 2004 17:27:36 +0200

Viatcheslav V. Vassiliev wrote:

> No, all properties should be set on initial recordset before Open(). Next
> recordsets will inherit properties (such as cursor location).

But apparently not the (contents of the) ConnectionPointContainer?
Otherwise this wouldn't have been a problem in the first place, would it?

> There should be no memory leaks because TADODataSet is not reference
> counted - recordset should hold pointer to TADODataSet that is set in
> Advise() - this interface (IUnknown(TADODataSet)) should be released in
> Unadvise() call.

So, are you saying calling EnableEvents after open is a valid approach?

I'm intending to report this to QC, but I'm still having trouble
producing a simplest case test scenario especially concerning the
characteristics of the stored procedure that is causing the multiple
recordsets being returned (with the first one being closed). Simply
having two select statements as in the example below does contrary to my
expectations not suffice to produce this symptom:

declare @Temp int
select @Temp = 0
select * from wherever

The procedure that alerted me to the problem is by far the most complex
we ever wrote and it is pretty hard to tell, what exactly might be
causing this. It uses temp tables and unions as well... any ideas?

Cheers,

Oliver



Relevant Pages