旧・無印吉澤

昔はてなダイアリーに書いていた記事のアーカイブです

連休の過ごし方

切ないことに、連休中はずっと自室で作業してました。土曜は、以前失敗したUSAGIのインストールを再度試み、コンパイルまでは無事成功したものの……出来たカーネルは起動時にカーネルパニックを起こすどうにもならない代物で、結局問題は解決せずに終了。

そして日曜と月曜(今日)は、(仕事で使うのでやむなく)C言語からPostgreSQLサーバ上のデータを操作するための方法を探ってました。候補としてはlibpqライブラリを使う方法と、埋め込みSQLを使って書いたコードをecpgというコマンドでCのコードに変換する方法があったので、とりあえず両方でSELECT文の処理を書いてみてテスト*1

で。検討の結果、実際のアプリケーションはとりあえずecpgを使って書いてみることにしました。ecpgだと、例えばC言語のコードに直接

EXEC SQL SELECT str INTO :str FROM table1 WHERE id = :id;

こんな風にSQL文を書くだけで要素を取り出せるのでわかりやすいし、ecpgで出来てlibpqで出来ないことはあまり見あたらなかったので。

ただ、どっちの方法もバイナリデータのやりとりに難があって(方法が分かってないだけかも)、それを早めに解決しないと今後の作業に思いっきり支障がありそうな予感が……。

(おまけ)連休中にみつけたecpgの罠を以下に紹介しときます。

*1:libpqもecpgも、RedHat Linux 9.0の「SQLデータベースサーバ」を選択しただけではインストールされません。別途postgresql-devel-7.3.2-3.i386.rpmをインストールする必要あり