0
我在powershell cmd提示符下運行OLE DB枚舉器,看到列出了「Microsoft.ACE.OLEDB.12.0」。但是,當我運行需要使用OLE DB提供程序的程序時,它會出現錯誤:「Microsoft.ACE.OLEDB.12.0提供程序未在本地計算機上註冊。有人可以告訴我爲什麼找不到提供程序當它已經存在。Microsoft ACE OLE DB 12.0 PowerShell錯誤
我下載了微軟數據庫訪問引擎2010 Redistributible,仍然有同樣的錯誤
$filepath = 'C:\Users\raoashw\Documents\Incident_Dimension_and_Fact Tables\Incident_Time_Dimension_Table.xlsm'
$connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=`"$filepath`";Extended Properties=`"Excel 12.0 Macro;HDR=YES`";"
$qry= 'select * from [backupset$]'
$sqlserver = 'c0003131.itcs.hp.com'
$dbname = 'ads'
$tblname = 'ExcelData_Fill'
function Get-ExcelData
{
param($connString, $qry='select * from [Untitled$]')
$conn = New-Object System.Data.OleDb.OleDBConnection($connString)
$conn.open()
$cmd = New-Object System.Data.OleDb.OleDbCommand($qry,$conn)
$da = New-Object System.Data.OleDb.OleDbDataAdapter($cmd)
$dt = New-Object System.Data.DataTable
[void]$da.fill($dt)
$conn.close()
$dt
}
function Write-DataTableToDatabase
{
param($dt,$destServer,$destDb,$destTbl)
$connectionString = "Data Source=$destServer;Integrated Security=true; Initial Catalog=$destdb;"
$bulkCopy= New-Object ("Data.SqlClient.SqlBulkCopy") $connectionString
$bulkCopy.DestinationTableName= "$destTbl"
$bulkCopy.WriteToServer($dt)
}
$dt = Get-ExcelData $connString $qry
Write-DataTableToDatabase $dt $sqlserver $dbname $tblname
有人可以告訴我如何解決這個問題?
我試過這兩個鏈接之前發佈,他們似乎並沒有工作... – user2551654
嘗試64位和32位powershell –
是的,我使用的是64位的PowerShell,而不是32 ... – user2551654