とみたです。 On Fri, 13 Jun 2008 09:54:19 +0900 adgjmptw / super-r.net wrote: > MySQLのマニュアルを読むと > http://dev.mysql.com/doc/refman/4.1/ja/mysql-sqlstate.html > #マニュアルから抜粋 ------------------------ > > 11.1.3.52. mysql_sqlstate() > この関数は MySQL 4.1.1 で追加されました。 > > #抜粋ここまで ------------------------------ > とあります。 > > 私が使っているMySQLは4.0.9なので、mysql_sqlstate()が無いはず。 > C:\mysql\bin\libmySQL.dll の中身をDependency Viewerで確認したところ、確 > かにmysql_sqlstateのエントリがありませんでした。 MySQL/Ruby はコンパイル時に mysqlclient ライブラリのバージョンを見て使 える関数を判断しています。たとえばこんな感じ… --------------------------------------------------------- #if MYSQL_VERSION_ID >= 40101 /* sqlstate() */ static VALUE sqlstate(VALUE obj) { MYSQL *m = GetHandler(obj); return rb_tainted_str_new2(mysql_sqlstate(m)); } #endif --------------------------------------------------------- なので、4.1.x 環境で作成した MySQL/Ruby を 4.0.9 で動かそうとしているの ではないかと思います。 古いバージョンで作成した MySQL/Ruby を、新しいバージョンの MySQL 環境で 動かしたら多分動くと思いますが、その逆はダメだと思います。 -- とみたまさひろ <tommy / tmtm.org> 3469 42CC 4D32 F53C AD98 65A5 8C37 FF09 69C1 6040