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

"James K. Lowden" <[email protected]>
Newsgroups gmane.comp.db.tds.freetds
Message-ID <[email protected]>
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
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.