Class | ActiveRecord::ConnectionAdapters::DB2Adapter |
In: |
vendor/rails/activerecord/lib/active_record/connection_adapters/db2_adapter.rb
|
Parent: | AbstractAdapter |
The DB2 adapter works with the C-based CLI driver (raa.ruby-lang.org/project/ruby-db2/).
Options:
# File vendor/rails/activerecord/lib/active_record/connection_adapters/db2_adapter.rb, line 86 86: def adapter_name() 87: 'DB2' 88: end
# File vendor/rails/activerecord/lib/active_record/connection_adapters/db2_adapter.rb, line 94 94: def add_limit_with_offset!(sql, limit, offset) 95: raise ArgumentError, 'add_limit_with_offset! not implemented' 96: end
# File vendor/rails/activerecord/lib/active_record/connection_adapters/db2_adapter.rb, line 98 98: def add_limit_without_offset!(sql, limit) 99: sql << " FETCH FIRST #{limit} ROWS ONLY" 100: end
# File vendor/rails/activerecord/lib/active_record/connection_adapters/db2_adapter.rb, line 68 68: def begin_db_transaction 69: @connection.set_auto_commit_off 70: end
# File vendor/rails/activerecord/lib/active_record/connection_adapters/db2_adapter.rb, line 102 102: def columns(table_name, name = nil) 103: stmt = DB2::Statement.new(@connection) 104: result = [] 105: 106: stmt.columns(table_name.upcase).each do |c| 107: c_name = c[3].downcase 108: c_default = c[12] == 'NULL' ? nil : c[12] 109: c_type = c[5].downcase 110: c_type += "(#{c[6]})" if !c[6].nil? && c[6] != '' 111: result << Column.new(c_name, c_default, c_type) 112: end 113: 114: stmt.free 115: result 116: end
# File vendor/rails/activerecord/lib/active_record/connection_adapters/db2_adapter.rb, line 72 72: def commit_db_transaction 73: @connection.commit 74: @connection.set_auto_commit_on 75: end
# File vendor/rails/activerecord/lib/active_record/connection_adapters/db2_adapter.rb, line 52 52: def execute(sql, name = nil) 53: rows_affected = 0 54: 55: log(sql, name) do 56: stmt = DB2::Statement.new(@connection) 57: stmt.exec_direct(sql) 58: rows_affected = stmt.row_count 59: stmt.free 60: end 61: 62: rows_affected 63: end
# File vendor/rails/activerecord/lib/active_record/connection_adapters/db2_adapter.rb, line 47 47: def insert(sql, name = nil, pk = nil, id_value = nil) 48: execute(sql, name = nil) 49: id_value || last_insert_id 50: end
# File vendor/rails/activerecord/lib/active_record/connection_adapters/db2_adapter.rb, line 82 82: def quote_column_name(column_name) 83: column_name 84: end
# File vendor/rails/activerecord/lib/active_record/connection_adapters/db2_adapter.rb, line 90 90: def quote_string(string) 91: string.gsub(/'/, "''") # ' (for ruby-mode) 92: end
# File vendor/rails/activerecord/lib/active_record/connection_adapters/db2_adapter.rb, line 77 77: def rollback_db_transaction 78: @connection.rollback 79: @connection.set_auto_commit_on 80: end
# File vendor/rails/activerecord/lib/active_record/connection_adapters/db2_adapter.rb, line 39 39: def select_all(sql, name = nil) 40: select(sql, name) 41: end