class OCI8::BindArgumentHelper
@private
A helper class to bind arguments.
def exec(con, csr)
def exec(con, csr) @bind_vars.each do |key, val| if val.is_a? OCI8::Object::Base tdo = con.get_tdo_by_class(val.class) csr.bind_param(key, nil, :named_type_internal, tdo) csr[key].attributes = val else csr.bind_param(key, val ? val : '') end end csr.exec @bind_vars.each do |key, val| if val.is_a? OCI8::Object::Base val.instance_variable_set(:@attributes, csr[key].attributes) end end end
def initialize(*args)
def initialize(*args) if args.length == 1 and args[0].is_a? Hash @arg_str = args[0].keys.collect do |key| "#{key}=>:#{key}"; end.join(', ') @bind_vars = args[0] else ary = [] @bind_vars = {} args.each_with_index do |obj, idx| key = ':' + (idx + 1).to_s ary << key @bind_vars[key] = obj end @arg_str = ary.join(', ') end end