Class: Mysql::Result
- Inherits:
-
Object
- Object
- Mysql::Result
- Defined in:
- lib/rspider/mysql.rb
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.
504 505 506 507 508 509 510 511 512 513 |
# File 'lib/rspider/mysql.rb', line 504 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.
514 515 516 |
# File 'lib/rspider/mysql.rb', line 514 def eof @eof end |
Instance Method Details
#data_seek(n) ⇒ Object
516 517 518 |
# File 'lib/rspider/mysql.rb', line 516 def data_seek(n) @current_row = n end |
#each ⇒ Object
601 602 603 604 605 |
# File 'lib/rspider/mysql.rb', line 601 def each() while row = fetch_row do yield row end end |
#each_hash(with_table = nil) ⇒ Object
607 608 609 610 611 |
# File 'lib/rspider/mysql.rb', line 607 def each_hash(with_table=nil) while hash = fetch_hash(with_table) do yield hash end end |
#fetch_field ⇒ Object
520 521 522 523 524 525 |
# File 'lib/rspider/mysql.rb', line 520 def fetch_field() return if @current_field >= @field_count f = @fields[@current_field] @current_field += 1 f end |
#fetch_field_direct(n) ⇒ Object
531 532 533 |
# File 'lib/rspider/mysql.rb', line 531 def fetch_field_direct(n) @fields[n] end |
#fetch_fields ⇒ Object
527 528 529 |
# File 'lib/rspider/mysql.rb', line 527 def fetch_fields() @fields end |
#fetch_hash(with_table = nil) ⇒ Object
560 561 562 563 564 565 566 567 568 569 |
# File 'lib/rspider/mysql.rb', line 560 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
535 536 537 |
# File 'lib/rspider/mysql.rb', line 535 def fetch_lengths() @data ? @data[@current_row].map{|i| i ? i.length : 0} : @lengths end |
#fetch_row ⇒ Object
539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 |
# File 'lib/rspider/mysql.rb', line 539 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
571 572 573 |
# File 'lib/rspider/mysql.rb', line 571 def field_seek(n) @current_field = n end |
#field_tell ⇒ Object
575 576 577 |
# File 'lib/rspider/mysql.rb', line 575 def field_tell() @current_field end |
#free ⇒ Object
579 580 581 582 583 |
# File 'lib/rspider/mysql.rb', line 579 def free() @handle.skip_result @handle = @fields = @data = nil GC::start end |
#inspect ⇒ Object
613 614 615 |
# File 'lib/rspider/mysql.rb', line 613 def inspect() "#<#{self.class}>" end |
#num_fields ⇒ Object
585 586 587 |
# File 'lib/rspider/mysql.rb', line 585 def num_fields() @field_count end |
#num_rows ⇒ Object
589 590 591 |
# File 'lib/rspider/mysql.rb', line 589 def num_rows() @data ? @data.length : @row_count end |
#row_seek(n) ⇒ Object
593 594 595 |
# File 'lib/rspider/mysql.rb', line 593 def row_seek(n) @current_row = n end |
#row_tell ⇒ Object
597 598 599 |
# File 'lib/rspider/mysql.rb', line 597 def row_tell() @current_row end |