module NSSQL

NSSQL module.

Constants

VERSION

Public Class Methods

configure() click to toggle source
# File lib/nssql.rb, line 31
def configure
  NSSQL::Settings.configure
end
select_array(query) click to toggle source
# File lib/nssql.rb, line 16
def select_array(query)
  execute(query, &:fetch_all)
end
select_to_file(query) click to toggle source
# File lib/nssql.rb, line 20
def select_to_file(query)
  query = one_line_query(query)

  isql_command = "isql -v Netsuite #{NSSQL::Settings.user} '#{NSSQL::Settings.password}' -b -q -d,"
  iconv_command = 'iconv -f iso-8859-1 -t utf-8'

  Tempfile.new.tap do |file|
    system_call("echo \"#{query}\" | #{isql_command} | #{iconv_command} > #{file.path}")
  end
end

Private Class Methods

execute(query) { |statement| ... } click to toggle source
# File lib/nssql.rb, line 37
def execute(query)
  statement = netsuite_connection.prepare(query).execute
  result = yield statement

  statement.drop

  result
end
netsuite_connection() click to toggle source
# File lib/nssql.rb, line 54
def netsuite_connection
  ODBC.connect('NetSuite', NSSQL::Settings.user, NSSQL::Settings.password)
end
one_line_query(query) click to toggle source
# File lib/nssql.rb, line 50
def one_line_query(query)
  query.tr("\n", ' ').gsub(/\s+/, ' ').strip
end
system_call(command) click to toggle source
# File lib/nssql.rb, line 46
def system_call(command)
  `#{command}`
end