PostgreSQL

Haskell で PostgreSQL のドライバを書く

Haskell で PostgreSQL のドライバを書いてみました。C を使わないでも出来ました。 参考にしたところ PostgreSQL 文書 / IV. クライアントインタフェース / 第 31章libpq - C ライブラリ PostgreSQLで作るLinuxデータベース(3)PostgreSQLをプログラムで操…

Haskell で PostgreSQL を扱う:「遅延読み込み」

前回は connectPostgreSQL でコネクションを確立して quickQuery'で読み出しましたが、今回は prepare を使った読み出しです。 SQLの「PREPARE で SQL を準備し、EXECUTE によりパラメータのみの実行」に相当します。 -- ghc --make -o sel -LC:\PostgreSQL\…

Windows 環境にて Haskell から PostgreSQL を扱う

Real World Haskell:21 データベース操作を参考に PostgreSQL をテストしてみました。 PostgreSQL の最新バージョンは 9.0.1 ですが、そのままでは connectPostgreSQL を実行した時点で krb5_32.dll がないと言われます。ファイルの中味を確認すると9.0.1-1…

PREPARE で SQL を準備し、 EXECUTE によりパラメータのみの実行。

「まつもとゆきひろコードの世界」の「11章 セキュリティについて」の中で SQL インジェクション対策として、パラメータを外部から与えて実行する例が掲載されています。 SQL インジェクション対策でなくても SQL の組み立て実行が分離され、都合が良さそう…

Gauche DBI(Postgresql) の NULL は "" を返す。

Gauche DBI(Postgresql) の NULL は "" を返す。 (use dbi) (use gauche.collection) (define (select-db dbname sql) (guard (e ((<dbi-error> e) (raise e))) (let* ((conn (dbi-connect (string-append "dbi:pg:dbname=" dbname))) (result (dbi-execute (dbi-prepar</dbi-error>…

Gauche で DBI(Postgresql)

まず、Postgresql のドライバを入れる。 $ wget http://www.kahua.org/download/dbi/Gauche-dbd-pg-0.2.1.tgz $ tar zxf Gauche-dbd-pg-0.2.1.tgz $ cd Gauche-dbd-pg-0.2.1 $ ls $ lv README $ which pg_config /usr/bin/pg_config $ rpm -qf /usr/bin/pg_c…

ERROR: character 0xf9f5 of encoding "EUC_JP" has no equivalent in "UTF8"

PostgreSQL から pg_dump した EUC_JP のファイルを UTF8 の PostgreSQL に読み込ませるとエラーになる。 ●文字コード表(EUC-JP) [12836/12836] - [技術資料] ぺんたん info http://pentan.info/doc/euc_list2.html F9F5 FAB1 EFA891 FA11 粼 &#64017; FACB …

Haskell で PosygreSQL(3)

オライリーから発売されるReal World Haskellを日本語に訳すページ 21. データベース操作 -- ghc --make -o sel -LC:\PostgreSQL\8.4\lib select.hs import IO import Database.HDBC import Database.HDBC.PostgreSQL main = do conn <- connectPostgreSQL "…

Ubuntu に入ってるPostgreSQL のデフォルトポートは5433

/etc/postgresql/8.3/main/postgresql.conf (snip) #------------------------------------------------------------------------------ # CONNECTIONS AND AUTHENTICATION #-----------------------------------------------------------------------------…