[#46093] 質問:mingw環境でのtcltklib.soのコンパイル — Dice <rubyist@...>

Diceです。

12 messages 2009/06/16

[ruby-list:46048] Re: RoR on Linux で MS-SQL にアクセスしたい

From: しん <dezawa@...>
Date: 2009-06-01 08:48:34 UTC
List: ruby-list #46048
出沢です

ありがとうございます。ruby-odbc で少し進みました。
が、unixODBC がエラーを吐きます。

rake aborted!
IM002 (0) [unixODBC][Driver Manager]Data source name not found, and no default driver specified
/usr/local/lib/ruby/gems/1.8/gems/dbd-odbc-0.2.4/lib/dbd/odbc/driver.rb:39:in `connect'

この driver.rb のこのあたりは次のようになっています
    def connect(dbname, user, auth, attr)
        driver_attrs = dbname.split(';')
        if driver_attrs.size > 1
            # DNS-less connection
        else
            # DNS given
p ["odbc:driver.rb DNS given",dbname]
            handle = ::ODBC.connect(dbname, user, auth)
p ["odbc:driver.rb DNS given",handle]
        end

このDNSはDSNのtypoだと思います。
DSNとは
freetds.conf
-----
  (上のほう省略)
[MYPROJECT]
  host  = sqlserver.example.com
-----
odbc.ini
-----
[MYPROJECT]
   Driver          = FreeTDS
-----
の MYPROJECT の事と思うのですが、
この ::ODBC.connect を呼ぶ直前の dbname を見ると、期待通りに入っています。

なぜ unixODBCは受けていない、と思うのでしょうか。
なにか確認すべき点は有るでしょうか

(まだ unixODBCのソースは眺めていません)

# こんなにややこしいはずはないと思うのですが、
# どっかで変なことしているのでしょうね。


In This Thread