Hi all,
I’ve found very few on the net in regards of Windows and the option
available in the ODBC Driver/ODBC Driver Manager.
So the following problem still remain unsolved:
irb> require ‘odbc’
irb> conn = ODBC::connect(‘giomai_db_dsn’, ‘sa’, ‘password’ )
irb> query = conn.prepare("select * from città where idcittà = 1)
irb> query.execute
ODBC::Error: 37000 (170) [Microsoft][ODBC SQL Server Driver][SQL
Server]Riga 1: sintassi non corretta in prossimitα di ‘à’.
from (irb):xx:in `execute’
from (irb):xx
irb>
This is from Commands Prompt that use
D:>chcp
Tabella codici attiva: 850 ----------> CP850
that doesn’t include the ‘α’ character of the error message, and that is
the same both,
if toggle on or off the option ‘convert data characters’ in Driver
configuration from Windows ODBC driver manager.
Beside, in linux, I solved setting ‘character code = UTF8’ in
freeetds.conf
because the DB use CP1252, and this way it doesn’t influence the entire
system.
In fact, in windows, it also results in error from rail execution:
( RadRails )
Exception occurred during reader method compilation.
Maybe IDCitt� is not a valid Ruby identifier?
compile error
c:/ruby/lib/ruby/gems/1.8/gems/composite_primary_keys-2.3.2/lib/composite_primary_keys/attribute_methods.rb:34:
syntax error, unexpected tSTRING_BEG, expecting ‘)’
def IDCitt�; missing_attribute(‘IDCitt�’, caller) unless @attributes.has_key?(‘IDCitt�’); (v=@attributes[‘IDCitt�’]) && (v.to_i
rescue v ? 1 : 0); end
…
I don’t know where to investigate,
because linux also use ruby-odbc, I think!
But using Client ODBC in windows I have good result on the same table,
maybe because the client convert the characters code for the output
window!
and Christan tells us in his README:
Thus, depending on the -K option of ruby one could use
that code snippet:
...
if $KCODE == "UTF8" then
require 'odbc_utf8'
else
require 'odbc'
fi
But in sqlserver_adapter.rb i can only find a line:
require_library_or_gem ‘odbc’ unless defined?(ODBC)
So I inserted a require “odbc_utf8” in environment.rb,
I’ve choosed to change sqlserver_adapter.rb instead, replacing the above
with the following line:
require_library_or_gem ‘odbc_utf8’ unless defined?(ODBC_UTF8)
It works!
Do you think that can result in some problems?
Thank you, again,
I’ve been spending a lot of time digging up for this result.
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.