ライブラリLMTLIB内に作成されたAS400 RPGLEプログラムは、ARTESTと呼ばれています。PHP/Zend Framework内のSQLからのRPGLEプログラムの呼び出し
それはちょうど今2
$myVar = "1";
$db = Zend_Registry::get('config')->resources->multidb->as400;
$abstractAdapter = new Zend_Db_Adapter_Db2($db);
//Gives the message "Invalid bind-variable position 'myVar'"
$sql = 'CALL QSYS.QCMDEXC(\'CALL LMTLIB.ARTEST PARM(?)\', 0000000026.00000)';
//Gives the message "Token PARM was not valid. Valid tokens: (INTO USING. SQLCODE=-104"
$sql = 'CALL LMTLIB.ARTEST PARM(?)';
//Gives the message "ARTEST in LMTLIB type *N not found. SQLCODE=-204"
$sql = 'CALL LMTLIB.ARTEST (?)';
$stmt = new Zend_Db_Statement_Db2($abstractAdapter, $sql);
$stmt->bindParam('myVar', $myVar, 4, 1);
$stmt->execute();
を返す第三SQL文が「見つからない」というメッセージで失敗する理由、私は一種-の理解することができ、単一の数値INOUTパラメータを、持っている...それ理由テーブル/ファイルではなく、むしろRPGLEプログラムです。
(?)を削除して(1)を入れると、SQL呼び出しが成功したように見え、RPGLEプログラムが呼び出されたことがわかります。しかし、私はそのプログラムからの反応が何であるかを見ることができません。
ありがとうございました!
Zendと同じように見えます。ちょうど1つの助言:私がdb2/400でphpとodbcを使って作業したとき、php_odbcが出力パラメータをサポートしていないことがわかりました。 – kratenko