Die Verbindung zu DB2 mithilfe von PowerShell
Ich versuche eine Verbindung zu einer DB2-Datenbank und führen Sie einige Abfragen. Ich hatte es ein paar Tage her, aber jetzt gibt es einige wirklich seltsamen Fehler und ich kann nicht herausfinden, warum.
Die PowerShell-Verbindung code
$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
Die Fehler, die ich bin zu sehen:
Ausnahme beim aufrufen von "Füllen" mit "1" argument(s): "Keine Fehlermeldung verfügbar, Ergebnis-code: E_UNEXPECTED(0x8000FFFF)."
Jemand irgendwelche Ideen warum das so ist, tauchten?
Habe ich andere Schriften, die Fill()
exakt in der gleichen Weise ein nicht Fehler produzieren, so ist dies wirklich verwirren mich!
- Ich würde vermuten, dass, wenn die anderen Skripte sind mit dieser gleichen Muster, um die Verbindung zu dem DB2-Instanz, die möglicherweise ein problem mit der SQL-Abfrage. Können Sie fügen Sie es zu der Frage?
- Ich habe die query ausgeführt einzeln und es funktioniert :/
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ok, ich habe es herausgefunden.
Starten Sie powershell als admin verwenden Sie die DB2-Treiber. Warum das so ist, weiß ich nicht, aber das ist, wie ich es behoben!
Müssen Sie fügen Sie den Benutzer der
DB2Users
oderDB2Admns
Gruppen. Die Gruppe der lokalen Administratoren funktioniert es auch, aber aus Gründen der Sicherheit für die anderen beiden Gruppen sind besser geeignet. Diese Gruppen sind in der Regel standardmäßig erstellt auf dem server, auf dem Sie DB2 installieren. Sie sind lokale Gruppen.