module ArJdbc::MSSQL::Utils

Constants

GET_TABLE_NAME_FROM_RE
GET_TABLE_NAME_INSERT_UPDATE_RE

Public Instance Methods

get_table_name(sql, qualified = nil) click to toggle source
# File lib/arjdbc/mssql/utils.rb, line 36
def get_table_name(sql, qualified = nil)
  if sql =~ GET_TABLE_NAME_INSERT_UPDATE_RE
    tn = $2 || $3
    qualified ? tn : unqualify_table_name(tn)
  elsif sql =~ GET_TABLE_NAME_FROM_RE
    qualified ? $1 : unqualify_table_name($1)
  else
    nil
  end
end
remove_identifier_delimiters(keyword) click to toggle source

See “Delimited Identifiers”: msdn.microsoft.com/en-us/library/ms176027.aspx

# File lib/arjdbc/mssql/utils.rb, line 76
def remove_identifier_delimiters(keyword)
  keyword.to_s.tr("\]\[\"", '')
end
unqualify_db_name(table_name) click to toggle source
# File lib/arjdbc/mssql/utils.rb, line 68
def unqualify_db_name(table_name)
  table_names = table_name.to_s.split('.')
  table_names.length == 3 ? remove_identifier_delimiters(table_names.first) : nil
end
unqualify_table_name(table_name) click to toggle source
# File lib/arjdbc/mssql/utils.rb, line 59
def unqualify_table_name(table_name)
  remove_identifier_delimiters(table_name.to_s.split('.').last)
end
unqualify_table_schema(table_name) click to toggle source
# File lib/arjdbc/mssql/utils.rb, line 63
def unqualify_table_schema(table_name)
  schema_name = table_name.to_s.split('.')[-2]
  schema_name.nil? ? nil : remove_identifier_delimiters(schema_name)
end
unquote_column_name(column_name) click to toggle source
# File lib/arjdbc/mssql/utils.rb, line 51
def unquote_column_name(column_name)
  remove_identifier_delimiters(column_name)
end
unquote_string(string) click to toggle source
# File lib/arjdbc/mssql/utils.rb, line 55
def unquote_string(string)
  string.to_s.gsub("''", "'")
end
unquote_table_name(table_name) click to toggle source
# File lib/arjdbc/mssql/utils.rb, line 47
def unquote_table_name(table_name)
  remove_identifier_delimiters(table_name)
end