使用powershell连接到DB2
问题描述:
我试图连接到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)."
任何人有任何想法,这是为什么突然出现?
我有其他的脚本,使用“填充”完全相同的方式,不会产生错误,所以这真的让我困惑!
非常感谢!
答
好的,我已经想通了。
您需要以管理员身份运行powershell才能使用DB2驱动程序。为什么这是我不知道的,但我就是这样修复它的!
答
您需要将用户添加到DB2Users
或DB2Admns
组。本地管理员组也适用,但出于安全原因,其他两个组更合适。这些组通常在您安装DB2的服务器上默认创建。他们是本地团体。
我想如果您的其他脚本使用相同的模式连接到相同的DB2实例,则问题可能在于您的SQL查询。你可以把它添加到问题? – 2012-08-08 12:52:33
我已经单独执行了查询,它的作品:/ – YYZ 2012-08-08 13:36:08