Archive for 9月 10th, 2012
-
Hello, ADO.NET(PowerShell) World!
Posted on 9月 10th, 2012 by cx20
ADO.NET(PowerShell)
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 ソースコード(PowerShell + ADO.NET + OLE DB + Jet データベース)
$conStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=hello.mdb;" $sqlStr = "SELECT 'Hello, ADO.NET World!' AS Message" $con = New-Object System.Data.OleDb.OleDbConnection($conStr) $cmd = New-Object System.Data.OleDb.OleDbCommand($sqlStr, $con) $con.Open() $reader = $cmd.ExecuteReader() while ( $reader.read() ) { $reader.getName(0) "---------------------" $reader[0] } $con.Close()
ソースコード(PowerShell + ADO.NET + OLE DB + ACE データベース)
$conStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=hello.accdb;" $sqlStr = "SELECT 'Hello, ADO.NET World!' AS Message" $con = New-Object System.Data.OleDb.OleDbConnection($conStr) $cmd = New-Object System.Data.OleDb.OleDbCommand($sqlStr, $con) $con.Open() $reader = $cmd.ExecuteReader() while ( $reader.read() ) { $reader.getName(0) "---------------------" $reader[0] } $con.Close()
ソースコード(PowerShell + ADO.NET + SQL Server)
$conStr = "SERVER=(local);DATABASE=master;UID=sa;PWD=P@ssW0rd" $sqlStr = "SELECT 'Hello, ADO.NET World!' AS Message" $con = New-Object System.Data.SqlClient.SqlConnection($conStr) $cmd = New-Object System.Data.SqlClient.SqlCommand($sqlStr, $con) $con.Open() $reader = $cmd.ExecuteReader() while ( $reader.read() ) { $reader.getName(0) "---------------------" $reader[0] } $con.Close()
ソースコード(PowerShell + ADO.NET + Oracle)
[void][Reflection.Assembly]::LoadWithPartialName("System.Data.OracleClient") $conStr = "Data Source=ORCL;User ID=scott;Password=tiger" $sqlStr = "SELECT 'Hello, ADO.NET World!' AS Message FROM DUAL" $con = New-Object System.Data.OracleClient.OracleConnection($conStr) $cmd = New-Object System.Data.OracleClient.OracleCommand($sqlStr, $con) $con.Open() $reader = $cmd.ExecuteReader() while ( $reader.read() ) { $reader.getName(0) "---------------------" $reader[0] } $con.Close()
ソースコード(PowerShell + ADO.NET + ODBC + MySQL)
[void][Reflection.Assembly]::LoadWithPartialName("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 = New-Object System.Data.Odbc.OdbcConnection($conStr) $cmd = New-Object System.Data.Odbc.OdbcCommand($sqlStr, $con) $con.Open() $reader = $cmd.ExecuteReader() while ( $reader.read() ) { $reader.getName(0) "---------------------" $reader[0] } $con.Close()
実行方法
C:¥> powershell -file Hello.ps1
実行結果
Message --------------------- Hello, ADO.NET World!