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)
	measure_exec(:call) { @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