Hello, ADO.NET(IronRuby) World!

Posted on 2月 13th, 2013 by cx20

ADO.NET(IronRuby)

ADO.NET(ActiveX Data Objects .NET)は、ADO の後継で .NET ベースの DBMS 接続用 API である。
.NET データプロバイダを介することで様々な DBMS への接続が可能となっている。
.NET Framework 標準で使用できる .NET データプロバイダとしては、以下のようなプロバイダがある。

データプロバイダ名 説明
System.Data.SqlClient Microsoft SQL Server
System.Data.OleDb OLE DB
System.Data.Odbc ODBC
System.Data.OracleClient Oracle

ソースコード(IronRuby + ADO.NET + OLE DB + Jet データベース)

require 'mscorlib'
require 'System'
require 'System.Data'
include System
include System::Data
include System::Data::OleDb
 
conStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=hello.mdb;"
sqlStr = "SELECT 'Hello, ADO.NET World!' AS Message"
 
con = OleDbConnection.new(conStr)
cmd = OleDbCommand.new(sqlStr, con)
con.Open()
 
reader = cmd.ExecuteReader()
while reader.Read() do
    Console.WriteLine( reader.GetName(0) )
    Console.WriteLine( "---------------------" )
    Console.WriteLine( reader.GetValue(0) )
end
 
reader.Close()
con.Close()

ソースコード(IronRuby + ADO.NET + OLE DB + ACE データベース)

require 'mscorlib'
require 'System'
require 'System.Data'
include System
include System::Data
include System::Data::OleDb
 
conStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=hello.accdb;"
sqlStr = "SELECT 'Hello, ADO.NET World!' AS Message"
 
con = OleDbConnection.new(conStr)
cmd = OleDbCommand.new(sqlStr, con)
con.Open()
 
reader = cmd.ExecuteReader()
while reader.Read() do
    Console.WriteLine( reader.GetName(0) )
    Console.WriteLine( "---------------------" )
    Console.WriteLine( reader.GetValue(0) )
end
 
reader.Close()
con.Close()

ソースコード(IronRuby + ADO.NET + SQL Server)

require 'mscorlib'
require 'System'
require 'System.Data'
include System
include System::Data
include System::Data::SqlClient
 
conStr = "SERVER=(local);DATABASE=master;UID=sa;PWD=P@ssW0rd;"
sqlStr = "SELECT 'Hello, ADO.NET World!' AS Message"
 
con = SqlConnection.new(conStr)
cmd = SqlCommand.new(sqlStr, con)
con.Open()
 
reader = cmd.ExecuteReader()
while reader.Read() do
    Console.WriteLine( reader.GetName(0) )
    Console.WriteLine( "---------------------" )
    Console.WriteLine( reader.GetValue(0) )
end
 
reader.Close()
con.Close()

ソースコード(IronRuby + ADO.NET + Oracle)

require 'mscorlib'
require 'System'
require 'System.Data'
require 'System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
 
include System
include System::Data
include System::Data::OracleClient
 
conStr = "Data Source=ORCL;User ID=scott;Password=tiger"
sqlStr = "SELECT 'Hello, ADO.NET World!' AS Message FROM DUAL"
 
con = OracleConnection.new(conStr)
cmd = OracleCommand.new(sqlStr, con)
con.Open()
 
reader = cmd.ExecuteReader()
while reader.Read() do
    Console.WriteLine( reader.GetName(0) )
    Console.WriteLine( "---------------------" )
    Console.WriteLine( reader.GetValue(0) )
end
 
reader.Close()
con.Close()

ソースコード(IronRuby + ADO.NET + ODBC + MySQL)

require 'mscorlib'
require 'System'
require 'System.Data'
include System
include System::Data::Odbc
 
conStr = "Driver={MySQL ODBC 5.1 Driver};Server=localhost;UID=root;PWD=P@ssW0rd"
sqlStr = "SELECT 'Hello, ADO.NET World!' AS Message"
 
con = OdbcConnection.new(conStr)
cmd = OdbcCommand.new(sqlStr, con)
con.Open()
 
reader = cmd.ExecuteReader()
while reader.Read() do
    Console.WriteLine( reader.GetName(0) )
    Console.WriteLine( "---------------------" )
    Console.WriteLine( reader.GetValue(0) )
end
 
reader.Close()
con.Close()

実行方法(64bit OLE DB 使用時)

C:¥> ir64 Hello.rb

実行方法(上記以外)

C:¥> ir Hello.rb

実行結果

Message
---------------------
Hello, ADO.NET World!

Tags:

Categories: .NET, ADO.NET, IronRuby

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

WP-SpamFree by Pole Position Marketing