forked from kwatch/mysql-ruby
-
Notifications
You must be signed in to change notification settings - Fork 1
/
README_ja.html
1323 lines (1151 loc) · 28.3 KB
/
README_ja.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- $Id: README_ja.html 244 2009-02-01 08:43:39Z 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:[email protected]">
<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>
<a href="http://tmtm.org/downloads/mysql/ruby/">tmtm.org</a>
<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>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