Class: PLSQL::JDBCConnection::Cursor
- Inherits:
-
Object
- Object
- PLSQL::JDBCConnection::Cursor
- Includes:
- Connection::CursorCommon
- Defined in:
- lib/plsql/jdbc_connection.rb
Overview
:nodoc:
Instance Attribute Summary collapse
-
#result_set ⇒ Object
readonly
Returns the value of attribute result_set.
-
#statement ⇒ Object
Returns the value of attribute statement.
Class Method Summary collapse
Instance Method Summary collapse
- #close ⇒ Object
- #fetch ⇒ Object
- #fields ⇒ Object
-
#initialize(conn, result_set) ⇒ Cursor
constructor
A new instance of Cursor.
Methods included from Connection::CursorCommon
#fetch_all, #fetch_hash, #fetch_hash_all
Constructor Details
#initialize(conn, result_set) ⇒ Cursor
Returns a new instance of Cursor.
194 195 196 197 198 199 200 201 202 203 |
# File 'lib/plsql/jdbc_connection.rb', line 194 def initialize(conn, result_set) @connection = conn @result_set = result_set @metadata = @result_set.getMetaData @column_count = @metadata.getColumnCount @column_type_names = [nil] # column numbering starts at 1 (1..@column_count).each do |i| @column_type_names << { type_name: @metadata.getColumnTypeName(i), sql_type: @metadata.getColumnType(i) } end end |
Instance Attribute Details
#result_set ⇒ Object (readonly)
Returns the value of attribute result_set.
191 192 193 |
# File 'lib/plsql/jdbc_connection.rb', line 191 def result_set @result_set end |
#statement ⇒ Object
Returns the value of attribute statement.
192 193 194 |
# File 'lib/plsql/jdbc_connection.rb', line 192 def statement @statement end |
Class Method Details
.new_from_query(conn, sql, bindvars = [], options = {}) ⇒ Object
205 206 207 208 209 210 211 212 213 214 215 216 217 |
# File 'lib/plsql/jdbc_connection.rb', line 205 def self.new_from_query(conn, sql, bindvars = [], = {}) stmt = conn.prepare_statement(sql, *bindvars) if prefetch_rows = [:prefetch_rows] stmt.setRowPrefetch(prefetch_rows) end cursor = Cursor.new(conn, stmt.executeQuery) cursor.statement = stmt cursor rescue # in case of any error close statement stmt.close rescue nil raise end |
Instance Method Details
#close ⇒ Object
235 236 237 238 |
# File 'lib/plsql/jdbc_connection.rb', line 235 def close @result_set.close @statement.close if @statement end |
#fetch ⇒ Object
219 220 221 222 223 224 225 226 227 |
# File 'lib/plsql/jdbc_connection.rb', line 219 def fetch if @result_set.next (1..@column_count).map do |i| @connection.get_ruby_value_from_result_set(@result_set, i, @column_type_names[i]) end else nil end end |
#fields ⇒ Object
229 230 231 232 233 |
# File 'lib/plsql/jdbc_connection.rb', line 229 def fields @fields ||= (1..@column_count).map do |i| @metadata.getColumnName(i).downcase.to_sym end end |