最近の更新

2009-09-27
2009-07-06
2009-04-11
2009-04-09
2009-03-06

Dernières dossier de presse

sticker (0.1.5.2)2009-10-25 12:47

サイドバー

<cursor>タグ

<cursor>タグは、<for>タグによるループ処理や<if>タグによる分岐処理 を行いたい場合に利用するカーソルを定義するためのタグです。

<cursor>タグには子要素でSQLを記述しますが、このSQLを実行して得られた結果セット に対してカーソルが設定されます。このカーソルを利用して、<for>タグによる ループ処理や<if>タグによる分岐処理を行います。

実際には、<cursor>タグを定義した段階ではSQLは発行されません。SQLが発行され結果 セットに対するカーソルがオープンされるのは<for>タグ実行時や<if>タグ 実行時になります。

カーソルで得られた結果セットのフィールド値にアクセスするためには、 「_$$フィールド名$$_」とします。こうすることにより、他のタグの属性やテキスト要素 にカーソルで得られた結果の値を利用することができます。

関連するタグ

<cursors> <corsor>タグの親タグです。
<for> <cursor>タグで生成した結果セットに対してループ処理を実行します。
<if> <cursor>タグで生成した結果セットの1行目1フィールド目の値をチェックし、結果に応じて条件分岐を行います。

書式

  <cursors>
    <cursor name="カーソル名">
      カーソルを開くときに実行されるSQL文
    </cursor>
  </cursors>

例1

サーバー1のテーブルに対してカーソルを定義し、得られた結果セットの値を利用してログ出力を行います。

  <servers>
    <server name="db-server1"
            user="scott"
            pass="tiger"/>
  </servers>

  <cursors>
    <cursor name="employee_cursor">
      select * from Employee
    </cursor>
  </cursors>

  <connect name="db-server1">
    <for name="employee_cursor">
      <info>社員ID→_$$id$$_ 名前→_$$name$$_ </info>
    </for>
  </connect>

例2

サーバー1のテーブルに接続し、各部署に所属する社員の一覧をCSVファイルにエクスポートします。 このとき、CSVファイル名を部署名.csvとします。

  <servers>
    <server name="db-server1"
            user="scott"
            pass="tiger"/>
  </servers>

  <cursors>
    <cursor name="dept_cursor">
      select * from Dept
    </cursor>
  </cursors>

  <connect name="db-server1">

    <for name="dept_cursor">
      <export destination="_$$name$$_.csv">
        select
          *
        from
          employee
        where
          deptId=_$$id$$_
      </export>
    </for>
  </connect>