DB2 и Powershell с помощью DataSet? - PullRequest
0 голосов
/ 21 июня 2011

Я пытаюсь запросить базу данных SAMPLE, которая поставляется с DB2 9.7 Express, и, хотя скрипт работает и отображает вывод, я получаю сообщение об ошибке в операторе $da.Fill($ds).

Может ли кто-нибудь рассказать о происходящем?

$cn = new-object system.data.OleDb.OleDbConnection("Provider=DB2OLEDB;User ID=geekadmin;Password=geekadmin;Initial Catalog=SAMPLE;Network Transport Library=TCP;Host CCSID=37;PC Code Page=1252;Network Address=192.168.1.205;Network Port=50000;Package Collection=<collection>;Default Schema=<schema>;Process Binary as Character=False;Units of Work=RUW;DBMS Platform=DB2/NT;Defer Prepare=False;Persist Security Info=True;Connection Pooling=False;");

$ds = new-object "System.Data.DataSet" "dsEmployee5" 

$q = "SELECT EMPNO"
$q = $q + ",FIRSTNME"
$q = $q + ",LASTNAME"
$q = $q + " FROM DMOHORN.EMPLOYEE" 

$q

$da = new-object "System.Data.OleDb.OleDbDataAdapter" ($q, $cn) 

$da.Fill($ds)


$dtPerson = new-object "System.Data.DataTable" "dtEmployee5" 

$dtPerson = $ds.Tables[0] 

$dtPerson | FOREACH-OBJECT { " " + $_.EMPNO + ": " + $_.FIRSTNME + ", " + $_.LASTNAME }

SELECT EMPNO,FIRSTNME,LASTNAME FROM GeekAdmin.EMPLOYEE
Exception calling "Fill" with "1" argument(s): "The cursor specified in a FETCH statement or CLOSE statement is not open or a cursor variable in a cursor scalar function reference is not open. SQLSTATE: 24501, SQLCO
DE: -501"
At line:13 char:9
+ $da.Fill <<<< ($ds)
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : DotNetMethodException


 000010: CHRISTINE, HAAS

 000020: MICHAEL, THOMPSON

 000030: SALLY, KWAN

 000050: JOHN, GEYER

 000060: IRVING, STERN

 000070: EVA, PULASKI

 000090: EILEEN, HENDERSON

 000100: THEODORE, SPENSER

 000110: VINCENZO, LUCCHESSI

 000120: SEAN, O'CONNELL

 000130: DELORES, QUINTANA

 000140: HEATHER, NICHOLLS

 000150: BRUCE, ADAMSON

 000160: ELIZABETH, PIANKA

 000170: MASATOSHI, YOSHIMURA

 000180: MARILYN, SCOUTTEN

 000190: JAMES, WALKER

 000200: DAVID, BROWN

 000210: WILLIAM, JONES

 000220: JENNIFER, LUTZ

 000230: JAMES, JEFFERSON

 000240: SALVATORE, MARINO

 000250: DANIEL, SMITH

 000260: SYBIL, JOHNSON

 000270: MARIA, PEREZ

 000280: ETHEL, SCHNEIDER

 000290: JOHN, PARKER

 000300: PHILIP, SMITH

 000310: MAUDE, SETRIGHT

 000320: RAMLAL, MEHTA

 000330: WING, LEE

 000340: JASON, GOUNOT

 200010: DIAN, HEMMINGER

 200120: GREG, ORLANDO

 200140: KIM, NATZ

 200170: KIYOSHI, YAMAMOTO

 200220: REBA, JOHN

 200240: ROBERT, MONTEVERDE

 200280: EILEEN, SCHWARTZ

 200310: MICHELLE, SPRINGER

 200330: HELENA, WONG

 200340: ROY, ALONZO

1 Ответ

0 голосов
/ 15 января 2012

Я сам решил эту проблему, используя другого провайдера.

Примеры и решение выложены здесь.

http://myblog4fun.com/archive/2012/01/14/using-powershell-to-access-db2.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...