Module | Sequel::JDBC::SQLServer::DatabaseMethods::MetadataDatasetMethods
In: | lib/sequel/adapters/jdbc/sqlserver.rb

Work around a bug in SQL Server JDBC Driver 3.0, where the metadata for the getColumns result set specifies an incorrect type for the IS_AUTOINCREMENT column. The column is a string, but the type is specified as a short. This causes getObject() to throw a com.microsoft.sqlserver.jdbc.SQLServerException: "The conversion from char to SMALLINT is unsupported." Using getString() rather than getObject() for this column avoids the problem. Reference: social.msdn.microsoft.com/Forums/en/sqldataaccess/thread/20df12f3-d1bf-4526-9daa-239a83a8e435

### Methods

process_result_set_convert process_result_set_no_convert

### Public Instance methods

process_result_set_convert(cols, result, rn) {|row| ...}

[Source]

        # File lib/sequel/adapters/jdbc/sqlserver.rb, line 21
    21:           def process_result_set_convert(cols, result, rn)
    22:             while result.next
    23:               row = {}
    24:               cols.each do |n, i, p|
    25:                 v = (n == :is_autoincrement ? result.getString(i) : result.getObject(i))
    26:                 row[n] = if v
    27:                   if p
    28:                     p.call(v)
    29:                   elsif p.nil?
    30:                     cols[i-1][2] = p = convert_type_proc(v)
    31:                     if p
    32:                       p.call(v)
    33:                     else
    34:                       v
    35:                     end
    36:                   else
    37:                     v
    38:                   end
    39:                 else
    40:                   v
    41:                 end
    42:               end
    43:               row.delete(rn) if rn
    44:               yield row
    45:             end
    46:           end

process_result_set_no_convert(cols, result, rn) {|row| ...}

[Source]

        # File lib/sequel/adapters/jdbc/sqlserver.rb, line 48
    48:           def process_result_set_no_convert(cols, result, rn)
    49:             while result.next
    50:               row = {}
    51:               cols.each do |n, i|
    52:                 row[n] = (n == :is_autoincrement ? result.getString(i) : result.getObject(i))
    53:               end
    54:               row.delete(rn) if rn
    55:               yield row
    56:             end
    57:           end

[Validate]