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: Ran September <ran.september AT gmail.com>
  • 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 22:30:10 -0800

yeah, sure i can do that thanks...

On Wed, Feb 18, 2009 at 10:21 PM, Robert Gonzalez <
robert AT robert-gonzalez.com> wrote:

> Try adding some error checking on your calls along the way. When things
> fail
> PHP is pretty good at telling you why.
>
> On Wed, Feb 18, 2009 at 11:18 PM, Ran September <ran.september AT gmail.com
> >wrote:
>
> > oh, sorry i had a follow up question. does odbc freetds can execute a
> query
> > like this:
> >
> > $sql2="SELECT * FROM events where company = '$custid' and
> "."gage_sn
> > = '$cal' and ". "(event_type like '%cal%' or event_type = 'Repair' or
> > event_type = 'Op-Check')";
> >
> > cause when i executed it:
> > while (odbc_fetch_row($rs2))
> > {
> > $etype=trim(odbc_result($rs2,"event_type"));
> > $enum=odbc_result($rs2,"event_num");
> > $edate=odbc_result($rs2,"event_date");
> > $edate = date("M-j-Y", strtotime($edate));
> > $eresult=trim(odbc_result($rs2,"event_result"));
> > ?>
> > i received the following error:
> > *Warning*: odbc_fetch_row(): 9 is not a valid ODBC result resource in *
> > /var/www/localhost/htdocs/customer.microprecision.com/gage.php* on line
> > *180
> > * i wonder why, the syntax looks right to me. do you think the
> > "(event_type like '%cal%' or event_type = 'Repair' or event_type =
> > 'Op-Check')"; from $sql2 variable causing the error?
> >
> > Thanks again.
> >
> > On Wed, Feb 18, 2009 at 8:33 PM, James K. Lowden <jklowden AT freetds.org
> > >wrote:
> >
> > > 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<http://en.wikipedia.org/wiki/Join_%28SQL%29#Outer_joins>
> <http://en.wikipedia.org/wiki/Join_%28SQL%29#Outer_joins>
> > <http://en.wikipedia.org/wiki/Join_%28SQL%29#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
> > > _______________________________________________
> > > FreeTDS mailing list
> > > FreeTDS AT lists.ibiblio.org
> > > http://lists.ibiblio.org/mailman/listinfo/freetds
> > >
> >
> >
> >
> > --
> > R
> > _______________________________________________
> > FreeTDS mailing list
> > FreeTDS AT lists.ibiblio.org
> > http://lists.ibiblio.org/mailman/listinfo/freetds
> >
>
>
>
> --
>
> Robert Gonzalez
> http://www.robert-gonzalez.com
> _______________________________________________
> FreeTDS mailing list
> FreeTDS AT lists.ibiblio.org
> http://lists.ibiblio.org/mailman/listinfo/freetds
>



--
R




Archive powered by MHonArc 2.6.24.

Top of Page