スケーラブルデータベースサーバ HiRDB Version 8 UAP開発ガイド

[目次][索引][前へ][次へ]

19.3.12 スタンダードインタフェース版からネイティブインタフェース版への移行

スタンダードインタフェース版からネイティブインタフェース版へSQLJソースを移行する場合,修正が必要になる部分があります。ネイティブインタフェース版に移行した場合の修正要否を次の表に示します。

表19-9 スタンダードインタフェース版からネイティブインタフェース版へ移行した場合の修正要否

コマンド名 スタンダードインタフェース版 ネイティブインタフェース版 修正の要否
UAP(入力)ソース ファイル名.sqlj 同じです。 −
UAP(出力)ソース JAVAソースファイル名.
javaプロファイル名.ser
JAVAソースファイル.java −
オプション 出力ファイル名指定など 同じです。 −
SQL先頭子 #sql 同じです。 −
SQL終了子 ; 同じです。 −
SQL宣言節 不要です。 同じです。 −
埋込み変数 :変数名 同じです。 −
宣言文 #sql context クラス名
#sql iterator クラス名
同じです。※1 −※2
接続コンテキストの作成 パラメタにJDBC接続オブジェクトを指定できます。 同じです。 −
パラメタにJDBC接続オブジェクト以外を指定できます。 同じパラメタを取得するものはありません。 ○※3
デフォルト接続コンテキストの使用 JP.co.Hitachi.soft.HiRDB.sqj.runtime.
PrdbContext
JP.co.Hitachi.soft.HiRDB.pdjpp.runtime.
PrdbContext
○※4
実行コンテキストの明示指定 sqlj.runtime.ExecutionContext JP.co.Hitachi.soft.HiRDB.pdjpp.runtime.
ExecutionContext
○※5
CAST文の使用(JDBC結果セットの受け取り) 実行できます。 実行できません。 ○※6
動的結果セットの受け取り 実行できます。 実行できません。 ○※7
データ型 byte[]
java.math.BigDecimal
java.lang.String
JP.co.Hitachi.soft.HiRDB.pdjpp.runtime.
HiRDBBLOB
JP.co.Hitachi.soft.HiRDB.pdjpp.runtime.
HiRDBDECIMAL
JP.co.Hitachi.soft.HiRDB.pdjpp.runtime.
HiRDBCHARなど
○※8
同一反復子オブジェクト名を使用した異なるSELECT文の実行 実行できます。 実行できません。 ○※9

(凡例)
○:修正する必要があります。
−:修正する必要はありません。

注※1
名前反復子は使用できません。また,位置反復子を使用した場合は,インナークラスには使用できません。

注※2
名前反復子を使用する場合,及びインナークラスを使用する場合は,修正が必要となります。

注※3
接続処理を変更してください。詳細については,「19.3.7(1)(d)ネイティブインタフェース版を使用した場合のHiRDBサーバへの接続」を参照してください。

注※4
パッケージ名のJP.co.Hitachi.soft.HiRDB.sqj.runtime.PrdbContextをJP.co.Hitachi.soft.HiRDB.pdjpp.runtime.PrdbContextに変更してください。

注※5
sqlj.runtime.ExecutionContextをJP.co.Hitachi.soft.HiRDB.pdjpp.runtime.ExecutionContextに変更してください。

注※6
CAST文はトランスレート時にエラーとなります。そのため,CAST文は削除してください。また,JDBCの結果セットは,SQLJの反復子を使用しないで直接操作するようにUAPを変更してください。

注※7
動的結果セットを受け取るためのメソッドがないため,javaコンパイル時にエラーとなります。そのため,ExecutionContext.getNextResultSet()を発行している部分を削除してください。なお,動的結果セットを取得したい場合は,JDBCを直接使用するようにUAPを変更してください。

注※8
byte[]は,BINARY型としてHiRDBサーバに要求します。HIRDBサーバのバージョンが06-02以前の場合に変更が必要です。
BigDecimal型を受け取り変数に指定している場合は,精度15,位取り0が設定されるため,それ以外の精度,位取りのときは変更が必要です。
Stringを入力変数に使用した場合,VARCHAR型としてHiRDBサーバに要求します。データ型をHiRDBサーバのデータ型に対応させたい場合は,変更が必要です。

注※9
同一の反復子オブジェクト名を使用して,異なるSELECT文を実行することはできません。この場合,SELECT文ごとに,反復子オブジェクト名を分ける必要があります。例を次に示します。
 
#sql iterator pos(HiRDBCHAR(10));
   :
pos positer = null
pos positer2 = null;
HiRDBCHAR out = null;
   :
#sql positer = {SELECT * FROM T1};
#sql {FETCH :positer INTO :out}
positer.close();
 
#sql positer2 = {SELECT * FROM T2};
#sql {FETCH :positer2 INTO :out}
positer2.close();