Sha256: 4f773efac4959584958e3e072d963a3cd9928c0ad59966513c98ef097325f6b9

Contents?: true

Size: 1.2 KB

Versions: 19

Compression:

Stored size: 1.2 KB

Contents

#
# Monkey patch DBD::ODBC to pass usernames and passwords along
# to the DB driver correctly
#

# Are you running a new version of DBI?
begin
  require 'dbd/ODBC'
rescue Exception
end

# Or an old version?
begin
  require 'DBD/ODBC/ODBC'
rescue Exception
end

class DBI::DBD::ODBC::Driver < DBI::BaseDriver

    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
            #
            #  These next two lines are new
            #
            drv.attrs['UID'] = user unless user.nil?
            drv.attrs['PWD'] = auth unless auth.nil?

            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

end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
do_sqlserver-0.10.17-java lib/dbd_odbc_patch.rb
do_sqlserver-0.10.16-java lib/dbd_odbc_patch.rb
do_sqlserver-0.10.15-java lib/dbd_odbc_patch.rb
do_sqlserver-0.10.14-java lib/dbd_odbc_patch.rb
do_sqlserver-0.10.13-java lib/dbd_odbc_patch.rb
do_sqlserver-0.10.12-java lib/dbd_odbc_patch.rb
do_sqlserver-0.10.11-java lib/dbd_odbc_patch.rb
do_sqlserver-0.10.10-java lib/dbd_odbc_patch.rb
do_sqlserver-0.10.9-java lib/dbd_odbc_patch.rb
do_sqlserver-0.10.8-java lib/dbd_odbc_patch.rb
do_sqlserver-0.10.7-java lib/dbd_odbc_patch.rb
do_sqlserver-0.10.6-java lib/dbd_odbc_patch.rb
do_sqlserver-0.10.5-java lib/dbd_odbc_patch.rb
do_sqlserver-0.10.4-java lib/dbd_odbc_patch.rb
do_sqlserver-0.10.4.rc2-java lib/dbd_odbc_patch.rb
do_sqlserver-0.10.4.rc1-java lib/dbd_odbc_patch.rb
do_sqlserver-0.10.3-java lib/dbd_odbc_patch.rb
do_sqlserver-0.10.2-java lib/dbd_odbc_patch.rb
do_sqlserver-0.10.1-java lib/dbd_odbc_patch.rb