- add_limit!
- add_limit_offset!
- begin_db_transaction
- commit_db_transaction
- default_sequence_name
- delete
- execute
- insert
- reset_sequence!
- rollback_db_transaction
- select_all
- select_one
- select_value
- select_values
- transaction
- update
Alias for add_limit_offset!.
[ show source ]
# File vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb, line 75
75: def add_limit!(sql, options)
76: add_limit_offset!(sql, options) if options
77: end
Appends LIMIT and OFFSET options to a SQL statement. This method modifies the sql parameter.
Examples
add_limit_offset!('SELECT * FROM suppliers', {:limit => 10, :offset => 50})
generates
SELECT * FROM suppliers LIMIT 10 OFFSET 50
[ show source ]
# File vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb, line 85
85: def add_limit_offset!(sql, options)
86: if limit = options[:limit]
87: sql << " LIMIT #{limit}"
88: if offset = options[:offset]
89: sql << " OFFSET #{offset}"
90: end
91: end
92: end
Begins the transaction (and turns off auto-committing).
[ show source ]
# File vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb, line 65
65: def begin_db_transaction() end
Commits the transaction (and turns on auto-committing).
[ show source ]
# File vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb, line 68
68: def commit_db_transaction() end
[ show source ]
# File vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb, line 94
94: def default_sequence_name(table, column)
95: nil
96: end
Executes the delete statement and returns the number of rows affected.
[ show source ]
# File vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb, line 40
40: def delete(sql, name = nil) end
Executes the SQL statement in the context of this connection. This abstract method raises a NotImplementedError.
[ show source ]
# File vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb, line 29
29: def execute(sql, name = nil)
30: raise NotImplementedError, "execute is an abstract method"
31: end
Returns the last auto-generated ID from the affected table.
[ show source ]
# File vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb, line 34
34: def insert(sql, name = nil, pk = nil, id_value = nil, sequence_name = nil) end
Set the sequence to the max value of the table’s column.
[ show source ]
# File vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb, line 99
99: def reset_sequence!(table, column, sequence = nil)
100: # Do nothing by default. Implement for PostgreSQL, Oracle, ...
101: end
Rolls back the transaction (and turns on auto-committing). Must be done if the transaction block raises an exception or returns false.
[ show source ]
# File vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb, line 72
72: def rollback_db_transaction() end
Returns an array of record hashes with the column names as keys and column values as values.
[ show source ]
# File vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb, line 6 6: def select_all(sql, name = nil) 7: end
Returns a record hash with the column names as keys and column values as values.
[ show source ]
# File vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb, line 11
11: def select_one(sql, name = nil)
12: end
Returns a single value from a record
[ show source ]
# File vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb, line 15
15: def select_value(sql, name = nil)
16: result = select_one(sql, name)
17: result.nil? ? nil : result.values.first
18: end
Returns an array of the values of the first column in a select:
select_values("SELECT id FROM companies LIMIT 3") => [1,2,3]
[ show source ]
# File vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb, line 22
22: def select_values(sql, name = nil)
23: result = select_all(sql, name)
24: result.map{ |v| v.values.first }
25: end
Wrap a block in a transaction. Returns result of block.
[ show source ]
# File vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb, line 43
43: def transaction(start_db_transaction = true)
44: transaction_open = false
45: begin
46: if block_given?
47: if start_db_transaction
48: begin_db_transaction
49: transaction_open = true
50: end
51: yield
52: end
53: rescue Exception => database_transaction_rollback
54: if transaction_open
55: transaction_open = false
56: rollback_db_transaction
57: end
58: raise
59: end
60: ensure
61: commit_db_transaction if transaction_open
62: end
Executes the update statement and returns the number of rows affected.
[ show source ]
# File vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb, line 37
37: def update(sql, name = nil) end