biz-Streamマニュアル XMLドキュメントレイアウトタグ リファレンス 第6章 データ設定について 6.6 RDB クエリーマスタ<bs:query-master>

6.6 RDB クエリーマスタ<bs:query-master>


6.6.1機能説明

RDBリソースで定義したリソースを元にクエリー定義をします。



6.6.2属性説明

1bs:query-master属性説明

master-nameは他のマスタから参照されるキーとなります。ユニークな名称で設定してください。

属性名指定説明指定内容初期値
master-name必須定義名CDATA

2bs:query-statement属性説明

SQL文のWHERE句を動的に変更したい場合、$変数名で置換可能な変数を定義することができます。
ここで定義した変数は <bs:param>で名前を付け、アプリケーションから値を設定できます。
詳しくはこの後の記述例をご参照ください。

属性名指定説明指定内容初期値
master-reference必須関連付けを行います
<bs:database-resource-master>のmaster-nameCDATA
#PCDATA必須SQL文を記述CDATA

3bs:data-type属性説明

RDBから取得したデータのカラム名、データ型、フォーマットを定義します。
定義がないカラム情報はStringType型を使用します。

属性名指定説明指定内容初期値
column-name必須カラム名CDATA
column-no任意カラム番号(カラムの位置)CDATA
type必須biz-Streamライブラリで処理できるデータ型char / varchar / smallint / integer / float / double / decimal / date / time / timestamp ※1
format任意<Currency>または<datetime-text>のformat属性の説明をご参照ください。
  • ※1数値型に指定したフィールドの読み込みにおいて、元のデータがNULL値であった場合、biz-Streamでは0として読み込まれます。

4bs:param属性説明

<bs:query-master>のSQL文で定義されたWHERE句の変数を、設定した値に置換します。

属性名指定説明指定内容初期値
name必須変数名CDATA
#PCDATA必須置換すべき値CDATA


6.6.3記述例

bs:query-masterサンプル1

bs:query-masterサンプル1
(『<biz-Stream_home>/sample/xml/datasource-master/datasource-masterOracleSample2-doc.xml』)


<?xml version="1.0" encoding="UTF-8"?>
<!-- XML file created by biz-Stream Designer -->
<!-- biz-Stream Copyright BrainSellers.com Corp. -->
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:pdf="http://www.brainsellers.com/schema" xmlns:svg="http://www.brainsellers.com/schema" xmlns:bs="http://www.brainsellers.com/schema" xmlns:form="http://www.brainsellers.com/schema" version="5.0.0">
    <bs:datasource-master-set>
        <bs:datasource-master master-name="Source-Oracle2" position="inherit">
            <bs:query-master-reference master-reference="SQL-Oracle"/>

        </bs:datasource-master>
        <bs:database-resource-master master-name="RDB-Oracle" driver="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@brain_db:1521:XE" userid="scott" password="dGlnZXI="/>

        <bs:query-master master-name="SQL-Oracle">
            <bs:query-statement master-reference="RDB-Oracle">select EMP.EMPNO,EMP.ENAME,EMP.JOB,EMP.DEPTNO from EMP where (EMP.DEPTNO = $deptno) </bs:query-statement>
            <bs:data-type column-name="EMPNO" type="integer"/>
            <bs:data-type column-name="ENAME" type="varchar"/>
            <bs:data-type column-name="JOB" type="varchar"/>
            <bs:data-type column-name="DEPTNO" type="integer"/>
            <bs:param name="deptno">10</bs:param>
            <!-- TableName = EMP	 AliasTableName = EMP	 FieldName = EMPNO	 TOTAL = 	 SORT = 	 ExtractionCnditions = 	 orStr = 	 type = decimal
 TableName = EMP	 AliasTableName = EMP	 FieldName = ENAME	 TOTAL = 	 SORT = 	 ExtractionCnditions = 	 orStr = 	 type = varchar
 TableName = EMP	 AliasTableName = EMP	 FieldName = JOB	 TOTAL = 	 SORT = 	 ExtractionCnditions = 	 orStr = 	 type = varchar
 TableName = EMP	 AliasTableName = EMP	 FieldName = DEPTNO	 TOTAL = 	 SORT = 	 ExtractionCnditions = $deptno	 orStr = 	 type = decimal
-->

        </bs:query-master>
    </bs:datasource-master-set>
    <fo:layout-master-set>
        <fo:simple-page-master master-name="A4" page-height="297mm" page-width="210mm">
            <fo:region-body/>
        </fo:simple-page-master>
    </fo:layout-master-set>
    <fo:page-sequence master-reference="A4" bs:local-page-control="none">
        <fo:flow flow-name="xsl-region-body">
            <bs:block-container>
                <bs:include href="${base-dir}/sample/xml/datasource-master/datasource-masterOracleSample2-page.xml"/>

            </bs:block-container>
        </fo:flow>
    </fo:page-sequence>
</fo:root>

(10行目抜粋)

<bs:database-resource-master master-name="RDB-Oracle" driver="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@brain_db:1521:XE" userid="scott" password="dGlnZXI="/>

(13行目抜粋)

<bs:query-statement master-reference="RDB-Oracle">select EMP.EMPNO,EMP.ENAME,EMP.JOB,EMP.DEPTNO from EMP where (EMP.DEPTNO = $deptno) </bs:query-statement>

(18行目抜粋)

<bs:param name="$deptno">10</bs:param>

  • データベースへの接続情報をリソースとして 定義 定義名・・・【RDB-Oracle】
  • リソース【RDB-Oracle】を参照して、SQL を実 行
  • 検索条件を動的に変更させるため、アプリケーションから変更可能な変数を定義 変数名・・・【deptno】
  • データ型の定義 省略時は、取得したデータを文字列として扱う
  • ページレイアウトから参照可能なデータソース として設定