Re: Invalid cursor state

[email protected]
Newsgroups gmane.comp.db.tds.freetds
Message-ID <[email protected]>
On Thu, Mar 11, 2010 at 12:27:30PM -0500, Swapnil Shinde wrote:
> I am using a combination of Snort+unixODBC+freeTDS+mssql. Everything is
> working fine except freeTDS is giving me following error for every query
> after the first query made by the Snort.
> 
> *DIAG [24000] [FreeTDS][SQL Server]Invalid cursor state *
> 
> After doing some research; I have found that in order to do multiple queries
> at faster rate; one needs to enable MARS (Multiple Active Result Sets)
> parameter in the connection API of mssql. 

http://www.freetds.org/faq.html#pending

I don't know exactly what's happening, but if the Snort folks say you *need* MARS, it won't work with FreeTDS and it's not portable.  If anyone on that team is interested, I'm happy to guide them to the One True TDS Way.  

A TDS client must process (or cancel) all results from a query before issuing a new query.  MARS is a Microsoft-only workaround to that basic feature of the TDS protocol.  If we get a patch to make MARS work on FreeTDS, great, we'll apply it if it's good enough.  But I for one see no need.  

It's quite easy to program within the one-query-at-a-time paradigm.  Anyone not doing so is cruising for a bruising when the backend is e.g. Sybase.  

HTH.  

--jkl
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.