Class ActiveRecord::ConnectionAdapters::SQLServerAdapter
In: lib/adapter_extensions/connection_adapters/sqlserver_adapter.rb
Parent: AbstractAdapter

Adds new functionality to ActiveRecord SQLServerAdapter.

Methods

Public Instance methods

Inserts an INTO table_name clause to the sql_query.

[Source]

    # File lib/adapter_extensions/connection_adapters/sqlserver_adapter.rb, line 11
11:       def add_select_into_table(new_table_name, sql_query)
12:         sql_query.sub(/FROM/i, "INTO #{new_table_name} FROM")
13:       end

Copy the specified table.

[Source]

    # File lib/adapter_extensions/connection_adapters/sqlserver_adapter.rb, line 16
16:       def copy_table(old_table_name, new_table_name)
17:         execute add_select_into_table(new_table_name, "SELECT * FROM #{old_table_name}")
18:       end

[Source]

   # File lib/adapter_extensions/connection_adapters/sqlserver_adapter.rb, line 6
6:       def support_select_into_table?
7:         true
8:       end

Protected Instance methods

Call bulk_load, as that method wraps this method.

Bulk load the data in the specified file. This implementation relies on bcp being in your PATH.

Options:

  • :ignore — Ignore the specified number of lines from the source file
  • :columns — Array of column names defining the source file column order
  • :fields — Hash of options for fields:
  • :delimited_by — The field delimiter
  • :enclosed_by — The field enclosure

[Source]

    # File lib/adapter_extensions/connection_adapters/sqlserver_adapter.rb, line 32
32:       def do_bulk_load(file, table_name, options={})
33:         env_name = options[:env] || RAILS_ENV
34:         config = ActiveRecord::Base.configurations[env_name]
35:           puts "Loading table \"#{table_name}\" from file \"#{filename}\""
36:           cmd = "bcp \"#{config['database']}.dbo.#{table_name}\" in " +
37:                 "\"#{filename}\" -S \"#{config['host']}\" -c " +
38:                 "-t \"#{options[:delimited_by]}\" -b10000 -a8192 -q -E -U \"#{config['username']}\" " +
39:                 "-P \"#{config['password']}\" -e \"#{filename}.in.errors\""
40:           `#{cmd}`
41:       end

[Validate]