| 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