弁財天

ゴフマン「専門家を信じるのではなく、自分自身で考えて判断せよ」

配列でまとめて更新機能

HiRDBを使い続けさせるためにSQL操作に細工がしてある
移植を困難にすれば、ユーザはHiRDBを使い続けるしかなくなる

これ 配列に設定した50行分のデータを,在庫表に一括して挿入します
    EXEC SQL BEGIN DECLARE SECTION;
short XINSERT_NUM;
long XSCODE[50];
short ISCODE[50];
char XSNAME[50][17];
short ISNAME[50];
EXEC SQL END DECLARE SECTION;
:
各変数配列の要素に値を設定
:
XINSERT_NUM = 50;
EXEC SQL FOR :XINSERT_NUM
INSERT INTO ZAIKO(SCODE,SNAME)
VALUES (:XSCODE:ISCODE,:XSNAME:ISNAME);

 

配列を使って一括更新

http://133.145.224.19/Prod/comp/soft1/manual/pc/d635740/W3570206.HTM#A1308
EXEC SQL BEGIN DECLARE SECTION;
short XUPDATE_NUM;
char XSCODE[5][5];
short ISCODE[5];
long XZSURYO[5];
short IZSURYO[5];
EXEC SQL END DECLARE SECTION;
・・・各変数配列の要素に値設定・・・
XSCODEに{'101M','101L','201M','202M','302S'}を設定
XZSURYOに{35,62,13,10,6}を設定
XUPDATE_NUM = 5;
EXEC SQL FOR :XUPDATE_NUM
UPDATE ZAIKO SET ZSURYO = :XZSURYO:IZSURYO
WHERE SCODE = :XSCODE:ISCODE;

http://133.145.224.19/Prod/comp/soft1/manual/pc/d635740/W3570180.HTM#A1200
XDELETE_NUM = 5;
EXEC SQL FOR :XDELETE_NUM
DELETE FROM ZAIKO
WHERE SCODE = :XSCODE:ISCODE;

 

JDBCの拡張機能 java.sql.Array

#Type4 JDBC ドライバ強化
#
#要望が高かったArrayインタフェースやCallableStatementインタフェース、SQLエスケープ構文といった基本機能のサポートに加え、XDM/RD E2からの接続機能をサポートしました。
#XDM/RD E2からの接続機能によりuCosminexus Application Serverからメインフレームへの接続が可能になります。

 

JDBCドライバ拡張
配列パラメータを持つプロシージャで解決するとか

しかし、時代は変わりOracleもPostgreSQLも配列型をサポート

Oracleのドライバもjava.sql.Arrayに対応してる

oracle.sql.ARRAYクラスは、標準のjava.sql.Arrayインタフェースを実装します。
そのまま移行できてしまう

 

JDBC規格
JDBC 2.0 APIからARRAY列に対応したが、ドライバの実装に依存する
JDBC 3.0 APIからARRAY列を使った更新メソッドが追加された
http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/jdbc/getstart/appendixB.html

#BLOB、CLOB、ARRAY、REF の型を含む列の更新
#
# updateBlob、updateClob、updateArray、updateRef の各メソッドが ResultSet インタフェースに追加されました。
#

 

PostgreSQLは7.4から「ARRAY」をサポート。最新は8.4

投稿されたコメント:

コメント
コメントは無効になっています。