Class: TeradataCli::ResultSet
- Inherits:
-
Object
- Object
- TeradataCli::ResultSet
- Extended by:
- Forwardable
- Includes:
- Enumerable
- Defined in:
- lib/teradata-cli/connection.rb
Instance Method Summary collapse
- #close ⇒ Object
- #closed? ⇒ Boolean
- #each_record(&block) ⇒ Object (also: #each)
- #each_result_set ⇒ Object
-
#entries ⇒ Object
read all record and return it.
-
#fetch_all ⇒ Object
read all records and save it for later reference.
-
#initialize(status, cli) ⇒ ResultSet
constructor
A new instance of ResultSet.
- #inspect ⇒ Object
- #next ⇒ Object
- #value ⇒ Object
- #value_all ⇒ Object
Constructor Details
#initialize(status, cli) ⇒ ResultSet
Returns a new instance of ResultSet.
615 616 617 618 619 620 621 622 623 624 |
# File 'lib/teradata-cli/connection.rb', line 615 def initialize(status, cli) @status = status @cli = cli @next = nil @closed = false @metadata_read = false @metadata = nil @valued = false @entries = nil end |
Instance Method Details
#close ⇒ Object
678 679 680 681 682 |
# File 'lib/teradata-cli/connection.rb', line 678 def close check_connection @cli.skip_current_statement @closed = true end |
#closed? ⇒ Boolean
674 675 676 |
# File 'lib/teradata-cli/connection.rb', line 674 def closed? @closed end |
#each_record(&block) ⇒ Object Also known as: each
684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 |
# File 'lib/teradata-cli/connection.rb', line 684 def each_record(&block) return @entries.each(&block) if @entries check_connection unless @metadata_read @metadata = @cli. unless @metadata @closed = true return end @metadata_read = true end while rec = @cli.read_record yield @metadata.unmarshal(rec) end @closed = true end |
#each_result_set ⇒ Object
649 650 651 652 653 654 655 656 657 658 659 660 |
# File 'lib/teradata-cli/connection.rb', line 649 def each_result_set rs = self while rs begin yield rs ensure rs.close unless rs.closed? end rs = rs.next end nil end |
#entries ⇒ Object
read all record and return it
704 705 706 707 708 |
# File 'lib/teradata-cli/connection.rb', line 704 def entries return @entries if @entries check_connection map {|rec| rec } end |
#fetch_all ⇒ Object
read all records and save it for later reference.
711 712 713 714 715 716 |
# File 'lib/teradata-cli/connection.rb', line 711 def fetch_all return if @entries check_connection @entries = map {|rec| rec } nil end |
#inspect ⇒ Object
626 627 628 |
# File 'lib/teradata-cli/connection.rb', line 626 def inspect "\#<ResultSet #{@status.inspect} next=#{@next.inspect}>" end |
#next ⇒ Object
639 640 641 642 643 644 645 646 647 |
# File 'lib/teradata-cli/connection.rb', line 639 def next return @next if @next close unless closed? value rs = @cli.read_result_set @next = rs rs.value if rs rs end |
#value ⇒ Object
668 669 670 671 672 |
# File 'lib/teradata-cli/connection.rb', line 668 def value return if @valued @status.value @valued = true end |
#value_all ⇒ Object
662 663 664 665 666 |
# File 'lib/teradata-cli/connection.rb', line 662 def value_all each_result_set do |rs| ; end end |