Re: Output parameters

"ZIGLIO, Frediano, VF-IT" <[email protected]>
Newsgroups gmane.comp.db.tds.freetds
Message-ID <[email protected]>
> 
> I thought about that, but the stored procedure doesn't return 
> any data,
> and passing the result from mssql_execute to 
> mssql_fetch_array throws an
> error (invalid result id, the normal stuff).
> 
> This is the stored procedure:
> 
> CREATE PROCEDURE sp_web_WebsiteEnabled@WebsiteID INT, @Enabled TINYINT
> OUTPUT AS
> 	SET @Enabled = CASE WHEN EXISTS(SELECT * 
>                                   FROM WebsiteDivision wd (NOLOCK) 
>                                   WHERE wd.Website_ID = @WebsiteID 
>                                     AND wd.SalesordersAllowed = 1)
>                  THEN 1
>                  ELSE 0
>                  END
> GO
> 
> Note that the same *does* work on another live server, but we haven't
> yet figured out what the difference between the two servers is that
> might cause output parameters to not get filled up.
> 
> Profiler shows a query where the result is returned correctly (SELECT
> @P1, where @P1 represents @Enabled passed to the stored procedure).
> Somehow the value from SELECT @P1 doesn't make it back to my PHP
> variable $canLogin.
> 
> Kind regards,
> Gunther
> 
>  

Do you use different FreeTDS and/or PHP versions ??
Different patch (for instance cause you are using different unix
implementations or different Linux distributions) ?

freddy77

> 
> -----Original Message-----
> From: [email protected]
> [mailto:[email protected]] On Behalf Of ZIGLIO,
> Frediano, VF-IT
> Sent: woensdag 23 april 2008 16:38
> To: FreeTDS Development Group
> Subject: Re: [freetds] Output parameters
> 
> > 
> > Hi,
> >  
> > I'm having a problem getting my output parameters returned 
> in PHP from
> 
> > an sql server stored procedure. This is the code used, it is fairly
> > straightforward:
> >  
> > $canLogin = 666;
> > $websiteID = 2;
> > 
> > $sp = mssql_init('sp_web_WebsiteEnabled');
> > mssql_bind($sp, '@WebsiteID', $websiteID, SQLINT4, false); // INT
> > mssql_bind($sp, '@Enabled',   $canLogin,  SQLINT1, true);  
> // TINYINT
> > (OUTPUT)
> > mssql_execute($sp);
> > 
> > // $canLogin is still 666
> > 
> > 
> > I'm using freetds 0.64 with PHP 5.2.0 and Microsoft SQL 
> Server 2000. 
> > My freetds.conf file has tds version 8.0 (7.0 doesn't work either). 
> > The apache server is running on freeBSD.
> > 
> > Do you need to compile with special options to get output 
> parameters 
> > to work for SQL Server 2000? I think RETVAL is also not working but 
> > I'd need to test to make sure.
> > 
> > What could be the problem? The PHP version? FreeTDS setup? 
> SQL Server 
> > version?
> > 
> > Kind regards,
> > Gunther
> 
> Are you sure store does not return any output?? mssql return output
> parameters after all data (rows, errors and so on) are sent. For
> instance it can happen that a simple select or an insert return some
> token that delays output parameters.
> 
> freddy77
> _______________________________________________
> FreeTDS mailing list
> [email protected]
> http://lists.ibiblio.org/mailman/listinfo/freetds
> _______________________________________________
> FreeTDS mailing list
> [email protected]
> http://lists.ibiblio.org/mailman/listinfo/freetds
>
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.