class DBI::DBD::ODBC::Database
See DBI::BaseDatabase.
Public Instance Methods
[]=(attr, value)
click to toggle source
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
columns(table)
click to toggle source
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
commit()
click to toggle source
# 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
database_name()
click to toggle source
# File lib/dbd/odbc/database.rb, line 12 def database_name @handle.get_info('SQL_DATABASE_NAME') end
disconnect()
click to toggle source
# 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
do(statement, *bindvars)
click to toggle source
# 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
execute(statement, *bindvars)
click to toggle source
# 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
ping()
click to toggle source
# File lib/dbd/odbc/database.rb, line 16 def ping @handle.connected? end
prepare(statement)
click to toggle source
# 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
rollback()
click to toggle source
# File lib/dbd/odbc/database.rb, line 122 def rollback @handle.rollback rescue DBI::DBD::ODBC::ODBCErr => err raise DBI::DatabaseError.new(err.message) end
tables()
click to toggle source
# File lib/dbd/odbc/database.rb, line 57 def tables stmt = @handle.tables stmt.ignorecase = true tabs = [] stmt.each_hash {|row| tabs << row["TABLE_NAME"] } stmt.drop tabs rescue DBI::DBD::ODBC::ODBCErr => err raise DBI::DatabaseError.new(err.message) end