Class | DBI::DriverHandle |
In: |
lib/dbi/handles/driver.rb
|
Parent: | Handle |
DriverHandles, while not directly exposed, are essentially the backend for the facade that many DBI root-level methods communicate with.
driver_name | [W] |
Connect to the database. The DSN will have been parsed at this point and the named parameters should need no explanation.
If a block is provided to DBI.connect, the connected DatabaseHandle will be provided as the first argument to the block, and the DatabaseHandle will be disconnected upon block exit.
# File lib/dbi/handles/driver.rb, line 15 15: def connect(db_args, user, auth, params) 16: 17: user = @handle.default_user[0] if user.nil? 18: auth = @handle.default_user[1] if auth.nil? 19: 20: # TODO: what if only one of them is nil? 21: #if user.nil? and auth.nil? then 22: # user, auth = @handle.default_user 23: #end 24: 25: params ||= {} 26: new_params = @handle.default_attributes 27: params.each {|k,v| new_params[k] = v} 28: 29: if params.has_key?(:_convert_types) 30: @convert_types = params[:_convert_types] 31: end 32: 33: db = @handle.connect(db_args, user, auth, new_params) 34: dbh = DatabaseHandle.new(db, @convert_types) 35: # FIXME trace 36: # dbh.trace(@trace_mode, @trace_output) 37: dbh.driver_name = @driver_name 38: 39: if block_given? 40: begin 41: yield dbh 42: ensure 43: dbh.disconnect if dbh.connected? 44: end 45: else 46: return dbh 47: end 48: end
See BaseDriver#disconnect_all.
# File lib/dbi/handles/driver.rb, line 56 56: def disconnect_all 57: @handle.disconnect_all 58: end