non vorrei lavorare

ブログ名の通りです。javascript three.js mruby rust OCaml golang julialang blender

OSXで最速でOCamlでPostgresqlに接続するには

おはようございます。今週は月曜日と水曜日、そして週末も長男を耳鼻科に通わせているkjunichiです。次男は先週ようやく、命名式を行いました。

 

前提

HomeBrew でbashを使用

準備

brew update
brew install opam
opam init
opam install utop
opam install postgresql-ocaml

HomeBrewでopamを入れたら、opam initの他にもあれこれ指示されるが、シカトしても大丈夫そう。 最近はopam initが面倒を見てくれる模様。

opan initで.profileを.bash_profileに変更するのが吉と思われ (自分は.profileのまま進めて、あとで.bash_profileに追加内容を貼り付けた。)

postgresというパッケージもあるので注意!

PostgreSQLに接続する。

utopを起動する

utop

OCamlPostgreSQLに接続

#use "topfind";;
#thread;;
#require "postgresql";;
open Postgresql;;
let c1 = new connection ~dbname:"dbname" ~host:"hostname" ~user:"foo" ();;

以降のヒント

Fedoraの掲示板で見つけたソースの一部です。

let query = "SELECT name,distro FROM userinfo WHERE gui = $1 ORDER BY name";;
let rs = conn#exec ~expect:[Tuples_ok] ~params:[|Sys.argv.(1)|] query;;
conn#finish;;
Printf.printf "Number of matches: %d\n%-20s| %s\n%s\n" rs#ntuples "User" "Distro" (String.make 35 '-');;
for i = 0 to rs#ntuples - 1 do
   let row = rs#get_tuple i in
   Printf.printf "%-20s| %s\n" row.(0) row.(1);
done;;

関連リンク

関連記事

2年前の記事