myintcl - Tcl のみで書かれた MySQL インターフェイス [Tcl]
Tcl のみで実装された MySQL インターフェイスの myintcl [1] というのを2年前くらいに作り始めて、ちょっとだけ作ってずっとそのままだったのを思い出したのでちょっと頑張ってコードを書いて、最低限のことができるようになったのでアルファ版としてリリースした。
API は大体 fbsql [2] を参考にしていて、以下のように使う。
package require myintcl
namespace import myintcl::*
sql connect localhost root password test
sql query {insert into address values('Jane Dowe', '123-45 Tokyo, Japan')}
puts "affected rows: [sql numrows]"
foreach row [sql query {select name,address from address}] {
puts "Name: [lindex $row 0], Address: [lindex $row 1]"
}
puts "selected records: [sql numrows]"
sql disconnect
C ライブラリにバインディングしないでソケット通信だけで MySQL を触るというのは Perl [3] や Ruby [4] でも同様のモジュールがあるが、いずれも日本人が作っている。
作成に際しては Perl 版の実装と [5] のサイトの「MySQLプロトコル詳説 - PerlからみたMySQLの通信プロトコル」の発表スライドを参考にした。ただし後者はもう情報が古くなっているようで実際と一致しない部分もあった。
なお myintcl という名称は同様に pure Tcl で PostgreSQL インターフェイスを実装した pgintcl [6] に倣っている。
日本語についてはまだあまりちゃんと考えて作ってありません。
追記: リリースした tar.gz ファイルが 0 バイトになってしまっていたのを修正しました。
[1] http://sourceforge.jp/projects/myintcl/
[2] http://www.fastbase.co.nz/fbsql/index.html
[3] http://search.cpan.org/~oyama/Net-MySQL-0.09/MySQL.pm
[4] http://www.tmtm.org/ruby/mysql/
[5] http://shibuya.pm.org/blosxom/techtalks/200301.html
[6] http://pgintcl.projects.postgresql.org/
コメント 0