class DBI::DBD::ODBC::Driver

See DBI::BaseDriver

Public Class Methods

new() click to toggle source
Calls superclass method
# File lib/dbd/odbc/driver.rb, line 5
def initialize
    super("0.4.0")
end

Public Instance Methods

connect(dbname, user, auth, attr) click to toggle source
# File lib/dbd/odbc/driver.rb, line 15
def connect(dbname, user, auth, attr)
    driver_attrs = dbname.split(';')

    if driver_attrs.size > 1
        # DNS-less connection
        drv = ::ODBC::Driver.new
        drv.name = 'Driver1'
        driver_attrs.each do |param|
            pv = param.split('=')
            next if pv.size < 2
            drv.attrs[pv[0]] = pv[1]
        end
        db = ::ODBC::Database.new
        handle = db.drvconnect(drv)
    else
        # DNS given
        handle = ::ODBC.connect(dbname, user, auth)
    end

    return DBI::DBD::ODBC::Database.new(handle, attr)
rescue DBI::DBD::ODBC::ODBCErr => err
    raise DBI::DatabaseError.new(err.message)
end
data_sources() click to toggle source
# File lib/dbd/odbc/driver.rb, line 9
def data_sources
    ::ODBC.datasources.collect {|dsn| "dbi:ODBC:" + dsn.name }
rescue DBI::DBD::ODBC::ODBCErr => err
    raise DBI::DatabaseError.new(err.message)
end