3.1.2.9 jdbc_query要素

jdbc_query要素はテーマの動的定義に使用されます。この要素と関連する<hidden_info>要素には、次の定義が含まれます:

<!ELEMENT jdbc_query (#PCDATA, hidden_info?)>
<!ATTLIST jdbc_query
  asis (TRUE|FALSE) "FALSE"
  spatial_column CDATA #REQUIRED
  key_column CDATA #IMPLIED
  label_column CDATA #IMPLIED
  label_style CDATA #IMPLIED
  render_style CDATA #IMPLIED
  x_column CDATA #IMPLIED
  y_column CDATA #IMPLIED
  datasource CDATA #IMPLIED
  jdbc_host CDATA #IMPLIED
  jdbc_port CDATA #IMPLIED
  jdbc_sid CDATA #IMPLIED
  jdbc_user CDATA #IMPLIED
  jdbc_password CDATA #IMPLIED
  jdbc_srid CDATA #IMPLIED
  jdbc_mode (thin|oci8) "thin"
>
<!ELEMENT hidden_info (field+)>
<!ELEMENT field (#PCDATA)>
<!ATTLIST field
  column CDATA #REQUIRED
  name CDATA #IMPLIED
>

テーマを動的に定義するには、<jdbc_query>要素の内容として有効なSQL問合せを指定する必要があります。spatial_column (SDO_GEOMETRY型の列)および動的に定義されるテーマのJDBC接続情報(datasource、またはjdbc_host、jdbc_port、jdbc_sid、jdbc_userおよびjdbc_passwordの組合せのいずれか)を指定する必要があります。<theme>要素のselectable_in_svg属性値がTRUEである場合、JDBC問合せから選択された各地物を一意に識別できる列名を指定するには、<jdbc_query>要素のkey_column属性を使用する必要があります。指定した列は、JDBC問合せのSELECT構文のリストにも表示される必要があります。

render_styleおよびlabel_styleはオプション属性です。render_styleでは、ポイント地物のデフォルトは45度回転した赤の十字形で、線および曲線のデフォルトは1ピクセル幅の黒い線、ポリゴンのデフォルトは内側が半透明のダークグレーである黒い枠線です。

x_columnおよびy_columnはオプション属性です。これらの属性を指定すると、表内の2つの列に基づいてポイントJDBCテーマを定義するのに使用されるため、MapViewerでは、こうした列の値に基づいてポイント・テーマをレンダリングできます。詳細は、「2つの列に基づくポイントJDBCテーマの定義」を参照してください。

jdbc_sridは、レンダリングするデータの座標系(SDO_SRID値)を指定するオプション属性です。

jdbc_modeは、データベースへの接続に使用するOracle JDBCドライバ(thinまたはoci8)を識別します。

asisはオプション属性です。この属性をTRUEに設定すると、MapViewerでは指定された問合せ文字列が変更されません。asisがFALSE (デフォルト)の場合、MapViewerによってSQL問合せが空間フィルタ問合せの副問合せとして埋め込まれます。たとえば、中心が(-122, 37)でサイズが1のマップを表示する場合、指定する問合せは次のようになります: SELECT geometry, sales FROM crm_sales WHERE sales < 100000;

asisがFALSEの場合、MapViewerにより実行される実際の問合せは次のようになります:

SELECT * FROM
(SELECT geometry, sales FROM crm_sales WHERE sales < 100000)
WHERE sdo_filter(geometry, sdo_geometry(. . . -122.5, 36.5, -123.5, 37.5. . . ) ='TRUE';

つまり、現在のマップ・ウィンドウを使用した空間フィルタ問合せによって、元の問合せがさらに詳細化されます。ただし、asisがTRUEの場合は、次のようにMapViewerによって指定どおりに問合せが実行されます: SELECT geometry, sales FROM crm_sales WHERE sales < 100000;

<hidden_info>要素は、テーマの地物の上にマウスを動かしたときに表示される実表の属性リストを指定します。属性は、<field>要素のリストで指定します。各<field>要素には、column属性を含める必要があります。この属性は実表の列名を指定します。また、列の表示名を指定するname属性を使用できます。(name属性は、列名以外のテキスト文字列を表示する場合に便利です。)

<jdbc_query>要素を使用してテーマを動的に定義する方法の例は、例3-2および例3-4を参照してください。