我正在尝试连接到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 :(得分:1)
好的,我已经明白了。
您需要以管理员身份运行powershell以使用DB2驱动程序。为什么会这样,我不知道,但这就是我修复它的方式!
答案 1 :(得分:0)
您需要将用户添加到DB2Users
或DB2Admns
组。本地Administrators组也可以工作,但出于安全考虑,其他两个组更合适。通常在您安装DB2的服务器上创建这些组。他们是当地团体。