Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Concaténation de chaînes SQL indépendante de la base de données dans les rails

J'ai eu le même problème et je n'ai jamais proposé quoi que ce soit qui ait été intégré à Rails. J'ai donc écrit cette petite méthode.

# Symbols should be used for field names, everything else will be quoted as a string
def db_concat(*args)

  adapter = configurations[RAILS_ENV]['adapter'].to_sym
  args.map!{ |arg| arg.class==Symbol ? arg.to_s : "'#{arg}'" }

  case adapter
    when :mysql
      "CONCAT(#{args.join(',')})"
    when :sqlserver
      args.join('+')
    else
      args.join('||')
  end

end

Je pense que quelqu'un devrait vraiment écrire une sorte de plugin d'assistance SQL qui pourrait automatiquement formater des expressions SQL simples en utilisant les fonctions ou les opérateurs corrects pour l'adaptateur actuel. Je vais peut-être en écrire un moi-même.