2017-11-10 9 views
2

SQLの男は、要求によって影響を受けるだろう項目のリストを返すために仮定されたストアドプロシージャを書きました。ストアドプロシージャの戻りパラメータ

私は以下の例のようにSQL Server Management Studioの内のストアドプロシージャを呼び出す場合、私は経由して結果を表示しようとすると、私は、エイリアス今

DECLARE @RETURN_CLIENTS_SET nvarchar(max) 
EXEC [dbo].[Sp_IHM_SET_FORMS_INDPROD_CLOSE_DATE] 
    @Date = N'20171110', 
    @RETURN_ITEMS = @RETURN_ITEMS OUTPUT 

SELECT @RETURN_ITEMS as N'@RETURN_ITEMS' 

にちなんで名付けられた列でリストを参照することができますPHP私は単純なテーブルのために(特定のアイテムのためにいくつかのフラグを変更する)、ストアドプロシージャは、データベースにそのようなものをして

$query_setdata = "DECLARE @RETURN_CLIENTS_SET nvarchar(max) 
EXEC [dbo].[Sp_IHM_SET_FORMS_INDPROD_CLOSE_DATE] 
    @Date = N'20171110', 
    @RETURN_ITEMS = @RETURN_ITEMS OUTPUT 

SELECT @RETURN_ITEMS as N'@RETURN_ITEMS'"; 
$prep_setdata = sqlsrv_prepare($conn, $query_setdata); 

if(sqlsrv_execute($prep_setdata)) 
{ 
    while($data = sqlsrv_fetch_array($prep_setdata,SQLSRV_FETCH_ASSOC)) { 
    echo $data['@RETURN_ITEMS']; 
    } 
} 
else { 
     die(print_r(sqlsrv_errors(), true)); 
} 

をフェッチするんだろうと同じように、私は何のエラーを持っていないが、それは「RETURN_ITEMSが表示されません"値

答えて

2

次のようにバッチを試してみてください:

SET NOCOUNT ON; 
DECLARE @RETURN_ITEMS nvarchar(max); 
EXEC [dbo].[Sp_IHM_SET_FORMS_INDPROD_CLOSE_DATE] 
    @Date = N'20171110', 
    @RETURN_ITEMS = @RETURN_ITEMS OUTPUT; 

SELECT @RETURN_ITEMS as RETURN_ITEMS; 

行数のメッセージがいくつかのクライアントドライバを混乱させる。結果セットの列名は通常の識別子でなければならず、宣言するローカル変数は返すものでなければなりません。また、格納されたproc出力パラメータと同じ名前を持つことができます。

+0

ああ私の神。ハハ。それは魅力のように働く。ありがとうございました – Richard

関連する問題