実現したいこと
RubyでSQLServerのDBよりODBC接続にて情報を取得・更新したい。
問題
しかし接続ができない状態にあり、改善したいです。
知恵を貸していただけないでしょうか。
試したこと
・接続先サーバ名をIPアドレス直接指定
・接続先サーバ名の大文字小文字統一
・接続先サーバ名のみ、ディレクトリ無しでの指定
・接続先サーバ名/DB/テーブルの指定
→全て同一のエラーを出力
環境
PC:Windows10
Server:Windows2012 Server 64bit
言語:ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x64-mingw-ucrt]
使用ライブラリ: dbi, dbd-odbc
ODBCドライバ:ODBC Driver 11 for SQL Server
※EXCELマクロでは同ODBCドライバにて読み書き可能
実行コード(一部代替テキスト)
ruby
1require 'rubygems' 2require "dbi" 3require 'dbd/ODBC' 4dbh = DBI.connect("DBI:ODBC:Driver={ODBC Driver 11 for SQL Server};Server=(servername\directory);DATABASE=dbname", "username", "password") 5sth = dbh.prepare("SELECT 'Hello, DBI World' AS Message") 6sth.execute() 7while row = sth.fetch do 8 print "Message", "n"; 9 print "-------------------n"; 10 print row[0] 11end 12sth.finish 13dbh.disconnect
実行結果(エラーコード)
cmd
1PS D:\SQLtest> ruby odbc.rb 2C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/dbd-odbc-0.2.5/lib/dbd/odbc/driver.rb:36:in `rescue in connect': 08001 (53) [Microsoft][ODBC Driver 11 for SQL Server]Named Pipes Provider: Could not open a connection to SQL Server [53]. (DBI::DatabaseError) 3 from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/dbd-odbc-0.2.5/lib/dbd/odbc/driver.rb:15:in `connect' 4 from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/dbi-0.4.5/lib/dbi/handles/driver.rb:33:in `connect' 5 from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/dbi-0.4.5/lib/dbi.rb:148:in `connect' 6 from odbc.rb:11:in `<main>' 7C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/dbd-odbc-0.2.5/lib/dbd/odbc/driver.rb:28:in `drvconnect': 08001 (53) [Microsoft][ODBC Driver 11 for SQL Server]Named Pipes Provider: Could not open a connection to SQL Server [53]. (ODBC::Error) 8 from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/dbd-odbc-0.2.5/lib/dbd/odbc/driver.rb:28:in `connect' 9 from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/dbi-0.4.5/lib/dbi/handles/driver.rb:33:in `connect' 10 from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/dbi-0.4.5/lib/dbi.rb:148:in `connect' 11 from odbc.rb:11:in `<main>'
マイクロソフトでのエラーコード[53]記述
provider: Named Pipes Provider, error: 40 - SQL Serverへの接続Microsoft SQL Server開けMicrosoft SQL Serverエラー: 53)ネットワークに関連するエラーまたはインスタンス固有のエラーが発生し、ネットワークへの接続を確立SQL Server。 サーバーが見つからないか、アクセスできません。 インスタンス名が正しく、リモート接続を許可SQL Server構成されていることを確認します。
仮説
サーバー再度で別途設定が必要なのかもしれない。
(EXCELマクロからは接続可能であるが、別の設定が存在するかも・・・)
参考
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。