Module: DataObjects::SqlServer

Defined in:
lib/do_sqlserver.rb,
lib/do_sqlserver.rb,
lib/do_sqlserver/version.rb,
lib/do_sqlserver/transaction.rb

Defined Under Namespace

Classes: Command, Connection, Reader, Result, Transaction

Constant Summary collapse

Mode =
:odbc
JDBC_DRIVER =
'net.sourceforge.jtds.jdbc.Driver'
VERSION =
'0.10.11'

Class Method Summary collapse

Class Method Details

.check_params(cmd, args) ⇒ Object

Raises:

  • (ArgumentError)


255
256
257
258
259
# File 'lib/do_sqlserver.rb', line 255

def self.check_params cmd, args
  actual = args.size
  expected = param_count(cmd)
  raise ArgumentError.new("Binding mismatch: #{actual} for #{expected}") if actual != expected
end

.param_count(cmd) ⇒ Object



275
276
277
# File 'lib/do_sqlserver.rb', line 275

def self.param_count cmd
  cmd.gsub(/'[^']*'/,'').scan(/\?/).size
end

.raise_db_error(e, cmd, args) ⇒ Object



261
262
263
264
265
266
267
268
269
270
271
272
273
# File 'lib/do_sqlserver.rb', line 261

def self.raise_db_error(e, cmd, args)
  msg = e.to_str
  case msg
  when /Too much parameters/, /No data found/
    #puts "'#{cmd}' (#{args.map{|a| a.inspect}*", "}): #{e.to_str}"
    check_params(cmd, args)
  else
    e.errstr << " running '#{cmd}'"
    #puts "'#{cmd}' (#{args.map{|a| a.inspect}*", "}): #{e.to_str}"
    #debugger
  end
  raise
end