2012-08-08 84 views
0

我試圖連接到DB2數據庫並執行一些查詢。我前幾天就開始工作了,但現在它出現了一些非常奇怪的錯誤,我不知道爲什麼。使用powershell連接到DB2

PowerShell的連接代碼

$connection = new-object system.data.OleDb.OleDbConnection("Provider=IBMDADB2;Database=X;HostName=X;Protocol=TCPIP;Port=X;Uid=X;Pwd=X;CurrentSchema=X"); 
$ds = new-object "System.Data.DataSet" 

$da= new-object System.Data.OleDb.OleDbDataAdapter($QuerySQL,$connection) 
$da.fill($ds) 

$ds.tables[0].rows | select * -ExcludeProperty RowError, RowState, HasErrors, Name, Table, ItemArray | export-csv "c:\Scripts\results.csv" -encoding "unicode" -notype 

我看到的錯誤:

Exception calling "Fill" with "1" argument(s): "No error message available, result code: E_UNEXPECTED(0x8000FFFF)." 

任何人有任何想法,這是爲什麼突然出現?

我有其他的腳本,使用「填充」完全相同的方式,不會產生錯誤,所以這真的讓我困惑!

非常感謝!

+0

我想如果您的其他腳本使用相同的模式連接到相同的DB2實例,則問題可能在於您的SQL查詢。你可以把它添加到問題? – 2012-08-08 12:52:33

+0

我已經單獨執行了查詢,它的作品:/ – YYZ 2012-08-08 13:36:08

回答

1

好的,我已經想通了。

您需要以管理員身份運行powershell才能使用DB2驅動程序。爲什麼這是我不知道的,但我就是這樣修復它的!

0

您需要將用戶添加到DB2UsersDB2Admns組。本地管理員組也適用,但出於安全原因,其他兩個組更合適。這些組通常在您安裝DB2的服務器上默認創建。他們是本地團體。