Hello, ADO(Ruby) World!
Posted on 9月 22nd, 2012 by cx20
ADO(Ruby)
ADO(ActiveX Data Objects)は、マイクロソフト社が開発した COM ベースの DBMS 接続用 API である。
OLE DB プロバイダを介することで様々な DBMS への接続が可能となっている。
OLE DB プロバイダとしては、以下のようなプロバイダがある。いくつかが OS 標準で付属している他、追加インストールが可能である。
プロバイダ名 |
表示名 |
説明 |
MSDASQL |
Microsoft OLE DB Provider for ODBC |
ODBC データベース |
Microsoft.Jet.OLEDB.4.0 |
Microsoft OLE DB Provider for Microsoft Jet |
Microsoft Jet データベース |
Microsoft.ACE.OLEDB.12.0 |
Microsoft Office 12.0 Access Database Engine OLE DB Provider |
Microsoft Access データベース |
SQLOLEDB |
Microsoft OLE DB Provider for SQL Server |
Microsoft SQL Server |
SQLNCLI10 |
SQL Server Native Client 10.0 |
Microsoft SQL Server |
MSDAORA |
Microsoft OLE DB Provider for Oracle |
Oracle データベース |
ソースコード(Ruby + ADO + OLEDB + Jet データベース)
require 'win32ole'
cn = WIN32OLE.new("ADODB.Connection")
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.\Hello.mdb"
rs = cn.Execute("SELECT 'Hello, ADO World!' AS Message")
while !rs.EOF
print rs.Fields[0].name + "n"
print "-------------------n"
print rs.Fields[0].value + "n"
rs.MoveNext
end
rs.Close
cn.Close |
require 'win32ole'
cn = WIN32OLE.new("ADODB.Connection")
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.\Hello.mdb"
rs = cn.Execute("SELECT 'Hello, ADO World!' AS Message")
while !rs.EOF
print rs.Fields[0].name + "n"
print "-------------------n"
print rs.Fields[0].value + "n"
rs.MoveNext
end
rs.Close
cn.Close
ソースコード(Ruby + ADO + OLEDB + ACE データベース)
require 'win32ole'
cn = WIN32OLE.new("ADODB.Connection")
cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=.\Hello.accdb"
rs = cn.Execute("SELECT 'Hello, ADO World!' AS Message")
while !rs.EOF
print rs.Fields[0].name + "n"
print "-------------------n"
print rs.Fields[0].value + "n"
rs.MoveNext
end
rs.Close
cn.Close |
require 'win32ole'
cn = WIN32OLE.new("ADODB.Connection")
cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=.\Hello.accdb"
rs = cn.Execute("SELECT 'Hello, ADO World!' AS Message")
while !rs.EOF
print rs.Fields[0].name + "n"
print "-------------------n"
print rs.Fields[0].value + "n"
rs.MoveNext
end
rs.Close
cn.Close
ソースコード(Ruby + ADO + OLEDB + SQL Server)
require 'win32ole'
cn = WIN32OLE.new("ADODB.Connection")
cn.Open "Provider=SQLOLEDB;SERVER=(local);DATABASE=master", "sa", "P@ssW0rd"
rs = cn.Execute("SELECT 'Hello, ADO World!' AS Message")
while !rs.EOF
print rs.Fields[0].name + "n"
print "-------------------n"
print rs.Fields[0].value + "n"
rs.MoveNext
end
rs.Close
cn.Close |
require 'win32ole'
cn = WIN32OLE.new("ADODB.Connection")
cn.Open "Provider=SQLOLEDB;SERVER=(local);DATABASE=master", "sa", "P@ssW0rd"
rs = cn.Execute("SELECT 'Hello, ADO World!' AS Message")
while !rs.EOF
print rs.Fields[0].name + "n"
print "-------------------n"
print rs.Fields[0].value + "n"
rs.MoveNext
end
rs.Close
cn.Close
ソースコード(Ruby + ADO + OLEDB + Oracle)
require 'win32ole'
cn = WIN32OLE.new("ADODB.Connection")
cn.Open "Provider=MSDAORA;Data Source=ORCL", "scott", "tiger"
rs = cn.Execute("SELECT 'Hello, ADO World!' AS Message")
while !rs.EOF
print rs.Fields[0].name + "n"
print "-------------------n"
print rs.Fields[0].value + "n"
rs.MoveNext
end
rs.Close
cn.Close |
require 'win32ole'
cn = WIN32OLE.new("ADODB.Connection")
cn.Open "Provider=MSDAORA;Data Source=ORCL", "scott", "tiger"
rs = cn.Execute("SELECT 'Hello, ADO World!' AS Message")
while !rs.EOF
print rs.Fields[0].name + "n"
print "-------------------n"
print rs.Fields[0].value + "n"
rs.MoveNext
end
rs.Close
cn.Close
実行方法(Windows)
実行結果
Message
-----------------
Hello, ADO World! |
Message
-----------------
Hello, ADO World!
Tags: ADO
Categories: ADO, Ruby