Class: Mysql::Result
Instance Attribute Summary collapse
-
#eof ⇒ Object
Returns the value of attribute eof.
Instance Method Summary collapse
- #data_seek(n) ⇒ Object
- #each ⇒ Object
- #each_hash(with_table = nil) ⇒ Object
- #fetch_field ⇒ Object
- #fetch_field_direct(n) ⇒ Object
- #fetch_fields ⇒ Object
- #fetch_hash(with_table = nil) ⇒ Object
- #fetch_lengths ⇒ Object
- #fetch_row ⇒ Object
- #field_seek(n) ⇒ Object
- #field_tell ⇒ Object
- #free ⇒ Object
-
#initialize(mysql, fields, field_count, data = nil) ⇒ Result
constructor
A new instance of Result.
- #inspect ⇒ Object
- #num_fields ⇒ Object
- #num_rows ⇒ Object
- #row_seek(n) ⇒ Object
- #row_tell ⇒ Object
Constructor Details
#initialize(mysql, fields, field_count, data = nil) ⇒ Result
Returns a new instance of Result.
499 500 501 502 503 504 505 506 507 508 |
# File 'lib/active_record/vendor/mysql.rb', line 499 def initialize(mysql, fields, field_count, data=nil) @handle = mysql @fields = fields @field_count = field_count @data = data @current_field = 0 @current_row = 0 @eof = false @row_count = 0 end |
Instance Attribute Details
#eof ⇒ Object
Returns the value of attribute eof.
509 510 511 |
# File 'lib/active_record/vendor/mysql.rb', line 509 def eof @eof end |
Instance Method Details
#data_seek(n) ⇒ Object
511 512 513 |
# File 'lib/active_record/vendor/mysql.rb', line 511 def data_seek(n) @current_row = n end |
#each ⇒ Object
596 597 598 599 600 |
# File 'lib/active_record/vendor/mysql.rb', line 596 def each() while row = fetch_row do yield row end end |
#each_hash(with_table = nil) ⇒ Object
602 603 604 605 606 |
# File 'lib/active_record/vendor/mysql.rb', line 602 def each_hash(with_table=nil) while hash = fetch_hash(with_table) do yield hash end end |
#fetch_field ⇒ Object
515 516 517 518 519 520 |
# File 'lib/active_record/vendor/mysql.rb', line 515 def fetch_field() return if @current_field >= @field_count f = @fields[@current_field] @current_field += 1 f end |
#fetch_field_direct(n) ⇒ Object
526 527 528 |
# File 'lib/active_record/vendor/mysql.rb', line 526 def fetch_field_direct(n) @fields[n] end |
#fetch_fields ⇒ Object
522 523 524 |
# File 'lib/active_record/vendor/mysql.rb', line 522 def fetch_fields() @fields end |
#fetch_hash(with_table = nil) ⇒ Object
555 556 557 558 559 560 561 562 563 564 |
# File 'lib/active_record/vendor/mysql.rb', line 555 def fetch_hash(with_table=nil) row = fetch_row return if row == nil hash = {} @fields.each_index do |i| f = with_table ? @fields[i].table+"."+@fields[i].name : @fields[i].name hash[f] = row[i] end hash end |
#fetch_lengths ⇒ Object
530 531 532 |
# File 'lib/active_record/vendor/mysql.rb', line 530 def fetch_lengths() @data ? @data[@current_row].map{|i| i ? i.length : 0} : @lengths end |
#fetch_row ⇒ Object
534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 |
# File 'lib/active_record/vendor/mysql.rb', line 534 def fetch_row() if @data then if @current_row >= @data.length then @handle.status = :STATUS_READY return end ret = @data[@current_row] @current_row += 1 else return if @eof ret = @handle.read_one_row @field_count if ret == nil then @eof = true return end @lengths = ret.map{|i| i ? i.length : 0} @row_count += 1 end ret end |
#field_seek(n) ⇒ Object
566 567 568 |
# File 'lib/active_record/vendor/mysql.rb', line 566 def field_seek(n) @current_field = n end |
#field_tell ⇒ Object
570 571 572 |
# File 'lib/active_record/vendor/mysql.rb', line 570 def field_tell() @current_field end |
#free ⇒ Object
574 575 576 577 578 |
# File 'lib/active_record/vendor/mysql.rb', line 574 def free() @handle.skip_result @handle = @fields = @data = nil GC::start end |
#inspect ⇒ Object
608 609 610 |
# File 'lib/active_record/vendor/mysql.rb', line 608 def inspect() "#<#{self.class}>" end |
#num_fields ⇒ Object
580 581 582 |
# File 'lib/active_record/vendor/mysql.rb', line 580 def num_fields() @field_count end |
#num_rows ⇒ Object
584 585 586 |
# File 'lib/active_record/vendor/mysql.rb', line 584 def num_rows() @data ? @data.length : @row_count end |
#row_seek(n) ⇒ Object
588 589 590 |
# File 'lib/active_record/vendor/mysql.rb', line 588 def row_seek(n) @current_row = n end |
#row_tell ⇒ Object
592 593 594 |
# File 'lib/active_record/vendor/mysql.rb', line 592 def row_tell() @current_row end |