Skip to Content.
Sympa Menu

freetds - Re: [freetds] mssql_execute(): stored procedure execution failed

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: Robert Gonzalez <robert AT robert-gonzalez.com>
  • To: FreeTDS Development Group <freetds AT lists.ibiblio.org>
  • Subject: Re: [freetds] mssql_execute(): stored procedure execution failed
  • Date: Fri, 28 May 2010 08:44:21 -0700

I was just playing around with some stuff on my local development system and
ran into your exact problem. The fix for it is dead simple, bit will still
probably require you to modify your existing code in some capacity.

The fix is to free your result resources before sending another init request
to the server. I think you are running into something that has been causing
issues for a while, most recently in PDO as an unbuffered query error. What
is happening is the server is sending back a result but the response is
being held open on it until the next direct query is sent. But since you are
not sending a query and rather sending an init call the server is choking on
the request.

After every one of your queries and subsequent result reads, try adding in a
call to mssql_free_result($yourResultVar). That should make your problem go
away. At least it did for me in my testing just now.

On Fri, May 28, 2010 at 5:29 AM, Sylvain Viart - Gmail <
sylvain.viart AT gmail.com> wrote:

> Hi Robert,
>
> On 27/05/2010 19:38, Robert Gonzalez wrote:
> > Context change messages are severity level 10. I usually set my severity
> > level to 16 (anything higher and you are shutting up real messages - 1-16
> > are status messages).
> >
> > If you changed your severity levels to 16 and you still get that notice
> then
> > I have to suspect that PHP is not reading your ini file properly. Are you
> > changing it in the ini, or with a call to
> > mssql_min_error_severity()/mssql_min_message_severity()?
>
> Was set by php.ini, and seen in phpinfo() after apache restart. :-\
> I've retried.
>
> phpinfo() :
> > mssql
> > MSSQL Support enabled
> > Active Persistent Links 1
> > Active Links 1
> > Library version FreeTDS
> >
> > Directive Local Value Master Value
> > mssql.allow_persistent On On
> > mssql.batchsize 0 0
> > mssql.charset UTF-8 UTF-8
> > mssql.compatability_mode Off Off
> > mssql.connect_timeout 5 5
> > mssql.datetimeconvert On On
> > mssql.max_links Unlimited Unlimited
> > mssql.max_persistent Unlimited Unlimited
> > mssql.max_procs Unlimited Unlimited
> > mssql.min_error_severity 17 17
> > mssql.min_message_severity 17 17
> > mssql.secure_connection Off Off
> > mssql.textlimit Server default Server default
> > mssql.textsize 67108864 67108864
> > mssql.timeout 60 60
>
> here is the output
>
> 2010/05/28 14:10:53 read_msg.php:46:linsyn_priv_get:Changed database
> context to 'D2_master'. /read_msg.php
>
> and logged that way :
> $ps = mssql_init("linsyn_priv_get");
> if(!$ps)
> {
> my_log("read_msg.php:46:linsyn_priv_get:". mssql_get_last_message());
> }
>
> We doesn't have an error message here.
>
> We have found that the mssql_query('EXEC') never fail.
> We'll need to rewrite more that 700 call by website, (sic).
>
> Legacy code, my love...
>
> I'm still interesting to find a way to debug this error.
>
> Regards,
> Sylvain.
> _______________________________________________
> FreeTDS mailing list
> FreeTDS AT lists.ibiblio.org
> http://lists.ibiblio.org/mailman/listinfo/freetds
>



--
Robert Gonzalez
http://www.robert-gonzalez.com
http://twitter.com/RobertGonzalez
http://www.linkedin.com/in/robertanthonygonzalez




Archive powered by MHonArc 2.6.24.

Top of Page