MSDE(MS SQLserver)をrubyで接続
http://www.ch-werner.de/rubyodbc/
ここでzipファイルをダウンロード
For Win32 operating systems DLLs of 0.997 are available in i386-msvcrt-ruby-odbc.zip.
It contains the files odbc.so and odbc_utf8.so
which need to be copied into the .../ruby/1.8/i386-msvcrt directory of
MSVC based Ruby 1.8 installations.
のとおりにコピー
(ruby以下に1.8フォルダないのでそれっぽいところにおけばいいのかな?と思って
.soファイルがある場所のあたりをつけてlibフォルダ開いたら
C:\ruby\lib\ruby\1.8\i386-mswin32があった。
とりあえず、C:\ruby\lib\ruby\1.8\に上記フォルダつくって突っ込んでみる。
微妙に違うんだな。
http://nobuson-ruby.at.webry.info/200502/article_18.html
このページの接続テストを行う。ソースもほとんどコピー(笑)
ただ、全角スペースがあったので、軽く躓く。
消して実行で取り合えず、OK
以下ソース(*は各環境により、置き換え要)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
require "win32ole"
adoj = WIN32OLE.new "ADODB.Connection"
##MSDEの接続文字指定
connectLine = "Provider=SQLOLEDB; "
connectLine = connectLine + "Data Source=(databaseName); "
connectLine = connectLine + "Initial Catalog=(tableName); "
connectLine = connectLine + "User Id=(UserId); "
connectLine = connectLine + "Password=(Password); "
#connectLine = connectLine + "Connection Timeout=;"adoj.open connectLine
##データの読み取り
rcs = adoj.Execute("SQL文")
unless rcs.nil?
until rcs.EOF
rcs.Fields.each do |row|
print row.Value + ' - '
end
print "\n"
rcs.MoveNext
end
rcs.Close
end
adoj.Close
exit
とりあえず、動いた。
winで仕事でrubyなメモ。
後でクラス化しとけばいつでも呼び出せそう。