DBI::BaseDatabase
See DBI::BaseDatabase.
Additional Attributes on the DatabaseHandle:
AutoCommit: force a commit after each statement execution.
odbc_ignorecase: Be case-insensitive in operations.
odbc_timeout: Return after a certain time regardless of whether the operation returned anything.
# File lib/dbd/odbc/database.rb, line 96 def []=(attr, value) case attr when 'AutoCommit' @handle.autocommit(value) when 'odbc_ignorecase' @handle.ignorecase(value) when 'odbc_timeout' @handle.timeout(value) else if attr =~ /^odbc_/ or attr != /_/ raise DBI::NotSupportedError, "Option '#{attr}' not supported" else # option for some other driver - quitly ignore return end end @attr[attr] = value rescue DBI::DBD::ODBC::ODBCErr => err raise DBI::DatabaseError.new(err.message) end
See DBI::BaseDatabase#columns. Additional Attributes:
nullable: boolean, true if NULLs are allowed in this column.
# File lib/dbd/odbc/database.rb, line 25 def columns(table) cols = [] stmt = @handle.columns(table) stmt.ignorecase = true stmt.each_hash do |row| info = Hash.new cols << info info['name'] = row['COLUMN_NAME'] info['type_name'] = row['TYPE_NAME'] info['sql_type'] = row['DATA_TYPE'] info['nullable'] = case row['NULLABLE'] when 1 true when 0 false else nil end info['precision'] = row['PRECISION'] info['scale'] = row['SCALE'] end stmt.drop cols rescue DBI::DBD::ODBC::ODBCErr => err raise DBI::DatabaseError.new(err.message) end
# File lib/dbd/odbc/database.rb, line 116 def commit @handle.commit rescue DBI::DBD::ODBC::ODBCErr => err raise DBI::DatabaseError.new(err.message) end
# File lib/dbd/odbc/database.rb, line 12 def database_name @handle.get_info('SQL_DATABASE_NAME') end
# File lib/dbd/odbc/database.rb, line 5 def disconnect @handle.rollback @handle.disconnect rescue DBI::DBD::ODBC::ODBCErr => err raise DBI::DatabaseError.new(err.message) end
# File lib/dbd/odbc/database.rb, line 76 def do(statement, *bindvars) @handle.do(statement, *bindvars) rescue DBI::DBD::ODBC::ODBCErr => err raise DBI::DatabaseError.new(err.message) end
# File lib/dbd/odbc/database.rb, line 82 def execute(statement, *bindvars) stmt = @handle.run(statement, *bindvars) DBI::DBD::ODBC::Statement.new(stmt, statement) rescue DBI::DBD::ODBC::ODBCErr => err raise DBI::DatabaseError.new(err.message) end
# File lib/dbd/odbc/database.rb, line 16 def ping @handle.connected? end
# File lib/dbd/odbc/database.rb, line 70 def prepare(statement) DBI::DBD::ODBC::Statement.new(@handle.prepare(statement), statement) rescue DBI::DBD::ODBC::ODBCErr => err raise DBI::DatabaseError.new(err.message) end
Generated with the Darkfish Rdoc Generator 2.