手始めにAccessデータベースを読み込んでみる。
プロバイダーはとりあえずOLEDBを使う。
接続文字列は2007以降ではMicrosoft.ACE.OLEDB.12.0を使うようだ。
(2007より前はMicrosoft.Jet.OLEDB.4.0)
.NETで組む時とほとんど同じ。
結果はGridViewに表示させた。
param( [string]$dataSource , [string]$sqlCommand , [switch]${??} ) $comment = @' ##################################################### MRead-AccessDB.ps1 Accessデータを読み込む。 param( [string]$dataSource , [string]$sqlCommand , [switch]${??} ) 例: # Accesデータベースにアクセスする MRead-AccessDB.ps1 (Resolve-Path access_test.mdb) -Sql "Select * from Users" ##################################################### '@ if(${??}) {$comment;return} if(!$dataSource) {Write-Warning "Please specify a datasource." ; return} if(!$sqlCommand) {Write-Warning "Please specify a query." ; return} #接続文字列を準備する $connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=$dataSource;" #データソースに接続し開く $connection = New-Object System.Data.OleDb.OleDbConnection $connectionString $command = New-Object System.Data.OleDb.OleDbCommand $sqlCommand,$connection $connection.Open() #結果をフェッチし、接続を閉じる $adapter = New-Object System.Data.OleDb.OleDbDataAdapter $command $dataset = New-Object System.Data.DataSet [void]$adapter.Fill($dataset) $connection.Close() #クエリーからすべての行を返す $dataset.Tables | Select-Object -ExpandProperty Rows | Out-GridView |
結果はこんな感じ。
Accessがインストールされていない場合は以下からコンポーネントをインストール出来る。
0 件のコメント:
コメントを投稿