ティアンドトラスト Blog

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

2018年10月1日月曜日

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

0 件のコメント :
RPGLE用のプロトタイプ定義は、SQLCLIのマニュアルに、コーディングに必要な記述がありますので、それを参考にして、あらかじめ作成しておき、「/COPY」ステートメントを使用して、RPGLEプログラムのソースにコピーするようにします。
これは汎用的なものですから、一度作成すればSQLCLIを利用するどのプロジェクトでも利用できると思います。

プロトタイプ定義を作成する時に、おそらく障害になるのが「SQL_」で始まるSQLCLI名前付き定数でしょう。
マニュアルにも「SQL_SUCCESS」とか「SQL_INTEGER_t」などの名前付き定数で書かれており、その値やタイプは判らないようになっています。
もっともこれは、バージョン・アップなどで値が変わっても、名前付き定数は変わらないように配慮しているのかもしれません。

IBM i では、この名前付き定数定義は、C言語用のプロトタイプ定義と併せて「QSYSINC/H.SQLCLI」にソース・メンバーとして提供されています。

私も、RPGLE用のプロトタイプ定義と名前付き定数の定義を作成する時に参考にしました。C言語でのデータタイプをRPGLE用のそれにマップするのに苦労した覚えがあります。何せ、C言語の知識は、よちよち歩き状態ですから(笑)。

このような紆余曲折もあって、何とかRPGLE用のプロトタイプ定義と名前付き定数定義を作成し、UTF-16用のAPIに対応していない、BLOBCLOBに対応していないなどの問題は含んでいますが、現在RPGLEプログラムで使用するに至っています。