15: def connect(dbname, user, auth, attr)
16: driver_attrs = dbname.split(';')
17:
18: if driver_attrs.size > 1
19:
20: drv = ::ODBC::Driver.new
21: drv.name = 'Driver1'
22: driver_attrs.each do |param|
23: pv = param.split('=')
24: next if pv.size < 2
25: drv.attrs[pv[0]] = pv[1]
26: end
27: db = ::ODBC::Database.new
28: handle = db.drvconnect(drv)
29: else
30:
31: handle = ::ODBC.connect(dbname, user, auth)
32: end
33:
34: return DBI::DBD::ODBC::Database.new(handle, attr)
35: rescue DBI::DBD::ODBC::ODBCErr => err
36: raise DBI::DatabaseError.new(err.message)
37: end