looking at ActiveRecord::ConnectionAdapters::Quoting -> def quote(value, column = nil)
e.g. in the abstract adapter def quoted_true "'t'" end will be overwritten in the mysql_adapter with def quoted_true QUOTED_TRUE end
I thought the adapters should overwrite these quoting methods, so that the different data types will be converted in a format, the database will understand.
One possible timestamp format for a Microsoft SQL server database is the odbc format: { ts '2010-07-20 23:59:59' }
but the abstract adapter will tack some additional quotes to this format if value.acts_like?(:date) || value.acts_like?(:time) "'#{quoted_date(value)}'"
and the this format will fail and the database reports an error.
Two possible solutions:
1. the abstract adapter will not tack any additional chars to the format, but forward all quotings ( quote_string, quote_true, quote_date, ... ) to the physical adapter ( with some defaults in the abstract adapter ) 2. every adapter overwrites def quote(value, column = nil) but this may lead to different quoting behaviours in the adapters.
Comments ?
Best regards
Klaus