Skip to Content.
Sympa Menu

freetds - Re: [freetds] Warning: odbc_exec() [function.odbc-exec]: SQL error: [unixODBC][FreeTDS][SQL Server]Invalid cursor state, SQL state 24000 in SQLExecDirect in

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: "James K. Lowden" <jklowden AT freetds.org>
  • To: FreeTDS Development Group <freetds AT lists.ibiblio.org>
  • Subject: Re: [freetds] Warning: odbc_exec() [function.odbc-exec]: SQL error: [unixODBC][FreeTDS][SQL Server]Invalid cursor state, SQL state 24000 in SQLExecDirect in
  • Date: Wed, 18 Feb 2009 23:33:50 -0500

Ran September wrote:
> i will try to become a "better programmer" :-D

And so you are doing. :-)

> although i didn't get the "outer join to mpc_web_users" part

http://publib.boulder.ibm.com/infocenter/rbhelp/v6r3/index.jsp?topic=/com.ibm.redbrick.doc6.3/ssg/ssg74.htm
http://en.wikipedia.org/wiki/Join_(SQL)#Outer_joins

I can't tell from your script what the relationship is between gages and
mpc_web_users. There doesn't seem to be any; the results of the first
query don't seem to affect $userid, which is what's used as a key in the
second query.

If $userid is invariant within the loop, the second query could be
factored out. Get the row(s) from mpc_web_users, then proceed with gages.


If the two are related -- if the row you want from mpc_web_users varies
with the data you fetch from gages -- then fetch both parts at once,
something like:

SELECT g.*, U.nusers
FROM gages as g
left outer join (
select count(*) as nusers, user_name
from mpc_web_users
) as U
on g.something = U.user_name
where company = '$custid'
and gage_sn ='$sn'

That's just one approach. Depending on your data and exactly what you're
trying to do, several alternatives come to mind. Cf. "cross join".

All to say: SQL is your friend. Learn it. Use it. Exploit it. Not to be
a better programmer, however nice that might be, but to work less. Create
more from less code by letting the database do the work for you. If
you're going to spend your day scripting webservers, I can't offer better
advice.

> but is it true that installing the mssql.so will solve this?

No. Please re-read the faq. Remember: "one active statement at a time
per connection" is a property of the *protocol*. The server won't accept
a second query until it's done answering the first one.

--jkl




Archive powered by MHonArc 2.6.24.

Top of Page