도미노 서버에서 as400 시스템에 대한 ODBC 연결이 있습니다. 나는 AS400에 프로그램을 실행하여 입력 매개 변수를 보낼 수 있습니다as400에 대한 callablestatement가 작동하지 않습니다.
이var sql:string ="CALL QSYS.QCMDEXC('SBMJOB CMD(CALL PGM(DEMO/TESTDEMO) PARM(ABCDEF)) ',0000000048.00000)";
ps = con.prepareCall(sql);
ps.execute();
니스, 작동하지만 지금은 다시 몇 가지 데이터를 얻을 싶습니다. 나는 내가 CallableStatement로이 작업을 수행 할 수 있다고 생각, 그래서 시도 :
연결 설정/SQL 세트/CS 세트/SQL 오류 =
var con:Connection = null; var cs:CallableStatement = null; try { java.lang.Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); var con:java.sql.Connection=java.sql.DriverManager.getConnection(url,usr,pwd); sessionScope.error = sessionScope.error +"connection set /"; var sql:string ="CALL QSYS.QCMDEXC('CALL PGM(DEMO/TESTDEMO) (?,?))"; sessionScope.error = sessionScope.error +"sql set /"; cs = con.prepareCall (sql); sessionScope.error = sessionScope.error +"cs set /"; cs.setString (1,'test'); sessionScope.error = sessionScope.error +"input param set /"; cs.registerOutParameter (2, Types.VARCHAR); sessionScope.error = sessionScope.error +"output param set /"; cs.execute(); sessionScope.error = sessionScope.error +"executed /"; var retour = cs.getInt (2); sessionScope.error = sessionScope.error +"output /"+retour; if (cs != null) {cs.close();sessionScope.error = sessionScope.error + "/ cs closed"} if (con != null) {con.close();sessionScope.error = sessionScope.error + "/ con closed"} } catch (e){ sessionScope.error = sessionScope.error+"Sql error ="+e.toString(); if (cs != null) {cs.close();sessionScope.error = sessionScope.error + "/ cs closed"} if (con != null) {con.close();sessionScope.error = sessionScope.error + "/ con closed"} return; }
이 실행
내가 오류로 얻을 java.lang.NullPointerException/cs 닫힘/닫힘
입력 매개 변수를 설정하는 데 문제가 있습니다.
이 절차는 IBM i에서 수행해야합니까? 주어진 예제에서 ssjs에서 데이터를 입/출력하는 방법은 무엇입니까? –
@MarcJonkers 저장된 proc는 서버의 DB2에 정의됩니다. 바라건대,이 서버는 수년 전에 AS/400을 대체 한 시스템 중 하나입니다. 실제 "AS/400"이 될만큼 오래 되었으면 SP 작성에 도움이 필요할 수 있습니다. – user2338816
StackOverflow에 Nazis라는 이름이있는 것 같습니다. 'IBM i'는 AS/400에서 실행되는 운영 체제의 새 이름입니다. 이것은 OS/400과 동일하며 (개선 된) OS/400입니다. 파워 시스템 (Power Systems) 또는 퓨어 시스템 (Pure Systems)은 'AS/400'이라고 불리는 하드웨어의 새로운 이름이다. 공동체에는 명명을 둘러싼 몇 몇 사람들이 있습니다. 그러나 'OS/400'은 IBM i v7.3이 'Windows 10'에 대한 'Windows 2.0'이다. 그러나 우리는 여전히 그것을 '윈도우'라고 부릅니다. 그리고 많은 사람들은 아직도 그것을 'AS/400'라고 부릅니다. 참고 :'AS/400'은'OS/400'과 묶일 수없는 패키지 거래였습니다. 더 이상 그렇지 않습니다. – jmarkmurphy