none
表形式の結果を表示するCLRストアドプロシージャについて RRS feed

  • 質問

  • 開発環境:
    SQL Server 2005 Express
    Visual Studio 2005 Professional Edition

    CLRストアドプロシージャで表形式の結果を表示するために、
        <Microsoft.SqlServer.Server.SqlProcedure()> _
        Public Shared Sub spA()
            '/* レコード定義 */
            Dim record As New SqlDataRecord(New SqlMetaData("列1", SqlDbType.Char, 10))

            SqlContext.Pipe.SendResultsStart(record)
            record.SetString(0, "ABCDE")
            SqlContext.Pipe.SendResultsRow(record)
            SqlContext.Pipe.SendResultsEnd()
        End Sub

    のように作成したストアドプロシージャを
    また別のストアドプロシージャからADO.NETを使用して呼び出した場合に、
    応答が返ってこなくなりました。

    単体で呼び出す場合は正常に結果が返るんですが、
    ストアド内部で呼び出した場合のみこのような事が起きます。


    ○単体で動かした場合
    列1        
    ----------
    ABCDE     
    該当する行はありません。
    (1 行が返されました)
    @RETURN_VALUE =
    [dbo].[spA] の実行が完了しました。

    ○ストアド上で動かした場合
    イミディエイトウィンドウに延々と以下のメッセージが出力されます。

    WARNING: Debugger was accessing T-SQL variables while managed code was not suspended. Waiting until the access is done to continue T-SQL execution.Continueing T-SQL execution.

    どなたか解決策等ご存知の方がいらっしゃいましたら、ご教授いただけませんでしょうか?
    よろしくお願いいたします。

    2007年5月14日 5:31

すべての返信