On Aug 6, 10:08 am, Ricardo Ramalho <[email protected]> wrote: > I got it working. Details for DSN-less connections: > > 1. Driver parameters keys must be in uppercase; > 2. The connect(server) method in odbc.rb converts all server_opts into > driver parameters. There are some that don't concern ODBC > like :disconnection_proc and :single_threaded. These were not strings, > and were crashing. These can either be ignored or just stringified. I > chose the latter for simplicity. > > This was the driver with the minimum fields required, tested using > ODBC directly: > => #<ODBC::Driver:0x15a32ea0 @attrs={"PORT"=>"1234", > "SERVER"=>"1.2.3.4", "UID"=>"user1", "PWD"=>"password", > "DRIVER"=>"{FreeTDS}"}, @name="Driver1"> > > This was the driver created by the code (with the modifications): > #<ODBC::Driver:0x18f72cf0 @name="Sequel ODBC Driver130", > @attrs={"DISCONNECTION_PROC"=>"#<Proc:0x0000000018b94020@/opt/ruby- > enterprise/lib/ruby/gems/1.8/gems/sequel-3.13.0/lib/sequel/database/ > misc.rb:43>", "PORT"=>"1234", "ADAPTER"=>"odbc", "UID"=>"user", > "SERVER"=>"1.2.3.4", "DB_TYPE"=>"mssql", "PWD"=>"password", > "DRIVER"=>"{FreeTDS}", "SINGLE_THREADED"=>"false"}> > which is close enough. > > The modifications in odbc.rb: > 33c33 > < drv.attrs[param.to_s.capitalize] = value > ---> drv.attrs[param.to_s.upcase] = value.to_s > > The capitalize part is important, the value.to_s is just a dirty hack. > Probably it would be better to > ignore :disconnection_proc, :single_threaded, and the like (since they > were not passed in the connect call). > > The connect command for sequel irb used in these tests: > Sequel.connect(:adapter=>'odbc',:driver=>'FreeTDS',:server=>'1.2.3.4',:port=>1234, > :uid=>'user',:pwd=>'password',:db_type=>'mssql').run("SELECT > 1") > > Of course, there should be an entry in obdcinst.ini named FreeTDS. > > Can you update this code to the gem?
Thanks for your investigative work. I'll test the patch on Monday, and if it doesn't break anything, I'll merge it into the master branch and it will be available in Sequel 3.15.0 (which will be released in early September). If anyone else can test the patch in their setup and let me know the effects (positive, negative, no change), I'd appreciate it. Thanks, Jeremy -- You received this message because you are subscribed to the Google Groups "sequel-talk" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/sequel-talk?hl=en.
