On Friday, March 3, 2017 at 10:18:30 AM UTC-8, Tim Tilberg wrote: > > Yesterday I was using Sequel to export some data from MS SQL Server using > a bunch of sprocs. Within these sprocs were statements that create temp > tables and I kept coming across: > > column does not allow nulls. INSERT fails. > > > > /home/ttilberg/.rvm/gems/ruby-2.2.5/gems/sequel-4.41.0/lib/sequel/adapters/tinytds.rb:218:in > `fields': TinyTds::Error: Cannot insert the value NULL into column > 'tire_category', table 'tempdb.dbo.#custom_out___________0000000003EA'; > column does not allow nulls. INSERT fails. > (Sequel::NotNullConstraintViolation) > > > > I tracked the issue down to the TinyTDS level and asked the maintainer for > his take on it, with lots of description of the issue. > > > https://github.com/rails-sqlserver/tiny_tds/issues/248#issuecomment-283763324 > > He mentioned: > > I think the issue is that a pure DBLIB connection needs a few sane >> configurations set. We do this in the ActiveRecord adapter for TinyTDS. > > > and proceeds to show a few settings that get set by default in the > activerecord-sqlserver gem > <https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/blob/master/lib/active_record/connection_adapters/sqlserver_adapter.rb#L373-L379> > > It turns out executing `SET ANSI_DEFAULTS ON` fixed my issue. > > I am curious if some of these same defaults seen in the > activerecrd-sqlserver gem would also make sense in sequel/adapters/tinytds > (or even shared/mssql)? I see that `TEXTSIZE` is set if it's specified, but > I didn't see any matches for `ANSI` or some others that Metaskills sets in > activerecord. > > This could potentially be a hazardous change, but I'm curious what your > take on it is. >
This is potentially something that could be supported as an option, but is not a change I feel comfortable making the default due to backwards compatibility issues. Thanks, Jeremy -- You received this message because you are subscribed to the Google Groups "sequel-talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/sequel-talk. For more options, visit https://groups.google.com/d/optout.
