|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2002-12-07 01:53 UTC] iliaa@php.net
[2002-12-24 01:00 UTC] php-bugs at lists dot php dot net
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sun Nov 02 17:00:02 2025 UTC |
The problem is with executing a stored procedure with a null-value varchar output parameter. Steps... 1) create any SP that has a varchar(200) input/output param e.g. create procedure Test ( @TestVarchar varchar(200) = null output ) as select @TestVarchar = 'Successful parameter feedback'; 2) Run stored procedure using following statements... $ConnectionObj = mssql_connect($DB_SERVER_NAME, $DB_USER, $DB_PASSWORD); $aStatement = mssql_init("dbo.test", $ConnectionObj); mssql_bind($aStatement, "RETVAL", &$RetVal, SQLINT4); mssql_bind($aStatement, "@TestVarchar", &$Value, SQLVARCHAR, TRUE, TRUE, 200); $ExecResult = mssql_execute($aStatement); When PHP executes the SP it defines the parameter as VARCHAR(0) when it should be VARCHAR(200). I've run SQL Profiler and it shows... declare @P1 varchar(0) set @P1=NULL exec dbo.test @P1 output select @P1 when it should be declare @P1 varchar(200) set @P1=NULL exec dbo.test @P1 output select @P1 If you change the bind statement so that the @TestVarchar parameter is not null then the whole thing works.