ID:               35920
 Comment by:       none at none dot com
 Reported By:      eaboyle at gemstonewd dot com
 Status:           Assigned
 Bug Type:         MSSQL related
 Operating System: window XP pro
 PHP Version:      5CVS, 4CVS (2006-01-07) (snap)
 Assigned To:      fmk
 New Comment:

won't $result ccontain the response object from the stored proc ? 

i.e. your passing in two params, where your procedure expects one,
hence your unable to set the invalid parameter.

for example, do you just need to use mssql_next_result /
mssql_fetch_row on $result to get the output?

Paul


Previous Comments:
------------------------------------------------------------------------

[2006-01-07 00:22:59] [EMAIL PROTECTED]

Assigned to the maintainer.

------------------------------------------------------------------------

[2006-01-06 23:58:05] eaboyle at gemstonewd dot com

I upgraded to 5.1.latest and still get the same result.

------------------------------------------------------------------------

[2006-01-06 16:48:20] [EMAIL PROTECTED]

Please try using this CVS snapshot:

  http://snaps.php.net/php5.1-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php5.1-win32-latest.zip



------------------------------------------------------------------------

[2006-01-06 16:19:06] eaboyle at gemstonewd dot com

Description:
------------
I'm trying to get output from an mssql stored procedure.

I get "mssql_bind(): Unable to set parameter warning on line  6. 

I have "allow_call_time_pass_reference = On" in my php.ini.



Reproduce code:
---------------
1 $db = new clsDBsqlRags();
2 $db->connect();
3 $stmt=mssql_init("sp_NEXT_ACT_NUM ",$db->Link_ID); 
4 $act_base = 1;
5 mssql_bind($stmt,"@ACT_BASE", $act_base, SQLINT4);
6 mssql_bind($stmt, "RTNVAL", &$act_num, SQLINT4);
7
8 $result=mssql_execute($stmt, FALSE);

Stored procedure:



CREATE PROCEDURE sp_NEXT_ACT_NUM     
  @ACT_BASE int
AS

  DECLARE 
    @Act int                 --FETCHED CLIENT.ACCOUNT VALUE

  --GET SET OF ACCOUTS FROM CLIENT TABLE
  DECLARE Crsr_Act CURSOR
  FOR 
    SELECT C.ACCOUNT
    FROM CLIENT C
    WHERE C.ACCOUNT >= @ACT_BASE
    ORDER BY ACCOUNT

  OPEN Crsr_Act

  FETCH Crsr_Act INTO @Act

  --TRAVERSE Crsr_Act
  WHILE (@@FETCH_STATUS = 0)
  BEGIN

    IF @ACT_BASE < @Act 
      BREAK
    ELSE IF @ACT_BASE = @Act
      SELECT @ACT_BASE = @ACT_BASE + 1

    FETCH Crsr_Act INTO @Act

  END

  CLOSE Crsr_Act
  DEALLOCATE Crsr_Act

  RETURN @ACT_BASE


GO


Expected result:
----------------
expect $act_num to be set to the return value of the mssql stored
procedure.

Actual result:
--------------
mssql_bind(): Unable to set parameter warning on line  6. 


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=35920&edit=1

Reply via email to