CentOSサーバに、PostgreSQLをインストールしていたのだが、後輩から、”ecpgってコマンドが見つからないです”って言われて、調べてみたけど、インストールされていないようです。

そもそも、ecpgtって何よ?

ググって見たら、C プログラムに SQL を埋め込むプリプロセッサであることを知りました。

それで、Postgresql-serverのパッケージには入っていないらしく、Postgresql-develを入れろ!との指令が。

#> yum -y install postgresql-devel

ecpg 入ったよ。

SQL を C プログラムから呼び出すには,

exec sql xxx;

というように “exec sql” というキーワードを用いる.

基本的にデータベースとのやりとり以外は通常の C プログラミングと何ら変わりはなく,

データベースとの

  • 通信の ON/OFF
  • データの授受

といった部分に上記の「exec sql」を用いる.ただし,これらの命令を利用するため

exec sql include sqlca ;

というヘッダの読み込み命令を書いておき,いったんプリプロセッサ ecpg を通す必要がある.

つまり,そのソースの拡張子を .pgc として

*.pgc —(プリプロセッサecpg)—> *.c —(Cコンパイラ ) —> バイナリ

という流れでアプリケーションを作成することになる.

ちなみに、Debian,Ubuntu系では、postgresql-develは用意されていないから、libecpg-devを入れれば良い。

同時に、compat3,libecpg6もインストールされる。