Re: ADO seemingly terminating batch

From: Dennis Forbes (dennis.forbes_at_gmail.com)
Date: 09/28/04


Date: 28 Sep 2004 10:36:34 -0700

As one additional, and perplexing, bit of information, not only does
the batch abort not occur if adExecuteNoRecords is not specified, the
abort also doesn't occur if the TDS packet size has been set to an
arbitrary larger value, for instance 16384 (va Packet Size=16384 on
the OLEDB connection string).

So to recap we call a procedure in SQL Server 7 from COM+ using
ADO/OLEDB (MDAC 2.8) and a command object with adExecuteNoRecords
turned on, and inexplicably the batch is terminating midstep,
apparently on a trivial warning message such as a Divide by zero
warning. Removing adExecuteNoRecords, or increasing the TDS packet
size, and the batch no longer aborts. Adding some sort of output at
the outset of the procedure, such as PRINT 'Test', also stops the
batch from being aborted.

We have several work arounds, but as this is a critical production
system we don't want to shoehorn in a workaround without understanding
this fault - is this a fault in ADO perhaps? (Is ADO on the client
side pulling data from a TDS stream during the execution of a long
running procedure, and if it saw something it didn't like would it
terminate the batch?)



Relevant Pages

  • Re: ADO seemingly terminating batch
    ... the batch abort not occur if adExecuteNoRecords is not specified, ... ADO/OLEDB and a command object with adExecuteNoRecords ... or increasing the TDS packet ...
    (microsoft.public.sqlserver.programming)
  • Re: ADO seemingly terminating batch
    ... -We are executing a procedure with ADO and the SQL Server OLEDB provider ... ADO is abandoning the batch when it sees a severity 16 error - this is ... of the TDS packet, ADO usually doesn't see the error until the procedure ...
    (microsoft.public.data.ado)
  • Re: ADO seemingly terminating batch
    ... -We are executing a procedure with ADO and the SQL Server OLEDB provider ... ADO is abandoning the batch when it sees a severity 16 error - this is ... of the TDS packet, ADO usually doesn't see the error until the procedure ...
    (microsoft.public.sqlserver.programming)
  • Re: ADO and severity 16 errors
    ... The original programmer added the adExecuteNoRecords option for efficiency ... reasons - technically the middleware is just launching the batch processing ...
    (microsoft.public.data.ado)
  • Re: ADO and severity 16 errors
    ... If you use adExecuteNoRecords, it means that provider should not return any ... records from the result of the SQL statement. ... > causes the batch to terminate. ...
    (microsoft.public.data.ado)