Methods
Public Instance
Included modules
Constants
DECIMAL_TYPE_RE | = | /decimal/io | ||
LAST_INSERT_ID | = | "SELECT @@IDENTITY".freeze |
Public Instance methods
alter_table
(name, *)
Remove cached schema after altering a table, since otherwise it can be cached incorrectly in the rename column case.
[show source]
# File lib/sequel/adapters/ado/access.rb, line 96 def alter_table(name, *) super remove_cached_schema(name) nil end
disconnect_connection
(conn)
Access doesn't let you disconnect if inside a transaction, so try rolling back an existing transaction first.
[show source]
# File lib/sequel/adapters/ado/access.rb, line 104 def disconnect_connection(conn) conn.RollbackTrans rescue nil super end
execute_insert
(sql, opts=OPTS)
[show source]
# File lib/sequel/adapters/ado/access.rb, line 109 def execute_insert(sql, opts=OPTS) synchronize(opts[:server]) do |conn| begin r = log_yield(sql){conn.Execute(sql)} res = log_yield(LAST_INSERT_ID){conn.Execute(LAST_INSERT_ID)} res.getRows.transpose.each{|r| return r.shift} rescue ::WIN32OLERuntimeError => e raise_error(e) end end nil end
foreign_key_list
(table, opts=OPTS)
Note OpenSchema returns compound foreign key relationships as multiple rows
[show source]
# File lib/sequel/adapters/ado/access.rb, line 148 def foreign_key_list(table, opts=OPTS) m = output_identifier_meth fks = ado_schema_foreign_keys(table).inject({}) do |memo, fk| name = m.call(fk['FK_NAME']) specs = memo[name] ||= { :columns => [], :table => m.call(fk['PK_TABLE_NAME']), :key => [], :deferrable => fk['DEFERRABILITY'], :name => name, :on_delete => fk['DELETE_RULE'], :on_update => fk['UPDATE_RULE'] } specs[:columns] << m.call(fk['FK_COLUMN_NAME']) specs[:key] << m.call(fk['PK_COLUMN_NAME']) memo end fks.values end
indexes
(table_name,opts=OPTS)
Note OpenSchema returns compound indexes as multiple rows
[show source]
# File lib/sequel/adapters/ado/access.rb, line 133 def indexes(table_name,opts=OPTS) m = output_identifier_meth idxs = ado_schema_indexes(table_name).inject({}) do |memo, idx| unless idx["PRIMARY_KEY"] index = memo[m.call(idx["INDEX_NAME"])] ||= { :columns=>[], :unique=>idx["UNIQUE"] } index[:columns] << m.call(idx["COLUMN_NAME"]) end memo end idxs end
tables
(opts=OPTS)
[show source]
# File lib/sequel/adapters/ado/access.rb, line 122 def tables(opts=OPTS) m = output_identifier_meth ado_schema_tables.map {|tbl| m.call(tbl['TABLE_NAME'])} end
views
(opts=OPTS)
[show source]
# File lib/sequel/adapters/ado/access.rb, line 127 def views(opts=OPTS) m = output_identifier_meth ado_schema_views.map {|tbl| m.call(tbl['TABLE_NAME'])} end