気の向くままに辿るIT/ICT/IoT
SQL用API

Pro*C

ホーム前へ次へ
Pro*Cとは?

Pro*C

Pro*Cとは

 Pro*Cは、C言語からOracleデータベースへアクセスする為の埋め込みタイプのSQL実装方式でプリコンパイラである実行ファイルprocによってCソースファイルが生成される仕組みになっています。

Pro*CとSQLの実装

 C言語やその他プログラミング言語においては、一般にSQLをサポートしておらず、静的ライブラリ参照によるプリコンパイル、動的ライブラリやAPI用ドライバを作成することによって実行時に参照する方式などによりSQLを実装しますが、Pro*Cでは、いわゆる「埋め込みSQL」という手法を利用し、Pro Cの書式で書かれたソースファイルをプリコンパイラprocでプリコンパイルして生成されるCソースファイルによってC言語でのSQL実装を実現しています。

 一般的にPro*Cを記述するファイルには拡張子[.pc]を付加し、ファイルをプリコンパイル(proc xxx.pc)すると[.c]ファイルが生成され、これによってC言語がSQLを含んだソースを解釈できるようになるので後はC言語の通常のソースと同じようにcc/gcc等でコンパイルできるようになります。

Pro*C include file

 Pro*Cソース[.pc]には、ヘッダファイル[sqlca.h]を、この他、どんなPro*Cソースファイルを作成するにしても最低でも[stdio.h]はincludeする必要があるでしょう。

Pro*Cの書き方

 [.pc]ソース内ではプリコンパイルする部分である事を表す「EXEC SQL」を使って変数、構造体などの宣言部[DECLARE SECTION]の[BEGIN](開始)と[END](終了)、データベースへの接続である[CONNECT]、データベースに命令を出すための[CURSOR FOR](カーソル)の[OPEN]/[CLOSE]、カーソルから結果セットのレコードを1レコードずつ取得するための[FETCH]、SQLの実行、[NOTFOUND]や[SQLERROR]などのエラー時の処理とその処理を実行する[DO]、取り消し[ROLLBACK](ロールバック)、確定[COMMIT](コミット)などを行います。

備考

 ほぼ同じ実装方式にデータベースSQL Server接続用の埋め込みSQLであるESQL/Cがあります。

ホーム前へ次へ