class Sequel::SqlAnywhere::Database

  1. lib/sequel/adapters/sqlanywhere.rb
Parent: SqlAnywhere

Database class for SQLAnywhere databases used with Sequel.

Constants

DEFAULT_CONFIG = { :user => 'dba', :password => 'sql' }  
LAST_INSERT_ID = 'SELECT @@IDENTITY'.freeze  

Attributes

api [RW]

Public Instance methods

connect (server)
[show source]
# File lib/sequel/adapters/sqlanywhere.rb, line 49
def connect(server)
  opts = server_opts(server)
  unless conn_string = opts[:conn_string]
    conn_string = []
    conn_string << "Host=#{opts[:host]}#{":#{opts[:port]}" if opts[:port]}" if opts[:host]
    conn_string << "DBN=#{opts[:database]}" if opts[:database]
    conn_string << "UID=#{opts[:user]}" if opts[:user]
    conn_string << "Password=#{opts[:password]}" if opts[:password]
    conn_string << "CommLinks=#{opts[:commlinks]}" if opts[:commlinks]
    conn_string << "ConnectionName=#{opts[:connection_name]}" if opts[:connection_name]
    conn_string << "CharSet=#{opts[:encoding]}" if opts[:encoding]
    conn_string << "Idle=0" # Prevent the server from disconnecting us if we're idle for >240mins (by default)
    conn_string << nil
    conn_string = conn_string.join(';')
  end

  conn = @api.sqlany_new_connection
  raise LoadError, "Could not connect" unless conn && @api.sqlany_connect(conn, conn_string) == 1

  if Sequel.application_timezone == :utc
    @api.sqlany_execute_immediate(conn, "SET TEMPORARY OPTION time_zone_adjustment=0")
  end

  conn
end
disconnect_connection (c)

Closes given database connection.

[show source]
# File lib/sequel/adapters/sqlanywhere.rb, line 76
def disconnect_connection(c)
  @api.sqlany_disconnect(c)
end
execute (sql, opts=OPTS, &block)
[show source]
# File lib/sequel/adapters/sqlanywhere.rb, line 87
def execute(sql, opts=OPTS, &block)
  synchronize do |conn|
    _execute(conn, :select, sql, opts, &block)
  end
end
execute_dui (sql, opts=OPTS)

Returns number of rows affected

[show source]
# File lib/sequel/adapters/sqlanywhere.rb, line 81
def execute_dui(sql, opts=OPTS)
  synchronize do |conn|
    _execute(conn, :rows, sql, opts)
  end
end
execute_insert (sql, opts=OPTS)
[show source]
# File lib/sequel/adapters/sqlanywhere.rb, line 93
def execute_insert(sql, opts=OPTS)
  synchronize do |conn|
    _execute(conn, :insert, sql, opts)
  end
end