SybResult class

目次に戻る

# SybResult

SyBase の SQLコマンド発行結果を格納するクラスです。

### 使用モジュール

- 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
    結果ローを表す 長さ２の配列
    - rowset[0] -- カラムデータ配列
    - rowset[1] -- ローデータ配列の配列

### メソッド

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

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

  結果タイプが、

  CS_ROW_RESULT,CS_PARAM_RESULT,
  CS_STATUS_RESULT,CS_COMPUTE_RESULT
  以外の場合は、nilを返します。

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

  結果タイプが、

  CS_ROW_RESULT,CS_PARAM_RESULT
  以外の場合は、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
  現在のトランザクション状態を返します。

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

  - SybConstant::CS_TRAN_IN_PROGRESS
    トランザクションが進行中です。
  - SybConstant::CS_TRAN_COMPLETED
    トランザクションが正常に終了しました。
  - SybConstant::CS_TRAN_FAIL
    トランザクションが異常終了しました。
  - SybConstant::CS_TRAN_STMT_FAIL
    トランザクションが異常終了しました（最後に実行した文）。
  - SybConstant::CS_TRAN_UNDEFINED
    トランザクションは定義されていません。

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