Выполнение команды PGM с использованием провайдера idb2 .NET - PullRequest
1 голос
/ 08 мая 2019

Я пытаюсь выполнить PGM (IBM -Iseries) с использованием провайдера IBMDB2 .NET. Но у меня всегда возникают проблемы.

Я пытался использовать провайдер ADO.NET (COM-объект) и некоторые другие способы, но я не смог выполнить PGM в i-серии. Я не уверен, возможно ли выполнить PGM напрямую с помощью поставщика IBMDB2 .NET и поставщиков ADO.

iDB2Connection icon = new iDB2Connection(strConnect);
                    iDB2Command command = icon.CreateCommand();
                    icon.Open();
                    command.CommandText = ($"CALL PGM(ABC/XYZ)PARM('1ASB         ''000013644')");

                    command.ExecuteNonQuery();

1 Ответ

1 голос
/ 10 мая 2019

Вы можете вызвать процедуру QCMDEXEC из SQL, однако кавычки для паролей сложны для понимания.
"Между начальной и конечной кавычками две кавычки в строке приводят к одной кавычке в строке". Я бы посоветовал вам заставить его работать, вызывая простую программу без пармов.

CALL QSYS2.QCMDEXC('CALL PGM(ABC/XYZ)PARM(''1ASB         '' ''000013644'')')

/ * строка call gpm (abc / zyc) parm ('1ASB' '00013544')

...