SQL文の指定パネル

1.レポートで使うSQL文(Select)

 下記は、WriteReportで使うSelectを使うSQL文を下記のように指定できます。
注意:Union文は、XCuteでのフィルターやソートを掛ける時は、下記のように入れ子にしてください。

ボタンで、SQL文にSelect * などとしていると列名を取り出せます。


注意: 「Select * From Table」のようなワイルドカード(*)を使ったときの弊害


ボタンで、データベースを変更することもできます。但し、変更先のデータベースにSQL文で指定したテーブルが存在しないと、当然エラーとなります。

ボタンで、つぎのパネルが開き、テーブル名をクリップボードへコピーできます。

2.EXT_SQL実行(値を返さないSQL文の実行)

 SQL文の指定パネルでは、WriteReportやReadReportに使うSelect文を指定するのが普通の使い方ですが、下記のようにDelete文など他の値を返さないSQL文を指定することも可能です。Select 以外のSQL文を指定するには、このパネルを最初に開けた時に、下記の(EXT_SQL機能)チェックボックスにチェックを入れ、Delete文などの値を返さないSQLを指定します。EXT_SQLのチェックをONにすると、EXT_SQLの実行ボタンが実行可能となり、これを押下して、下記のようにSQL文を試せます。
 ここで試したSQL文をExcelの中から実際に実行するのが、EXT_SQLコマンドです。

 なお、XCuteでは、データベースの排他制御 にTransaction機能を使いますが、別項を参照してください。

参照:EXT_SQLコマンド

3.EXT_SQLでのプロシージャなどの利用
 
データベースの種類によって、プロシージャなどの利用の仕方は異なります。
 値を返すプロシージャでは、SQLのSELECT文と同じように下記のように指定します。

 値を返さないプロシージャでは、まず下記のようにテストし、正しく動作することを確かめます。

実際に使うには、ひな型シートR3C8 以降のセルにEXT_SQLコマンドとして指定します。

上記は、MySQLでのテスト結果ですが、プロシージャの指定の仕方はDBによってかなり異なります。
 SQL Serverでは値を返すあるいは返さないプロシージャを作り、Exec dbo.PR_EMP 7900 などとと指定します。
 Oracleでは、Procedureなどは、CALL TINS(123,'ABCD')などとし、値を返すFunctionでは普通のSelect文で Select Func1(7900) From DUAL などと指定します。
 AS400のDB2では値を返さないプロシージャを、CALL PROC1(123,'ABCD') などと指定します。

参照
 ○各種データベース対応
 ○多国語対応(UTF-8)
 ○EXT_SQLコマンド
 ○DBの排他制御