class Sequel::JDBC::Dataset
Constants
- PreparedStatementMethods
- StoredProcedureMethods
Public Instance Methods
fetch_rows(sql, &block)
click to toggle source
# File lib/sequel/adapters/jdbc.rb 756 def fetch_rows(sql, &block) 757 execute(sql){|result| process_result_set(result, &block)} 758 self 759 end
with_convert_types(v)
click to toggle source
Set whether to convert Java types to ruby types in the returned dataset.
# File lib/sequel/adapters/jdbc.rb 767 def with_convert_types(v) 768 clone(:convert_types=>v) 769 end
with_fetch_size(size)
click to toggle source
Set the fetch size on JDBC
ResultSets created from the returned dataset.
# File lib/sequel/adapters/jdbc.rb 762 def with_fetch_size(size) 763 clone(:fetch_size=>size) 764 end
Private Instance Methods
basic_type_convertor(map, meta, type, i)
click to toggle source
The basic type conversion proc to use for the given column number i, given the type conversion map and the ResultSetMetaData.
This is implemented as a separate method so that subclasses can override the methods separately.
# File lib/sequel/adapters/jdbc.rb 795 def basic_type_convertor(map, meta, type, i) 796 map[type] 797 end
convert_types?()
click to toggle source
Whether we should convert Java types to ruby types for this dataset.
# File lib/sequel/adapters/jdbc.rb 774 def convert_types? 775 ct = @opts[:convert_types] 776 ct.nil? ? db.convert_types : ct 777 end
prepare_extend_sproc(ds)
click to toggle source
Extend the dataset with the JDBC
stored procedure methods.
# File lib/sequel/adapters/jdbc.rb 780 def prepare_extend_sproc(ds) 781 ds.with_extend(StoredProcedureMethods) 782 end
prepared_statement_modules()
click to toggle source
# File lib/sequel/adapters/jdbc.rb 799 def prepared_statement_modules 800 [PreparedStatementMethods] 801 end
process_result_set(result) { |row| ... }
click to toggle source
Split out from fetch rows to allow processing of JDBC
result sets that don’t come from issuing an SQL
string.
# File lib/sequel/adapters/jdbc.rb 805 def process_result_set(result) 806 meta = result.getMetaData 807 if fetch_size = opts[:fetch_size] 808 result.setFetchSize(fetch_size) 809 end 810 cols = [] 811 i = 0 812 convert = convert_types? 813 map = convert ? db.type_convertor_map : db.basic_type_convertor_map 814 815 meta.getColumnCount.times do 816 i += 1 817 cols << [output_identifier(meta.getColumnLabel(i)), i, convert ? type_convertor(map, meta, meta.getColumnType(i), i) : basic_type_convertor(map, meta, meta.getColumnType(i), i)] 818 end 819 max = i 820 self.columns = cols.map{|c| c[0]} 821 822 while result.next 823 row = {} 824 i = -1 825 while (i += 1) < max 826 n, j, pr = cols[i] 827 row[n] = pr.call(result, j) 828 end 829 yield row 830 end 831 ensure 832 result.close 833 end
type_convertor(map, meta, type, i)
click to toggle source
The type conversion proc to use for the given column number i, given the type conversion map and the ResultSetMetaData.
# File lib/sequel/adapters/jdbc.rb 786 def type_convertor(map, meta, type, i) 787 map[type] 788 end