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.
613 614 615 616 617 618 619 620 621 622 |
# File 'lib/teradata-cli/connection.rb', line 613 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
676 677 678 679 680 |
# File 'lib/teradata-cli/connection.rb', line 676 def close check_connection @cli.skip_current_statement @closed = true end |
#closed? ⇒ Boolean
672 673 674 |
# File 'lib/teradata-cli/connection.rb', line 672 def closed? @closed end |
#each_record(&block) ⇒ Object Also known as: each
682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 |
# File 'lib/teradata-cli/connection.rb', line 682 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
647 648 649 650 651 652 653 654 655 656 657 658 |
# File 'lib/teradata-cli/connection.rb', line 647 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
702 703 704 705 706 |
# File 'lib/teradata-cli/connection.rb', line 702 def entries return @entries if @entries check_connection map {|rec| rec } end |
#fetch_all ⇒ Object
read all records and save it for later reference.
709 710 711 712 713 714 |
# File 'lib/teradata-cli/connection.rb', line 709 def fetch_all return if @entries check_connection @entries = map {|rec| rec } nil end |
#inspect ⇒ Object
624 625 626 |
# File 'lib/teradata-cli/connection.rb', line 624 def inspect "\#<ResultSet #{@status.inspect} next=#{@next.inspect}>" end |
#next ⇒ Object
637 638 639 640 641 642 643 644 645 |
# File 'lib/teradata-cli/connection.rb', line 637 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
666 667 668 669 670 |
# File 'lib/teradata-cli/connection.rb', line 666 def value return if @valued @status.value @valued = true end |
#value_all ⇒ Object
660 661 662 663 664 |
# File 'lib/teradata-cli/connection.rb', line 660 def value_all each_result_set do |rs| ; end end |