|
TOracleScript component |
Top Previous Next |
|
Unit 説明 TOracleScriptコンポーネントで、マルチSQL命令と共にSQLスクリプトを定義・実行できるようになります。 もしPL/SQLブロックでは使えないマルチ命令を実行する必要がある場合にこれは有効になってきます。 スクリプトのインストールがしばしばこの場合にあたります。スクリプトは通常多くのテーブル作成のためのDDL (Data Definition Language)命令、シーケンス、view, プログラムユニットなどを含みます。 スクリプトを定義 TOracleScriptのLinesプロパティはSQLスクリプトのプレーンテキストを含んでいます。 これはSQL*Plusの基本文法ルールに従います。 PL/SQLセクションを含んでいなければSQL命令はセミコロンかスラッシュで区切られます。PL/SQLセクションを含んでいる場合はスラッシュを終端とします (PL/SQL自身がセミコロンを含みます)。 次のサンプルはテーブルとプロシージャーを作ります: -- drop the dept table if it already exists drop table dept;
-- create the dept table create table dept ( deptno number(4) not null, dname varchar2(14) not null, loc varchar2(13) );
-- create the deptcount function create or replace function deptcount return integer as result integer; begin select count(*) into result from dept; return(result); end; /
スクリプトを定義する最も簡単な方法は設計時にコンポーネントエディタを使います。ToracleScriptインスタンスをダブルクリックして、テキストをタイプします。 テストするためにエディタ内ですぐに実行でき、 出力をみることができます (もし可能なら)。 エディタ上部の対応するタブを選択することによってスクリプトとcommandsページを切り替えることが出来ます。 コマンドページでは、ビューはシングルcommandからスクリプトに制限され、実行ボタンを押すことはそのコマンドを実行します。 このページでは、コマンドの追加・削除が出来、コマンドを通じてナビゲートできます。.コマンドページで変更を行うとスクリプトページに反映され、逆も同じです。 Non-SQL commands 全てのSQLコマンドのほかに、次のnon-SQL commandsがあります: CONNECT Username/Password@Database DEFINE Variable=Value EXIT PAUSE Message PROMPT Message QUIT REMARK Comment SET Option ON|OFF (Option = ECHO | EXITONERROR | FEEDBACK | SCAN | TERMOUT) SET COLWIDTH Value UNDEFINE Variable これらのコマンドはSQL*Plus 内の同じ関数を実行し、TOracleScriptインスタンスの相当するプロパティを設定します。スクリプトでは、セミコロンで区切られる必要はありません。次のスクリプトはscottとして接続し、deptテーブルを落とします: connect scott/tiger pause About to drop table dept... drop table dept; prompt Table DEPT has been dropped
出力 ToracleScriptはOutputプロパティを持っており、Tstringsで実行されたコマンドによって生成された出力ラインを含んでいます。OutputOptionsプロパティで正確にどんな情報がOutputに書き込まれるかを制御できます。 これはコマンドテキスト自身、フィードバック、エラー、そしてリザルトデータに適用されます。OnOutput イベントを通じて明示的に出力をキャプチャーできます。 代用変数 ちょうどSQL*Plusでのように、スクリプトをカスタマイズ可能にするために代用変数を使うことが出来ます。SetVariable プロシージャーを使って変数の値を設定し、アンパサンドを変数名の前につけることによってスクリプトの中で使うことが出来ます。 例えば、もしエンドユーザーがテーブルの初期サイズを指定できるとすると、スクリプトはこのようになります: -- create the dept table create table dept ( deptno number(4) not null, dname varchar2(14) not null, loc varchar2(13) ) storage(initial &initial_size M);
initial_size変数はSetVariableプロシージャーを通じて設定されます: MyScript.SetVariable('initial_size', '10');
エラーハンドル 個々のSQL命令はエラーを引き起こす可能性があります。ExitOnErrorプロパティを使って、エラー以後スクリプトの実行を止めるかどうかをコントロールできます。 SQLエラーはOnError イベントも引起します。それは具体的に扱うことができるものです。 実行後、それぞれのコマンドのErrorCodeとErrorMessage プロパティをチェックすることが出来ます。 スクリプトの機能拡張 ToracleScriptコンポーネントの標準機能がアプリケーションに対して十分出ない場合、OnCommand, AfterCommandとOnData イベントを使って、全てのもしくは特定のコマンドに対して独自の処理を行うことが出来ます。 |