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:
require 'odbc'
conn = ODBC::connect('giomai_db_dsn', 'sa', 'password' )
query = conn.prepare("select * from città where idcittà = 1)
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
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!
On Fri, 22 Oct 2010 04:53:06 -0500, Cosimo Guglielmucci
<cosimo.guglielmucci@gmail.com> wrote in
<c34bbdec0a4759315d54d7c13d36e23c@ruby-forum.com>:
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:
require 'odbc'
conn = ODBC::connect('giomai_db_dsn', 'sa', 'password' )
query = conn.prepare("select * from città where idcittà = 1)
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
This is really a problem with the ODBC driver for SQL Server. You'd
be much more likely to get answers in the newsgroup for that topic.
See microsoft.public.sqlserver.odbc, which you can access via
Microsoft's "Communities" function
<Redirecting;
or Google Groups
<http://groups.google.com/group/microsoft.public.sqlserver.odbc/topics>\.
···
--
Charles Calvert
Moderator - alt.computer.consultants.moderated
Submission Address: accm@celticwolf.net
Contact Address: accm_mod@celticwolf.net
As Soon As you are using non ASCII chars for column ( or table ) names
You has to use the utf-8 charset. So you need a
require 'odbc_utf8'
And you has to convert your query strings from cp850 to utf-8 with
iconv
And you may have to convert you result from utf-8 back to cp850.
···
On 22 Okt., 11:53, Cosimo Guglielmucci <cosimo.guglielmu...@gmail.com> wrote:
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:
> require 'odbc'
> conn = ODBC::connect('giomai_db_dsn', 'sa', 'password' )
> query = conn.prepare("select * from città where idcittà = 1)
> 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
>
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.