前提条件 Eclipse は Pleiades Eclipse 4.7 Oxygen です。前提となる環境は以下を参照して下さい。 Pleiades Eclipse 4.7 Oxygen 2 Windows 64bit Ultimate Full Edition のインストールといろいろな準備 Pleiades Oxygen 2 の XAMPP 内の MySQL を利用可能にしてテストデータ(販売管理)を登録する ▼ プロジェクトの作成方法はこちらを参照して下さい Pleiades Eclipse 4.7 Oxygen で Ruby を使って MySQL にアクセスする Connector/ODBC 5.3.10 ADO から接続する場合、純粋に Windows からのアクセスになるので ODBC ドライバが必要になります。Ruby が 64ビットならば、ODBC ドライバも 64ビット用が必要になります。 ダウンロードページ com_ado_mysql 以下は、ADO + COM で行われる標準的なレコードセットの読み込みと同時更新の処理です。 特徴的なのは、レコードセットの Fields コレクション( Field オブジェクト )を使用して値を直接セットして一行づつレコードを更新するところです。
require 'win32ole'
adOpenDynamic = 2
adLockOptimistic = 3
cn = WIN32OLE.new('ADODB.Connection')
rs = WIN32OLE.new('ADODB.Recordset')
driver = "{MySQL ODBC 5.3 Unicode Driver}"
server = "localhost"
db = "lightbox"
user = "root"
pass = ""
connectionString = "Provider=MSDASQL;Driver=%s;Server=%s;DATABASE=%s;UID=%s;PWD=%s;"
connectionString = format(connectionString, driver,server,db,user,pass)
puts connectionString
# **************************
# 接続
# **************************
begin
cn.Open( connectionString )
rescue => ex
print format("%d エラーが発生しました\n%s",ex.errno,ex.error)
# 接続エラーの場合は終了
exit!
end
rs.CursorType = adOpenDynamic
rs.LockType = adLockOptimistic
rs.Open( "select * from 社員マスタ where 社員コード <= '0004' ", cn )
while !rs.EOF do
line = ""
rs.Fields.each do |field|
line << format(" %s |",field.Type)
end
line.chop!
puts line
line = ""
rs.Fields.each do |field|
if field.Type == 202 then
line << format(" %s |",field.Value)
end
if field.Type == 3 then
# nil 値あり
line << format(" %s |",field.Value.to_s)
end
if field.Type == 135 then
line << field.Value.strftime(" %Y/%m/%d |")
end
end
line.chop!
puts line
print format("%s,",rs.Fields("社員コード").Value)
print format("%s,",rs.Fields("氏名").Value)
print format("%s,",rs.Fields("フリガナ").Value)
print format("%s,",rs.Fields("所属").Value)
print format("%d,",rs.Fields("性別").Value)
print format("%d,",rs.Fields("給与").Value)
if !rs.Fields("手当").Value.nil? then
print format("%d,",rs.Fields("手当").Value)
else
print ","
end
print format("%s,",rs.Fields("管理者").Value)
print rs.Fields("作成日").Value.strftime("%Y/%m/%d,")
print rs.Fields("更新日").Value.strftime("%Y/%m/%d,")
print rs.Fields("生年月日").Value.strftime("%Y/%m/%d\n")
rs.Fields("管理者").Value = "0001"
rs.Update()
rs.MoveNext()
end
# **************************
# 接続解除
# **************************
if cn.State >= 1 then
cn.Close()
end
print("終了しました\n")
CursorTypes, LockTypes, and CursorLocations ※ MySQL は 以下の三つの組み合わせのみ動作 adUseClient/adOpenStatic adUseServer/adOpenForwardOnly adUseServer/adOpenDynamic ※ ADO でデフォルトは adUseServer エディタのタブの設定![]()
![]()
|
|
【Ruby 2018の最新記事】
- Ruby(mechanize) で Seesaa のエクスポート
- さくらインターネットに Ruby をインストールして mechanize ( 先に nokogiri のインストールが必要でした )
- Ruby + MySQL + IFRAME + Bootstrap : 問い合せ WEB アプリテンプレート
- Ruby 2.4 で GET/POST メソッドを想定した CGI 用のテンプレート改良版( FORM で MySQL 参照と更新 )
- Ruby のエンコーディング( スクリプト・デフォルト・STDIN・STDOUT )
- Ruby 2.4 で GET/POST メソッドを想定した CGI 用の簡易テンプレートを作成してみました
- Windows10 : Ruby で日本語メール送信
- Pleiades Eclipse 4.7 Oxygen で Ruby を使って MySQL にアクセスする






