Class: JDBCHelper::Connection::CallableStatement

Inherits:
ParameterizedStatement show all
Defined in:
lib/jdbc-helper/connection/callable_statement.rb

Overview

Interface to Java CallableStatment

Instance Attribute Summary

Attributes inherited from ParameterizedStatement

#java_obj, #sql

Instance Method Summary collapse

Methods inherited from ParameterizedStatement

#close, #closed?, #set_param

Instance Method Details

#call(*params) ⇒ Object

Array or Hash (for named parameters)

  • IN parameter: value

  • OUT parameter: class

  • INOUT parameter: [value, class] (Although class can be inferred from the value, we still need a way to figure out if it’s INOUT parameter)



14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/jdbc-helper/connection/callable_statement.rb', line 14

def call *params
  check_closed

  out_params = set_params(params)
  @java_obj.execute

  result = {}
  out_params.each do |idx, jtype|
    getter      = JDBCHelper::Connection::GETTER_MAP.fetch(jtype, :get_string)
    value       = @java_obj.send(getter, idx.is_a?(Symbol) ? idx.to_s : idx)
    result[idx] = @java_obj.was_null ? nil : value
  end
  result
end