On Monday, February 2, 2015 at 5:48:50 AM UTC-8, Horacio Peña wrote:
>
> I am able to connect to a MSSQL server using sequel, and I can fetch data
> using .fetch, but when trying to use datasets I got "Incorrect syntax"
>
> 2.0.0-p247 :002 > a= Sequel.odbc('server', user: 'sqluser', password:
> 'password')
> #<Sequel::ODBC::Database: {:adapter=>:odbc, :database=>"server",
> :user=>"sqluser", :password=>"password"}>
> 2.0.0-p247 :006 > a.fetch("select * from
> _PRODUCTIVIDAD_DIARIA_USUARIO").first
>
> {
> :cliente => " ",
> :fecha => 2014-02-03 00:00:00 -0300,
> ...
>
> 2.0.0-p247 :008 > a[:_PRODUCTIVIDAD_DIARIA_USUARIO]
> #<Sequel::ODBC::Dataset: "SELECT * FROM \"_PRODUCTIVIDAD_DIARIA_USUARIO\"">
>
> 2.0.0-p247 :009 > a[:_PRODUCTIVIDAD_DIARIA_USUARIO].first
> Sequel::DatabaseError: ODBC::Error: 37000 (102) [FreeTDS][SQL
> Server]Incorrect syntax near '_PRODUCTIVIDAD_DIARIA_USUARIO'.
> from
> /usr/local/rvm/gems/ruby-2.0.0-p247/gems/sequel-4.17.0/lib/sequel/adapters/odbc.rb:45:in
>
> `run'
> from
> /usr/local/rvm/gems/ruby-2.0.0-p247/gems/sequel-4.17.0/lib/sequel/adapters/odbc.rb:45:in
>
> `block (2 levels) in execute'
> from
> /usr/local/rvm/gems/ruby-2.0.0-p247/gems/sequel-4.17.0/lib/sequel/database/logging.rb:33:in
>
> `log_yield'
> ...
>
> It seems to me that the quotes around the table name are the problem. How
> can that be solved?
>
DB.quote_identifiers = false
> Also, the MSSQL server has some tables with non-ascii names, like:
>
> 2.0.0-p247 :031 > a.fetch("select TABLE_NAME from
> information_schema.tables").all
>
> [63] {
> :table_name => "_CAMPA\xC3\x91AS"
> },
>
> I've tried both:
>
> 2.0.0-p247 :034 > a.fetch("select * from _CAMPA\xC3\x91AS").all
> Sequel::DatabaseError: ODBC::Error: 37000 (102) [FreeTDS][SQL
> Server]Incorrect syntax near '�'.
>
> and
>
> 2.0.0-p247 :035 > a.fetch("select * from _CAMPAÑAS").all
> Sequel::DatabaseError: ODBC::Error: 37000 (102) [FreeTDS][SQL
> Server]Incorrect syntax near '�'.
>
> Can that be solved?
>
If you can let me know how to get it to work using the underlying driver
(ruby-odbc in this case), I can probably let you know how to get it work
with Sequel.
Also, unless there is a strong reason to use the odbc adapter, I recommend
using the tinytds adapter instead.
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 http://groups.google.com/group/sequel-talk.
For more options, visit https://groups.google.com/d/optout.