0

我正在尝试连接到 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

我看到的错误:

使用“1”参数调用“填充”的异常:“没有可用的错误消息,结果代码:E_UNEXPECTED(0x8000FFFF)。”

有人知道为什么会出现这种情况吗?

我有其他脚本Fill()以完全相同的方式使用并且不会产生错误,所以这真的让我感到困惑!

4

2 回答 2

1

好的,我已经想通了。

您需要以管理员身份运行 powershell 才能使用 DB2 驱动程序。为什么会这样,我不知道,但我就是这样解决的!

于 2012-08-08T13:44:00.967 回答
0

您需要将用户添加到DB2UsersorDB2Admns组。本地管理员组也可以工作,但出于安全原因,其他两个组更合适。这些组通常默认在您安装 DB2 的服务器上创建。他们是本地团体。

于 2014-05-02T18:16:56.297 回答