Bobcares

ActiveRecord SQLserver adapter | All About

by | Jun 4, 2022

ActiveRecord SQLserver adapter can be demystified with this informative article from our experts. 

At Bobcares, we offer solutions for every query, big and small, as a part of our SQL Server Support Services.

Let’s take a look at how our SQL Server Support Team is ready to help customers with the ActiveRecord sqlserver adapter.

All About ActiveRecord sqlserver adapter

The ActiveRecord sqlserver adapter relies on OUTPUT INSERTED in order to select data type keys like UUID tables. Furthermore, if we are using ActiveRecord as a base class, the database datastream contents are from the metadata in the database.

 

activerecord sqlserver adapter

According to our SQL server experts, we have to use a table prefix name dbo Independence on the user and schema setup. For instance:

ActiveRecord::Base.table_name_prefix = 'dbo.'

Moreover, we can change, create or drop a schema in the migration file as seen below:

class CreateFooSchema < ActiveRecord::Migration[7.0]
  def up
    create_schema('foo')

    # Or you could move a table to a different schema

    change_table_schema('foo', 'dbo.admin')
  end

  def down
    drop_schema('foo')
  end
end

Configuring Connections to the database

Additionally, we can switch to a non-standard AbstractAdapter interface in order to configure the connections to the database for the ActiveRecord sqlserver adapter. In order to do that, we have to override the configure_connection method. For instance:

moodule ActiveRecord
  module ConnectionAdapters
    class SQLServerAdapter < AbstractAdapter
      def configure_connection
        raw_connection_do "SET TEXTSIZE #{64.megabytes}"
      end
    end
  end
end

Furthermore, TinyTDS supports an application name as it logs into the SQL Server. This name comes in handy while identifying the connection in the SQL server’s activity monitor. By default, TinyTDS uses Rails::Application name or the appname from the database.yml file.

Here is an example of how we can use the database.yml file for the process ID in the application name:

development:
  adapter: sqlserver
  appname: <%= "myapp_#{Process.pid}" %>

Every class with ActiveRecord::Base as a subclass has access to an execute_procedure class method. This method uses the stored procedure’s name and any number of additional variables to pass on to the procedure. For instance:

Account.execute_procedure(:update_totals, 'admin', nil, true)

Or with named parameters as seen below:

Account.execute_procedure(:update_totals, named: 'params')

The 3.2 adapter version supports ActiveRecord sqlserver adapter’s explain features. This is also known as showplan in SQL Server. In fact, we can use the SHOWPLAN_ALL option by default and format it via a simple table printer.

Our Support experts would also like to point out that we can specify the SQL server adapter while creating a new Rails application as seen here:

rails new my_app --database=sqlserver

After that, we have to connect the application to the SQL server instance by editing the config/database.yml file. At this point, we will add the username, password as well as host of the SQL server instance to the file.

Furthermore, since the adapter does not have strict gem dependencies external to the ActiveRecord, we can choose a connection mode, By default, it is dblib which relies on the TinyTDS gem. All we have to do is bundle the gem. After that, the adapter will start using it.

[Need assistance with a different issue? We are available 24/7.]

Conclusion

In a nutshell, our skilled SQL Server Support Engineers at Bobcares introduced us to ActiveRecord sqlserver adapter.

PREVENT YOUR SERVER FROM CRASHING!

Never again lose customers to poor server speed! Let us help you.

Our server experts will monitor & maintain your server 24/7 so that it remains lightning fast and secure.

GET STARTED

0 Comments

Submit a Comment

Your email address will not be published. Required fields are marked *

Never again lose customers to poor
server speed! Let us help you.