Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Datenbankunabhängige SQL-String-Verkettung in Rails

Ich hatte das gleiche Problem und bin nie auf etwas gekommen, das in Rails eingebaut war. Also habe ich diese kleine Methode geschrieben.

# 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

Ich denke, jemand sollte wirklich eine Art SQL-Hilfs-Plugin schreiben, das einfache SQL-Ausdrücke automatisch formatieren kann, basierend auf den richtigen Funktionen oder Operatoren für den aktuellen Adapter. Vielleicht schreibe ich selbst eins.