Tips!
 

■対象バージョン : Adaptive Server Anywhere 6.0、7.0

■対象OS    : Windows95/98/ME ,WindowsNT/2000

ST0105010

JAVAのストアド・プロシージャとストアド・ファンクションの利用

Tips!

【JAVAのストアド・プロシージャ】

JAVAのクラスを作成して,CENTRALにて登録してし、ISQLにて内容を確認する。
実際の実行では下記コマンドを発行する。

 CALL プロシージャ名.main(パラメータ)

(登録と確認の例) JDK1.3の環境を使用しています

  1. Javaソースの作成
  2. 以下の内容でSample.java を作成する。

    ----------------------------------------------------------
       import java.util.Vector;
       import java.lang.*;
       public class Sample{

       //Fields
         Vector vector = new Vector();

         static public String main(String args[]){
         java.lang.String str="サンプル";

         System.out.print(str);
         return str;
         }
       }
    ----------------------------------------------------------

  3. Javaソースのコンパイル
  4. コマンド・プロンプトにて以下のコマンドを実行し、Javaソースをコンパイルします。
    これによりSample.classファイルが作成されます。

    javac Sample.java

  5. Databaseへのclassの登録
  6. Sybase Centralでクラスを登録するDatabaseへ接続し、「Javaオブジェクト」−「JavaクラスまたはJARの追加」で作成したJavaクラス Sample.classを追加します。

  7. ISQLにての内容確認
  8. ISQLにて上記3)でクラスを追加したDatabaseに接続し、以下のSQLを実行する。

         SELECT Sample.main()

         結果として サンプル という文字が表示される。

【Javaのストアド・ファンクション】

Javaのファンクションクラスを作成して,CENTRALにて登録してし、ISQLにて内容を確認する。

  1. Javaファンクションクラスの作成
  2. 以下の内容でSample.java を作成する。

    ----------------------------------------------------------
       import java.lang.*;
       public class Counter{

       //Fields
         Vector vector = new Vector();

         static public String main(String args[]){
         java.lang.String str="サンプル";

         System.out.print(str);
         return str;
         }
       }
    ----------------------------------------------------------

  3. Javaソースのコンパイル
  4. コマンド・プロンプトにて以下のコマンドを実行し、Javaソースをコンパイルします。
    これによりCounter.classファイルが作成されます。

    javac Counter.java

  5. Databaseへファンクションとして登録する。
  6. ISQLから以下のSQLを実行する。

        CREATE FUNCTION getCount() RETURNS INTEGER
               EXTERNAL NAME 'Counter.getCount() return int'

  7. ISQLにての内容確認
  8. ISQLにて上記3)でファンクションを追加したDatabaseに接続し、以下のSQLを実行する。

       SELECT Counter.getCount();

    結果として計算結果1が表示される。実行ごとに1づつカウントアップされる。


BACK:Tips! トップページ
 
 
Copyright 2005-2010 iAnywhere Solutions K.K.