class OCI8::Object::Base
def initialize(*args)
def initialize(*args) @attributes = {} if args[0].is_a? OCI8 @con = args.shift else @con = @@default_connection end return if args.empty? raise "no connection is specified." if @con.nil? # setup a TDO object. tdo = @con.get_tdo_by_class(self.class) # call constructor. bind_arg_helper = BindArgumentHelper.new(*args) sql = <<EOS f := #{tdo.typename}(#{bind_arg_helper.arg_str}); csr = @con.parse_internal(sql) begin csr.bind_param(:self, nil, :named_type_internal, tdo) bind_arg_helper.exec(@con, csr) @attributes = csr[:self].attributes ensure csr.close end end