TOracleScript component

Properties                Methods                Events

Top  Previous  Next

Unit

Oracle

説明

TOracleScriptコンポーネントで、マルチSQL命令と共にSQLスクリプトを定義・実行できるようになります。 もしPL/SQLブロックでは使えないマルチ命令を実行する必要がある場合にこれは有効になってきます。 スクリプトのインストールがしばしばこの場合にあたります。スクリプトは通常多くのテーブル作成のためのDDL (Data Definition Language)命令、シーケンス、view, プログラムユニットなどを含みます。

スクリプトを定義

TOracleScriptLinesプロパティは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

 

出力

ToracleScriptOutputプロパティを持っており、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 イベントも引起します。それは具体的に扱うことができるものです。 実行後、それぞれのコマンドのErrorCodeErrorMessage プロパティをチェックすることが出来ます。

スクリプトの機能拡張

ToracleScriptコンポーネントの標準機能がアプリケーションに対して十分出ない場合、OnCommand, AfterCommandOnData イベントを使って、全てのもしくは特定のコマンドに対して独自の処理を行うことが出来ます。