| Date: Wed, 02 May 2001 17:05:11 +0900
 From: who@sub.example.jp
 
 
 
    こちらはいつも拝見させていただいております。
    VBマガジン6月号もがりがり今読んでいます。
    丁度旬な記事なので大変参考になっています。
    OS情報    :Win2000 SP1
    コンテナ情報:VB6 SP5
    SQLサーバー :7.0 SP3
    という開発環境で行っています。
    
    表題の件ですが次のような内容です。
○ストアドプロシージャー
    Alter PROCEDURE Str_T_ReserveRead
    AS
            DECLARE @WERROR 	INT
            SELECT  @WERROR     = 0
            SELECT  *
            FROM    T_RESERVE
            SELECT  @WERROR = @@ERROR
            SELECT  @WERROR     = 999   ←わざと値を返す為に。
    RETURN @WERROR
    
○VB側
    接続処理
        ・
        ・
    adcmd.CommandText = "str_xxxxx"     ''---[ ストアドプロシージャー名
    adcmd.CommandType = adCmdStoredProc 
    adcmd.Parameters.Append adcmd.CreateParameter("Return", adInteger, _
                                                adParamReturnValue)
    Set adrst = adcmd.Execute                       
    
    ざっとですがこんな感じです。
    
    1)ストアドプロシージャー側の処理が Select の場合
            mlngParameterError = adcmd("Return")
        値が入ってきません。値は『0』です。
        何かの雑誌でストアドプロシージャー側がRecordset を返す場合は
        Return値は、取得したRecordset をClose しない限り取得できないという
        内容を見てCLOSEもやってみたのですが、正常に受け取ることができません。
        
    2)仮にストアドプロシージャー側の処理が Insert ,Update, DELETE の場合
○ストアドプロシージャー
    Alter PROCEDURE Str_T_ReserveRead
    AS
            DECLARE @WERROR 	INT
            SELECT  @WERROR     = 0
            INSERT  T_RESERVEWK
            SELECT  *
            FROM    T_RESERVE
            SELECT  @WERROR = @@ERROR
            SELECT  @WERROR     = 999   ←わざと値を返す為に。
    RETURN @WERROR
            mlngParameterError = adcmd("Return")
        Select文をInsert 文に変更した場合、上記1行で正常に受け取れます。
        試しに、
○ストアドプロシージャー
    Alter PROCEDURE Str_T_ReserveRead
    AS
            DECLARE @WERROR 	INT
            SELECT  @WERROR     = 0
/*
            SELECT  *
            FROM    T_RESERVE
*/
            SELECT  @WERROR = @@ERROR
            SELECT  @WERROR     = 999   
    RETURN @WERROR
        とやってみたところ、値『999』を受け取る事ができます。
        
        ストアドプロシージャー側でRecordset を作成する場合、
        Return値は返ってこないものなのでしょうか。
        
        御指導、よろしくお願いいたします。m(._.)m
who@sub.example.jp
━┛━┛━┛━┛
 
 
| [MSDE/SQLServerに関して、今、どんなことにお困りですか?] |  | よろしければお困りの内容を、電子メールで教えて下さい。 |  | 質問を電子メールで作成する |  
 [ウィンドを閉じる][MSDE/SQLServer FAQ ][MSDE / MSDE2000 技術サポート情報一覧]
  
                                 
                       |