目次に戻る

SybResult

使用モジュール

  • SybConstant
  • クラスメソッド

    new(restype, rowset=nil)
    結果データオブジェクト、SybResultを新しく作成します。
    restype
    結果のタイプを表すSybConstant 定数

    restype に指定可能なSybConstant定数は、

  • CS_CMD_SUCCEED (ローを返さないコマンドの正常終了通知)
  • CS_CMD_DONE (コマンドの正常処理を通知)
  • CS_CMD_FAIL(サーバエラーを通知)
  • CS_ROW_RESULT(通常ロー結果)
  • CS_PARAM_RESULT(リターンパラメータ結果)
  • CS_STATUS_RESULT(ストアドプロシジャー リターンステータス)
  • CS_COMPUTE_RESULT(compute ロー結果)
  • のいずれかです。

    rowset
    結果ローを表す 長さ2の配列
  • rowset[0] -- カラムデータ配列
  • rowset[1] -- ローデータ配列の配列
  • メソッド

    restype
    結果タイプ(CS_ROW_RESULT,CS_CMD_FAILなど)を返します。

    rows
    ロー結果を「配列の配列」として返します。

    結果タイプが、

    以外の場合は、nilを返します。

    columns
    ロー結果のカラム情報を「配列」として返します。

    結果タイプが、

    以外の場合は、nilを返します。

    nthrow( nth, clm=nil )
    nth=n, clm=nil の場合(nは整数)
    n 番目の結果ロー配列を返します。
    nth=n, clm=c の場合(n,cは整数)
    n 番目の結果ローの、cカラム目のデータを返し ます。
    nth=n, clm='str' の場合(strは文字列)
    n 番目の結果ローの、strカラムのデータを返し ます。
      ## sp_who を発行 ##
      query.sql("sp_who")
    
      ##  最初のロー結果を得る ##
      res=query.top_row_result  /* res は SybResult オブジェクト */
    
      ## カラム情報 ##
      print res.columns.join(','),"\n"
       -->
        ["spid", "status", "loginame", "hostname", "blk", "dbname", "cmd"]
    
      ## ローデータのプリント ##
      res.rows.each{|r| print r.join(','), "\n"}
       -->
        1,running     ,sa          ,          ,0    ,master    ,SELECT          
        2,sleeping    ,,          ,0    ,master    ,NETWORK HANDLER 
        3,sleeping    ,,          ,0    ,master    ,DEADLOCK TUNE   
        4,sleeping    ,,          ,0    ,master    ,MIRROR HANDLER  
        5,sleeping    ,,          ,0    ,master    ,HOUSEKEEPER     
        6,sleeping    ,,          ,0    ,master    ,CHECKPOINT SLEEP
    
      ## カラム番号による、ローデータの要素アクセス ##
      print res.nthrow(0,1),"\n"
       -->
        "running     "
    
      ## カラム名による、ローデータの要素アクセス ##
      print res.nthrow(5,"cmd"),"\n"
       -->
        "CHECKPOINT SLEEP"
    
    tran_state
    現在のトランザクション状態を返します。

    返り値は以下のいずれかです。

    row_count
    影響を及ぼしたロー数を返します