| Class | ActiveRecord::ConnectionAdapters::DB2Adapter |
| In: |
vendor/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/activerecord/lib/active_record/connection_adapters/db2_adapter.rb, line 84
84: def adapter_name()
85: 'DB2'
86: end
# File vendor/activerecord/lib/active_record/connection_adapters/db2_adapter.rb, line 92
92: def add_limit!(sql, limit)
93: sql << " FETCH FIRST #{limit} ROWS ONLY"
94: end
# File vendor/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/activerecord/lib/active_record/connection_adapters/db2_adapter.rb, line 96
96: def columns(table_name, name = nil)
97: stmt = DB2::Statement.new(@connection)
98: result = []
99:
100: stmt.columns(table_name.upcase).each do |c|
101: c_name = c[3].downcase
102: c_default = c[12] == 'NULL' ? nil : c[12]
103: c_type = c[5].downcase
104: c_type += "(#{c[6]})" if !c[6].nil? && c[6] != ''
105: result << Column.new(c_name, c_default, c_type)
106: end
107:
108: stmt.free
109: result
110: end
# File vendor/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/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, @connection) do |connection|
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/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/activerecord/lib/active_record/connection_adapters/db2_adapter.rb, line 82
82: def quote_column_name(name) name; end
# File vendor/activerecord/lib/active_record/connection_adapters/db2_adapter.rb, line 88
88: def quote_string(s)
89: s.gsub(/'/, "''") # ' (for ruby-mode)
90: end
# File vendor/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/activerecord/lib/active_record/connection_adapters/db2_adapter.rb, line 39
39: def select_all(sql, name = nil)
40: select(sql, name)
41: end