2012-08-08 167 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的服务器上默认创建。他们是本地团体。