From:             [EMAIL PROTECTED]
Operating system: Win2000
PHP version:      4.1.2
PHP Bug Type:     MSSQL related
Bug description:  Stored Procedure Parameters is_null issue

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.
-- 
Edit bug report at http://bugs.php.net/?id=16496&edit=1
-- 
Fixed in CVS:        http://bugs.php.net/fix.php?id=16496&r=fixedcvs
Fixed in release:    http://bugs.php.net/fix.php?id=16496&r=alreadyfixed
Need backtrace:      http://bugs.php.net/fix.php?id=16496&r=needtrace
Try newer version:   http://bugs.php.net/fix.php?id=16496&r=oldversion
Not developer issue: http://bugs.php.net/fix.php?id=16496&r=support
Expected behavior:   http://bugs.php.net/fix.php?id=16496&r=notwrong
Not enough info:     http://bugs.php.net/fix.php?id=16496&r=notenoughinfo
Submitted twice:     http://bugs.php.net/fix.php?id=16496&r=submittedtwice

Reply via email to