%PDF- %PDF-
Direktori : /home/rs/ruby/1.8/lib/ruby/gems/1.8/gems/mysql-2.9.1/extra/ |
Current File : /home/rs/ruby/1.8/lib/ruby/gems/1.8/gems/mysql-2.9.1/extra/README_ja.html |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!-- $Id: README_ja.html 250 2010-02-11 10:42:54Z tommy $ --> <html> <head> <meta http-equiv="content-style-type" content="text/css"> <link rel=stylesheet type="text/css" href="tommy.css"> <link rev=made href="mailto:tommy@tmtm.org"> <title>MySQL/Ruby</title> </head> <body> <h1>MySQL/Ruby</h1> <p><a href="README.html">[English]</a></p> <hr> <p> これは <a href="http://www.mysql.com">MySQL</a> の Ruby API です。MySQL の C API とほぼ同等の機能があります。 </p> <h2>ダウンロード</h2> <ul> <li><a href="http://rubyforge.org/frs/?group_id=4550">RubyForge</a> <li><a href="http://tmtm.org/downloads/mysql/ruby/">tmtm.org</a> </ul> <h2>必要なもの</h2> <ul> <li>MySQL 5.0.67 <li>Ruby 1.8.7, 1.9.1 </ul> <p> これら以外でも make できるかもしれませんが、確認してません。 </p> <h2>ライセンス</h2> <p> このプログラムは <a href="http://www.ruby-lang.org/ja/LICENSE.txt">Ruby ライセンス</a> に従います。 </p> <h2>インストール</h2> <p> 次を実行してください。 </p> <pre class="code"> % ruby extconf.rb </pre> <p> または </p> <pre class="code"> % ruby extconf.rb --with-mysql-dir=/usr/local/mysql </pre> <p> または </p> <pre clas="code"> % ruby extconf.rb --with-mysql-config </pre> <p> それから </p> <pre> % make </pre> <p> extconf.rb には次のオプションを指定できます。 </p> <dl> <dt>--with-mysql-include=<i>dir</i> <dd> MySQL のへッダファイルの場所として /usr/local/include の代わりのディレクトリを指定します。 <dt>--with-mysql-lib=<i>dir</i> <dd> MySQL のライブラリの場所として /usr/local/lib の代わりのディレクトリを指定します。 <dt>--with-mysql-dir=<i>dir</i> <dd>--with-mysql-include=<i>dir</i>/include, --with-mysql-lib=<i>dir</i>/lib と同じです。 <dt>--with-mysql-config[=<i>/path/to/mysql_config</i>] <dd>mysql_config コマンドの結果からコンパイルパラメータを得ます。 </dl> <p> 次で簡単なテストができます。 </p> <pre class="code"> % ruby ./test.rb -- [<i>hostname</i> [<i>user</i> [<i>passwd</i> [<i>dbname</i> [<i>port</i> [<i>socket</i> [<i>flag</i>]]]]]]] </pre> <p> test.rb に与える引数は Mysql.real_connect() の引数と同じです。 </p> <p> 問題なければ、スーパーユーザでインストールしてください。 </p> <pre class="code"> # make install </pre> <h3>注意</h3> <p> テスト時にライブラリ libmysqlclient が見つからないというエラーが出る場合は、make 時にライブラリの場所を指定する必要があります。次のようにして make してみてください。 </p> <pre class="code"> % env LD_RUN_PATH=<i>libmysqlclient.soの場所</i> make </pre> <p> test.rb は Linux 上での動作しか確認していません。 他のプラットフォームではエラーが出るかもしれません。 </p> <h2>使い方</h2> <p> メソッド名は C API の関数から mysql_ 接頭辞を除いたものと同じです。メソッドの使用方法も基本的に対応する C API 関数と同様ですので、詳細は MySQL のマニュアルを見てください。 </p> <p> メソッド中でエラーが発生した場合は Mysql::Error 例外が発生します。 </p> <p> 特に意味のある値を返さない関数は self を返します。 </p> <h2>Mysql クラス</h2> <p> MySQL を操作するためのクラスです。 </p> <h3>クラスメソッド</h3> <dl> <dt>init() <dd> <p> Mysql クラスオブジェクトを返します。mysqld に接続はしません。 Mysql#options() が必要な場合は、これを呼んだ後に行ないます。 </p> <dt>real_connect(host=nil, user=nil, passwd=nil, db=nil, port=nil, sock=nil, flag=nil) <dt>connect(host=nil, user=nil, passwd=nil, db=nil, port=nil, sock=nil, flag=nil) <dt>new(host=nil, user=nil, passwd=nil, db=nil, port=nil, sock=nil, flag=nil) <dd> <p> mysqld に接続し、Mysql クラスオブジェクトを返します。 flag の定数は C API のものと同じです。 </p> <p> 例) Mysql::CLIENT_FOUND_ROWS </p> <dt>escape_string(str) <dt>quote(str) <dd> <p> insert, update 用に文字列をクオートします。 </p> <dt>get_client_info() <dt>client_info() <dd> <p> クライアントバージョン情報の文字列を返します。 </p> <dt>get_client_version() <dt>client_version() <dd> <p> クライアントバージョン情報を数値で返します。 </p> <dt>debug(str) <dd> <p> C API mysql_debug() と同じ。 </p> </dl> <h3>オブジェクトメソッド</h3> <dl> <dt>options(opt, val=nil) <dd> <p> C API の mysql_options() と同じです。 opt に指定する定数は C API から MYSQL_ 接頭辞を取り除いたものです。 </p> <p> 例) Mysql::OPT_CONNECT_TIMEOUT </p> <dt>real_connect(host=nil, user=nil, passwd=nil, db=nil, port=nil, sock=nil, flag=nil) <dt>connect(host=nil, user=nil, passwd=nil, db=nil, port=nil, sock=nil, flag=nil) <dd> <p> Mysql.real_connect() と同じです。Mysql.init() で生成したオブジェクトをサーバに接続するために使用します。 </p> <dt>affected_rows() <dd> <p> 影響された行数を返します。 </p> <dt>autocommit(mode) <dd> <p> autocommit モードを mode に設定します。mode が nil, false, 0 の時はオフ、それ以外の場合はオンです。 </p> <dt>change_user(user=nil, passwd=nil, db=nil) <dd> <p> 接続ユーザを変更します。 </p> <dt>character_set_name() <dd> <p> 現在の文字セットを返します。 </p> <dt>close() <dd> <p> 接続を切断します。 </p> <dt>commit() <dd> <p> トランザクションをコミットします。 </p> <dt>create_db(db) <dd> <p> データベースを作成します。 </p> <dt>drop_db(db) <dd> <p> データベースを破棄します。 </p> <dt>dump_debug_info() <dd> <p> C API mysql_dump_debug_info() と同じ。 </p> <dt>errno() <dd> <p> エラー番号を返します。 </p> <dt>error() <dd> <p> エラーメッセージを返します。 </p> <dt>escape_string(str) <dt>quote(str) <dd> <p> insert, update 用に文字列をクオートします。 C API の mysql_real_escape_string() と同じ。 </p> <dt>field_count() <dd> <p> 最後に実行されたクエリの項目数を返します。 </p> <dt>get_client_info() <dt>client_info() <dd> <p> クライアントバージョン情報の文字列を返します。 </p> <dt>get_client_version() <dt>client_version() <dd> <p> クライアントバージョン情報を数値で返します。 </p> <dt>get_host_info() <dt>host_info() <dd> <p> 接続情報を文字列で返します。 </p> <dt>get_proto_info() <dt>proto_info() <dd> <p> 接続プロトコルバージョンを数値で返します。 </p> <dt>get_server_info() <dt>server_info() <dd> <p> サーバのバージョン情報を文字列で返します。 </p> <dt>get_server_version() <dt>server_version() <dd> <p> サーバのバージョン情報を数値で返します。 </p> <dt>info() <dd> <p> 直前のクエリの情報を文字列で返します。特に情報がなければ nil が返ります。 </p> <dt>insert_id() <dd> <p> 最後に生成された AUTO_INCREMENT 項目の値を返します。 </p> <dt>kill(id) <dd> <p> id で指定したスレッドを殺します。 </p> <dt>list_dbs(db=nil) <dd> <p> データベースの一覧を配列で返します。 </p> <dt>list_fields(table, field=nil) <dd> <p> テーブル内の項目情報の一覧を示す Mysql::Result クラスオブジェクトを返します。 </p> <dt>list_processes() <dd> <p> サーバ上の現在のスレッドの一覧を示す Mysql::Result クラスオブジェクトを返します。 </p> <dt>list_tables(table=nil) <dd> <p> テーブルの一覧を配列で返します。 </p> <dt>more_results?() <dd> <p> 取得していないクエリ結果がある場合は真を返します。 </p> <dt>next_result() <dd> <p> 取得していないクエリ結果がある場合は真を返します。 この後に store_result() を実行するとクエリ結果を取得できます。 </p> <dt>ping() <dd> <p> サーバが生きているかどうかをチェックします。 </p> <dt>prepare(q) <dd> <p> クエリをサーバに送ります。この時点ではまだ実行されません。 Mysql::Stmt クラスオブジェクトを返します。 </p> <p> Mysql#stmt_init.prepare(q) と同じです。 </p> <dt>query(q) <dt>real_query(q) <dd> <p> クエリを実行します。 クエリが結果を返す場合、自動的に store_result() も実行して、Mysql::Result クラスオブジェクトを返します。 query_with_result に false が設定されていれば、store_result() は実行しません。 </p> <dt>query(q) {|res| ...} <dt>real_query(q) {|res| ...} <dd> <p> クエリを実行します。 クエリが結果を返す場合、Mysql::Result オブジェクトを引数としてブロックを実行します。 ブロック終了時に Mysql::Result オブジェクトは解放されます。 マルチステートメントモードで、引数に「;」で区切られた複数のクエリを指定した場合は、クエリの数だけブロックを繰り返します。 </p> <p> MySQL/Ruby 2.8 からは、自動的にマルチステートメントモードにはならなくなりました。 Mysql.connect の flag に Mysql::CLIENT_MULTI_STATEMENTS を指定するか、Mysql#set_server_option(Mysql::OPTION_MULTI_STATEMENTS_ON) を実行してください。 </p> <dt>refresh(r) <dd> <p> サーバのログやキャッシュ等をフラッシュします。 </p> <dt>reload() <dd> <p> アクセス権テーブルを再読み込みします。 </p> <dt>rollback() <dd> <p> トランザクションをロールバックします。 </p> <dt>select_db(db) <dd> <p> データベースを選択します。 </p> <dt>set_server_option(opt) <dd> <p> 引数で指定したオプションをサーバに設定します。 引数には、Mysql::OPTION_MULTI_STATEMENTS_ON, Mysql::OPTION_MULTI_STATEMENTS_OFF が指定できます。 </p> <dt>shutdown() <dd> <p> サーバを停止します。 </p> <dt>ssl_set(key=nil, cert=nil, ca=nil, capath=nil, cipher=nil) <dd> <p> SSL接続を使用します。Mysql.init() 後、Mysql#connect() 前に行なう必要があります。 </p> <dt>stat() <dd> <p> サーバの状態を文字列で返します。 </p> <dt>stmt_init() <dd> <p> Mysql::Stmt クラスオブジェクトを返します。 </p> <dt>store_result() <dd> <p> クエリの結果の Mysql::Result クラスオブジェクトを返します。 </p> <dt>thread_id() <dd> <p> 現在の接続のスレッドIDを返します。 </p> <dt>use_result() <dd> <p> クエリの結果の Mysql::Result クラスオブジェクトを返します。 </p> <dt>warning_count() <dd> <p> 直前のクエリの警告数を返します。 </p> </dl> <h3>オブジェクト変数</h3> <dl> <dt>query_with_result <dd> <p> true に設定すると query() 時に store_result() も実行して、Mysql::Result クラスオブジェクトを返します。 false に設定するとその動作は行われません。デフォルトは true です。 </p> <dt>reconnect <dd> <p> true に設定すると MySQL サーバとの接続が切れたときに自動的に再接続します。 デフォルトは false です。 </p> </dl> <h2>Mysql::Result クラス</h2> <p> クエリ結果のクラスです。 </p> <h3>オブジェクトメソッド</h3> <dl> <dt>free() <dd> <p> 結果テーブル用メモリを解放します。 </p> <dt>data_seek(offset) <dd> <p> 現在の行の位置を offset 番目の行にします。 </p> <dt>fetch_field() <dd> <p> 現在の項目の Mysql::Field クラスオブジェクトを返します。 次に呼ばれた時は次の項目を返します。 </p> <dt>fetch_fields() <dd> <p> 項目全体を表す Mysql::Field クラスオブジェクトの配列を返します。 </p> <dt>fetch_field_direct(fieldnr) <dd> <p> fieldnr 番目の項目の Mysql::Field クラスオブジェクトを返します。 </p> <dt>fetch_lengths() <dd> <p> 現在の行の各項目値の長さの配列を返します。 </p> <dt>fetch_row() <dd> <p> 検索結果の1行を返します。次に呼ばれた時は次の行を返します。 戻り値は項目値の配列です。 </p> <dt>fetch_hash(with_table=false) <dd> <p> 検索結果の1行を返します。次に呼ばれた時は次の行を返します。 戻り値は項目名をキーとした項目値のハッシュです。 with_table が true の場合はキーにテーブル名も付加され、"テーブル名.項目名" という形式のキーになります。 </p> <dt>field_seek(offset) <dd> <p> 現在の項目位置を offset 番目の項目にします。 </p> <dt>field_tell() <dd> <p> 現在の項目の位置を返します。 </p> <dt>num_fields() <dd> <p> 項目数を返します。 </p> <dt>num_rows() <dd> <p> 検索件数を返します。 </p> <dt>row_seek(offset) <dd> <p> 現在の行の位置を設定します。 offset は内部表現で row_tell() が返した Mysql::RowOffset クラスオブジェクトです。 </p> <dt>row_tell() <dd> <p> 現在の行の位置を Mysql::RowOffset クラスオブジェクトで返します。 </p> </dl> <h3>イテレータ</h3> <dl> <dt>each() {|x| 〜} <dd> <p> 検索結果の各行ごとに {〜} を繰り返します。x は項目値の配列です。 </p> <dt>each_hash(with_table=false) {|x| 〜} <dd> <p> 検索結果の各行ごとに {〜} を繰り返します。 x は項目名をキーとした項目値のハッシュです。 with_table が true の場合はキーにテーブル名も付加され、"テーブル名.項目名" という形式のキーになります。 </p> </dl> <h2>Mysql::Field クラス</h2> <p> 項目の詳細を表すクラスです。C API と異なり、オブジェクトは Mysql::Result とは独立して存在するので、Mysql::Result クラスオブジェクトが解放された後でも利用できます。が、そのため C API よりもメモリを使用します。 </p> <h3>オブジェクト変数(読み出しのみ)</h3> <dl> <dt>name<dd>項目名 <dt>table<dd>テーブル名 <dt>def<dd>デフォルト値 <dt>type<dd>項目の型 <dt>length<dd>項目の長さ <dt>max_length<dd>検索結果中の項目値の最大長 <dt>flags<dd>フラグ <dt>decimals<dd>小数部桁数 </dl> <p> type に対応する定数は C API のものから FIELD_ 接頭辞を除いたものです。 </p> <p> 例) Mysql::Field::TYPE_STRING </p> <p> flag に対応する定数は C API のものと同じです。 </p> <p> 例) Mysql::Field::BLOB_FLAG </p> <h3>オブジェクトメソッド</h3> <dl> <dt>hash() <dd> <p> 上記の変数名をキーとするハッシュを返します。 </p> <p> 例) obj.name == obj.hash['name'] </p> <dt>is_not_null?() <dd> <p> フィールドが "NOT NULL" と定義されていれば真を返します。 </p> <dt>is_num?() <dd> <p> フィールドが数値の場合は真を返します。 </p> <dt>is_pri_key?() <dd> <p> フィールドがプライマリキーの場合は真を返します。 </p> <dt>inspect() <dd> <p> 文字列 "#<Mysql::Field:項目名>" を返します。 </p> </dl> <h2>Mysql::Stmt クラス</h2> <p> MySQL でプリペアドステートメントを扱うためのクラスです。 </p> <p> 使用例: </p> <pre class="code"> my = Mysql.new(hostname, username, password, databasename) st = my.prepare("insert into tblname (col1,col2,col3) values (?,?,?)") st.execute("abc",123,Time.now) st.prepare("select col1,col2,col3 from tblname") st.execute st.fetch # => ["abc", 123, #<Mysql::Time:2005-07-24 23:52:55>] st.close </pre> <h3>オブジェクトメソッド</h3> <dl> <dt>affected_rows() <dd> <p> 影響された行数を返します。 </p> <dt>bind_result(class, ...) <dd> <p> 結果を返すクエリの場合に、取り出される値のクラスを指定します。 指定できるクラスは、Numeric, Integer, Fixnum, Float, Mysql::Time です。 nil を指定すると、自動判別します。 bind_result を実行しない場合は自動判別します。 </p> <dt>close() <dd> <p> Mysql::Stmt オブジェクトを解放します。 </p> <dt>data_seek(offset) <dd> <p> 次に fetch() で取り出される行を offset 番目の行にします。 offset は 0 から始まります。 </p> <dt>execute(arg, ...) <dd> <p> prepare() したクエリにパラメータを与えて実行します。 </p> <dt>fetch() <dd> <p> execute() で実行したクエリの結果の値を配列で取り出します。 値を返さないクエリの場合や、最後まで取り出した場合は nil を返します。 </p> <p> 配列の各要素は MySQL の型に応じて次のようになります。 </p> <table> <tr><th>MySQLの型<th>Rubyのクラス <tr><td>TINYINT, SMALLINT, MEDIUMINT, YEAR<td>Fixnum <tr><td>INT, BIGINT<td>FixnumまたはBignum <tr><td>FLOAT, DOUBLE<td>Float <tr><td>DECIMAL<td>String <tr><td>DATE, DATETIME, TIMESTAMP, TIME<td>Mysql::Time <tr><td>CHAR, VARCHAR, BINARY, VARBINARY, TINYBLOB, TINYTEXT, TINYBLOB, TINYTEXT, MEDIUMBLOB, MEDIUMTEXT, LONGBLOB, LONGTEXT, ENUM, SET, BIT<td>String <tr><td>NULL<td>NilClass </table> <dt>field_count() <dd> <p> prepare したクエリが返す結果のフィールド数を返します。 </p> <dt>free_result() <dd> <p> 検索結果を解放します。 </p> <dt>insert_id() <dd> <p> 生成された AUTO_INCREMENT 項目の値を返します。 </p> <dt>num_rows() <dd> <p> 検索結果の行数を返します。 </p> <dt>param_count() <dd> <p> prepare() したクエリのパラメータ「?」の数を返します。 </p> <dt>prepare(q) <dd> <p> クエリをサーバに送ります。この時点ではまだ実行されません。 execute() で実行されます。 </p> <dt>result_metadata() <dd> <p> prepare() したクエリの返される結果のフィールドを Mysql::Result クラスオブジェクトで返します。 </p> <dt>row_seek(offset) <dd> <p> 次に fetch() で取り出される行を offset の位置にします。 data_seek と異なり offset は row_tell() で返される Mysql::RowOffset クラスオブジェクトです。 </p> <dt>row_tell() <dd> <p> 現在の行の位置を Mysql::RowOffset クラスオブジェクトで返します。 </p> <dt>sqlstate() <dd> <p> エラーコードを SQLSTATE 文字列で返します。 </p> </dl> <h3>イテレータ</h3> <dl> <dt>each() {|x| 〜} <dd> <p> 検索結果の各行ごとに {〜} を繰り返します。 x は fetch() で返されるものと同じ配列です。 </p> </dl> <h2>Mysql::Time クラス</h2> <p> Mysql::Stmt で使われる日時を表すためのクラスです。 </p> <h3>クラスメソッド</h3> <dl> <dt>new(year=0,month=0,day=0,hour=0,minute=0,second=0,neg=false,second_part=0) <dd> <p> Mysql::Timeクラスを作成します。 </p> </dl> <h3>オブジェクト変数</h3> <dl> <dt>year <dd> 年 <dt>month <dd> 月 <dt>day <dd> 日 <dt>hour <dd> 時 <dt>minute <dd> 分 <dt>second <dd> 秒 <dt>neg <dd> 時刻が正の場合は false, 負の場合は true <dt>second_part <dd> 秒の小数点以下。未使用 </dl> <h2>Mysql::Error クラス</h2> <p> MySQL のエラーを表わすクラスです。 MySQL のエラーが発生した場合に例外として生成されます。 </p> <h3>オブジェクト変数(読み出しのみ)</h3> <dl> <dt>error <dd>エラーメッセージ <dt>errno <dd>エラー番号 </dl> <p> errno に対応する定数は C API のものと同じです。 </p> <p> 例) Mysql::Error::CR_UNKNOWN_HOST </p> <h2>履歴</h2> <dl> <dt>2010-02-11</dt> <dd> version 2.8.2<br> <ul> <li>Fix: Mysql#insert_id が 2**32 以上の時に不正な値を返す。 </ul> <dt>2009-02-01 <dd> version 2.8.1<br> <ul> <li>Ruby 1.9.1 に対応。 </ul> <dt>2008-09-29 <dd> version 2.8<br> version 2.7.7 <ul> <li>MySQLへの接続時に SIGVTALRM で EINTR になることがある問題を修正 ([ruby-dev:31842]) <li>MySQL/Ruby 2.7.* が Ruby 1.8.5 でコンパイルできなかった。 </ul> <dt>2008-06-20 <dd> version 2.8pre4 <ul> <li>エラー定義ファイルを外だし。その他。[ruby-dev:35152] </ul> <dt>2008-06-17 <dd> version 2.8pre3<br> version 2.7.6 <ul> <li>64bit 環境で Mysql::Stmt#execute で大きな数値(2**30 以上)でエラーになる問題を修正。 </ul> <dt>2008-03-08 <dd> version 2.8pre2<br> version 2.7.5 <ul> <li>64bit 環境で Mysql::Stmt#fetch で数値が壊れる問題を修正。 </ul> <dt>2007-12-26 <dd> version 2.8pre1 <ul> <li>Ruby 1.9.0 対応 <li>Incompat: Mysql::Result#each_hash が行毎にカラム名文字列を生成するのではなく、共有するようにした。 <li>Incompat: ブロックつき Mysql#query で自動的にマルチステートメントモードにならないようにした。 </ul> <dt>2007-08-22 <dd> version 2.7.4 <ul> <li>BUG: Mysql::Stmt#execute がメモリリークしていた。 </ul> <dt>2006-12-20 <dd> version 2.7.3 <ul> <li>BUG: ブロックつき Mysql#query が、最後のクエリがエラーの場合に停止してしまう。 </ul> <dt>2006-10-28 <dd> version 2.7.2 <ul> <li>BUG: 結果を返さないクエリで Mysql::Stmt#result_metadata が nil を変えすようにした (Thanks to Hidetoshi) <li>BUG: Mysql#close で mysql_errno を見ないように変更 <li>BUG: ブロックつき Mysql#query で複数ステートメント時にエラーを無視していた。 <li>extconf.rb の Visual C++ 対応 (Thanks to Shugo Maeda) <li>BIT型に対応 <li>Mysql::Field に TYPE_BIT, TYPE_NEWDECIMAL 追加 </ul> <dt>2006-06-04 <dd> version 2.7.1 <ul> <li>free() を xfree() に変更。Windows でのクラッシュの回避のため。(Tobias Grimm に感謝) </ul> <dt>2005-08-22 <dd> version 2.7 <ul> <li>Mysql#options用定数追加。Mysql::OPT_GUESS_CONNECTION, Mysql::OPT_USE_EMBEDDED_CONNECTION, Mysql::OPT_USE_REMOTE_CONNECTION, Mysql::SET_CLIENT_IP <li>test.rb: 4.0.x, 5.0.x 対応 </ul> <dt>2005-08-16 <dd> version 2.7-beta3 <ul> <li>Mysql::Stmt#bind_result 追加 </ul> <dt>2005-08-02 <dd> version 2.7-beta2 <ul> <li>BUG: mysql.c.in: fetch_hash: 値が nil の要素がハッシュに含まれない。(Stefan Kaes に感謝) <li>定数 Mysql::VERSION 追加 <li>Mysql#prepare 追加 </ul> <dt>2005-07-24 <dd> version 2.7-beta <ul> <li>Mysql#stmt_init 追加 <li>Mysql::Stmt, Mysql::Time, Mysql::RowOffset クラス追加 <li>Mysql::Error#sqlstate 追加 <li>Mysql::Result#row_seek,row_tell が扱う offset 値を Mysql::RowOffset オブジェクトに変更 </ul> <dt>2005-07-31 <dd> version 2.6.3 <ul> <li>定数 Mysql::VERSION 追加 </ul> <dt>2005-07-26 <dd> version 2.6.2 <ul> <li>BUG: mysql.c.in: fetch_hash: 値が nil の要素がハッシュに含まれない。(Stefan Kaes に感謝) </ul> <dt>2005-06-28 <dd> version 2.6.1 <ul> <li>mysql.c.in: MacOSX でのコンパイルエラーを修正。 </ul> <dt>2005-04-25 <dd> version 2.6 <ul> <li>Mysql#option() 用の定数追加 Mysql::OPT_PROTOCOL, Mysql::OPT_READ_TIMEOUT, Mysql::OPT_WRITE_TIMEOUT, Mysql::SET_CHARSET_DIR, Mysql::SET_CHARSET_NAME, Mysql::SHARED_MEMORY_BASE_NAME, Mysql::SECURE_AUTH <li>Mysql#more_results?(), Mysql#next_result(), Mysql#set_server_option(), Mysql#sqlstate() 追加 <li>Mysql#connect() のフラグ用定数追加 Mysql::CLIENT_MULTI_STATEMENTS, Mysql::CLIENT_MULTI_RESULTS <li>Mysql#set_server_option() 用の定数追加 Mysql::OPTION_MULTI_STATEMENTS_ON, Mysql::OPTION_MULTI_STATEMENTS_OFF <li>ブロック付き Mysql#query() <li>Mysql#reconnect(), Mysql#reconnect=() 追加 <li>MySQL との接続が切れたときに、デフォルトでは再接続しないようにした。 </ul> <dt>2005-02-12 <dd> version 2.5.2 <ul> <li>BUG: Mysql#connect で接続すると接続が切断されない。(Andres Salomon に感謝) </ul> <dt>2004-09-20 <dd> version 2.5.1 <ul> <li>Mysql#set_ssl() 追加。 </ul> <dt>2004-08-31 <dd> version 2.5 <ul> <li>MySQL 4.1.x 対応 <li>MysqlRes, MysqlField, MysqlError を Mysql::Result, Mysql::Field, Mysql::Error に変更。 <li>Mysql.client_version(), Mysql.get_client_version(), Mysql#client_version(), Mysql#get_client_version(), Mysql#server_version(), Mysql#get_server_version(), Mysql#warning_count(), Mysql#commit(), Mysql#rollback(), Mysql#autocommit() 追加。 <li>Mysql::Field#is_not_null?(), Mysql::Field#is_pri_key?(), Mysql::Field#is_num?() 追加。 <li>MysqlField::TYPE_VAR_STRING 追加。 </ul> <dt>2003-08-10 <dd> version 2.4.5 <ul> <li>extconf.rb: MySQL 4.1 対応。 <li>mysql.c.in: Ruby 1.8 対応。 </ul> <dt>2003-02-23 <dd> version 2.4.4a <ul> <li>extconf.rb の Ruby 1.8.0 対応。 </ul> <dt>2003-01-29 <dd> version 2.4.4 <ul> <li>Mysql::OPT_LOCAL_INFILE を追加。 <li>extconf.rb に --with-mysql-config オプションを追加 <li>extconf.rb 時に主なライブラリを自動検出するようにした。 </ul> <dt>2003-01-05 <dd> version 2.4.3c <ul> <li>英語の README の改版。Paul DuBois に感謝。 </ul> <dt>2002-12-24 <dd> version 2.4.3b <ul> <li>extconf.rb の Ruby 1.6.8 対応。 </ul> <dt>2002-11-07 <dd> version 2.4.3a <ul> <li>エラー定数が重複定義されることがあるバグを修正。 </ul> <dt>2002-09-10 <dd> version 2.4.3 <ul> <li>ER_ で始まるエラー定数にも対応した。 <li>errmsg.h と mysqld_error.h から自動的にエラー定数を取得するようにした。 </ul> <dt>2002-01-07 <dd> version 2.4.2 <ul> <li>MySQL 4.0 対応。 <li>uint を unsigned int に変更(mswin対応)。 </ul> <dt>2001-12-02 <dd> version 2.4.1 <ul> <li>不要な extern を削除(Cygiwn対応)。 <li>extconf.rb のオプションを変更。 </ul> <dt>2001-10-12 <dd> version 2.4.0 <ul> <li>Ruby 1.7 に対応。 <li>Mysql::debug(), Mysql#change_user(), Mysql#character_set_name(), Mysql#dump_debug_info() を追加。 </ul> <dt>2001-03-25 <dd> version 2.3.2a <ul> <li>t/50update.rb の判定方法を変更 </ul> <dt>2001-03-19 <dd> version 2.3.2 <ul> <li>一定数(20回) MysqlRes オブジェクトを生成したら、強制的に GC するようにした。 <li>Mysql#escape_string(), Mysql#quote() は mysql_real_escape_string() を使用するようにした。 </ul> <dt>2000-09-02 <dd> version 2.3.1 <ul> <li>Mysql#initialize() を追加(Ruby 1.6 対応)。 </ul> <dt>2000-07-22 <dd> version 2.3.0 <ul> <li>MysqlRes#free() を追加。 <li>Mysql#initialize(), MysqlRes#initialize() を有効にした。 <li>true を返していたメソッドを、self を返すようにした。 </ul> <dt>2000-05-27 <dd> version 2.2.1a <ul> <li>test.rb を引数でパラメータを指定できるようにした。 </ul> <dt>2000-05-10 <dd> version 2.2.1 <ul> <li>データベースからのデータを「汚染された」文字列に変更。 <li>テストスクリプト追加。 </ul> <dt>1999-09-28 <dd> version 2.2.0 <ul> <li>Mysql::init(), Mysql#options(), Mysql#real_connect() を追加。 <li>Mysql#field_count を追加。 </ul> <dt>1999-09-24 <dd> version 2.1.7 <ul> <li>MySQL 3.22.26 に対応。 <li>MysqlField#inspect() を追加。 </ul> <dt>1999-06-17 <dd> version 2.1.6 <ul> <li>fetch_field で落ちることがあった。 </ul> <dt>1999-06-12 <dd> version 2.1.5 <ul> <li>Ruby 1.3.x 対応が中途半端だった。 </ul> <dt>1999-05-30 <dd> version 2.1.4 <ul> <li>Ruby 1.3.x に対応。 </ul> <dt>1999-04-13 <dd> version 2.1.3 <ul> <li>fetch_hash/each_hash の引数の数の定義が間違っていた。 <li>fetch_hash/each_hash に true を指定した時の項目名が欠けていた。 <li>NULL値の項目があると fetch_hash/each_hash の動きがおかしかった。 </ul> <dt>1999-02-01 <dd> version 2.1.2 <ul> <li>Mysql#refresh() と Mysql::REFRESH_* を追加。 <li>MySQL 3.21.xx にも対応(させたつもり…)。 </ul> <dt>1999-01-24 <dd> version 2.1.1 <ul> <li>MysqlError#error(), MysqlError#errno() を追加。 <li>MysqlError::CR_* を追加。 </ul> <dt>1999-01-17 <dd> version 2.1 <ul> <li>fetch_hash, each_hash を C ソースに移動。 <li>MysqlField#hash() を追加。 <li>escape_string, get_client_info をオブジェクトメソッドとしても使えるようにした。 </ul> <dt>1998-11-29 <dd> version 2.0.1 <ul> <li>fetch_hash, each_hash に with_table 引数を追加。 <li>やっぱり get_* メソッド名も C API と同じにした。 <li>mysql-compat.rb を alias で書き直した。 <li>Mysql の定数 CLIENT_* が MysqlField の定数になっていた。 </ul> <dt>1998-11-15 <dd> version 2.0 <ul> <li>メソッド名を C API と同じにした。 <li>C++ でも通るように書き直した。 </ul> <dt>1998-08-13 <dd> version 1.0 <ul> <li>初期バージョン。 </ul> </dl> <h2>作者</h2> <p> e-mail: とみたまさひろ <a href="mailto:tommy@tmtm.org">tommy@tmtm.org</a> <a href="http://tmtm.org">http://tmtm.org</a> </p> <hr> <address><a href="mailto:tommy@tmtm.org">TOMITA Masahiro</a></address> <!-- Created: Sun Aug 29 11:52:09 JST 2004 --> <!-- hhmts start --> Last modified: Sun Feb 1 17:48:26 JST 2009 <!-- hhmts end --> </body> </html>