class ODBCAdapter::DatabaseMetadata

Caches SQLGetInfo output

Constants

FIELDS

Attributes

values[R]

Public Class Methods

new(connection, has_encoding_bug = false) click to toggle source

has_encoding_bug refers to github.com/larskanis/ruby-odbc/issues/2 where ruby-odbc in UTF8 mode returns incorrectly encoded responses to getInfo

# File lib/odbc_adapter/database_metadata.rb, line 20
def initialize(connection, has_encoding_bug = false)
  @values = Hash[FIELDS.map do |field|
    info = connection.get_info(ODBC.const_get(field))
    info = info.encode(Encoding.default_external, 'UTF-16LE') if info.is_a?(String) && has_encoding_bug

    [field, info]
  end]
end

Public Instance Methods

adapter_class() click to toggle source
# File lib/odbc_adapter/database_metadata.rb, line 29
def adapter_class
  ODBCAdapter.adapter_for(dbms_name)
end
upcase_identifiers?() click to toggle source
# File lib/odbc_adapter/database_metadata.rb, line 33
def upcase_identifiers?
  @upcase_identifiers ||= (identifier_case == ODBC::SQL_IC_UPPER)
end

Private Instance Methods

value_for(field) click to toggle source
# File lib/odbc_adapter/database_metadata.rb, line 47
def value_for(field)
  values[field]
end