ティアンドトラスト Blog

技術情報に関して更新します。(月1更新予定)

2018年9月3日月曜日

SQLCLI について(RPGLEでSQLCLIを使用するには)

0 件のコメント :

RPGLESQLCLIを使用する場合、多種あるSQLCLI用のAPIを、使用する機能に合わせて呼び出します。
呼出しは、プログラムの動的呼び出し(CALL命令)ではなく、サブ・プロシージャ呼出しと同じように呼び出します。

すなわち、値を返すAPIを使用して、その値をメイン・プロシージャで使用する時は、EVAL命令、あるいは条件判断命令(IFDOWなど)で呼出し、返される値が不要な場合、CALLP命令で呼び出します。

RPGLEでサブ・プロシージャを呼び出す時に必要なものが、「プロトタイプ定義」と言われる、外部名、戻り値のタイプ/桁数、必要なパラメータの順番と個数とそれぞれのタイプ/桁数を定義したものになります。
1つのモジュール内で、メインとサブ・プロシージャを記述する時は、サブ・プロシージャ側に「プロシージャ・インターフェース定義」がありますので、プロトタイプ定義はオプション(IBM i V6以前のバージョンでは必須)になりますが、SQLCLIを使用する時は、別のモジュールやサービス・プログラムを使用する場合と同様にプロトタイプ定義が必須になります。

2018年8月1日水曜日

SQLCLI について(SQLCLI の特徴2)

0 件のコメント :

SQLCLIを使用すれば、ソケット通信と組み合わせて、クライアントからのSQL要求を汎用的に処理するサーバ側RPGLEソフトウェアも作成することができます。

2018年7月2日月曜日

SQLCLI について(SQLCLI の特徴)

0 件のコメント :

1. 全てのSQL文を、高水準言語から動的呼び出しで使用できる
2. 高水準言語への組み込みSQLに比べて、効率が良い(と言われている)
3. RUNSQLコマンドなどの直接SQL文実行ではできない「カーソル処理」ができる(要するにdeclare cursorselect文に続くfetch処理ができる)
4. SQL文の中にパラメータ・マーカ(置換変数)を指定することができ、パラメータの文字/数字などの属性値に従って適切に埋め込まれる
5. プログラム固定情報値としてあらかじめ準備されたSQL文だけでなく、実行時にSQL文を変数で与えることができる。(例えば、画面から入力されたSQL文を検査して、実行することも可能)
6. SQL文の実行環境も、サーバ・モードとジョブ・モードの設定ができる
7. トランザクション制御を使用する/しないの設定ができる(省略時値はトランザクション制御必須)

などが挙げられます。



高水準言語への組み込みSQLでは、カーソル定義とホスト変数を使用してのカーソル処理そのものは可能ですが、組み込んだSQL文を、いったん動的呼び出しに変換するために「プレ・コンパイラー」を通して一時的な言語ソースに変換する必要があります。SQLCLIでは、直接動的呼び出しをコーディングするので、プレ・コンパイルの必要は無く、高水準言語は、パラメータとして指定したプログラム変数を使用して直接DB2とのやり取りを行います。

2018年6月1日金曜日

SQLCLI について(はじめに)

0 件のコメント :

あちこちで表現されている通り、IBM i には標準でリレーショナル・データベースであるDB2が組み込まれています。

2018年5月7日月曜日

RPGLEでのSSL通信(2)

0 件のコメント :
サーバ認証さえクリアすれば、あとはIBM i のSSL通信機能が、APIを呼び出すだけで勝手にネゴシエーション(SSL Handshake)して、最も高い改ざん防止と暗号化を決定してくれるので、簡単にSSL通信を行うことができます。
ネゴシエーションに関しては、システム値でも制御できますが、テストではシステム提供の省略値をそのまま使用しました。

2018年4月2日月曜日

RPGLEでのSSL通信(1)

0 件のコメント :
以前に、RPGLEでのソケット通信について書いた覚えがあります。
IBM i のUNIX APIをRPGLEのサブプロシージャにカプセル化して、RPGLEのプログラムで利用できるようにしました。
今では、弊社のT-Socket-iとして提供されているソリューションです。

2018年1月8日月曜日

~番外編 (APPC通信プログラムのテスト用に)~
IBM i のSNA通信(APPCプログラミング編)

0 件のコメント :
1台のIBM i で起動側、受動側のAPPC通信プログラムを作成してテストすることもできます。以前に「システム内通信(INTRA)」の稿を投稿したことがありましたが、それと同様な機能に「ローカルAPPC通信構成」があります。システム内通信では、送信・受信バッファは使用されませんでしたが、ローカルAPPC通信構成では、APPCのバッファ管理が有効になります。また、システム内通信では「同期会話」は使用できませんが、ローカルAPPC通信構成では使用することができます。