2019年04月25日
Excel VBA からAS400のプログラムをCALL
Excel →TESTS(ストアドプロシジャ)→TESTC(CLP)→TEST(RPG)
【Excel】
Private Sub TEST()
Dim ReturnField As String
Dim cn As Object
Dim cmd As Object
Dim parm1 As Object
Dim parm2 As Object
Dim parm3 As Object
Set cn = CreateObject("ADODB.Connection")
Set cmd = CreateObject("ADODB.Command")
Set parm1 = CreateObject("ADODB.Parameter")
Set parm2 = CreateObject("ADODB.Parameter")
Set parm3 = CreateObject("ADODB.Parameter")
Dim label1 As String
Dim strCON As String
strCON = "Provider=IBMDA400;Data Source=192.168.1.1;User ID=QSECOFR;Password=QSECOFR;"
cn.Open strCON
cmd.ActiveConnection = cn
cmd.CommandType = 1 'adCmdText
cmd.CommandText = "CALL QGPL.TESTS(?, ?, ?)"
cmd.Parameters.Append cmd.CreateParameter("parm1", 129, 1, 2, "10")
cmd.Parameters.Append cmd.CreateParameter("parm2", 129, 1, 8, "20190327")
cmd.Parameters.Append cmd.CreateParameter("parm3", 129, 3, 1, " ")
cmd.Execute
label1 = cmd.Parameters(2).Value
cn.Close
End Sub
【CL】 TESTC
PGM PARM(&IN1 &IN2 &OUT1)
DCL VAR(&IN1) TYPE(*CHAR) LEN(2)
DCL VAR(&IN2) TYPE(*CHAR) LEN(8)
DCL VAR(&OUT1) TYPE(*CHAR) LEN(1)
CHGVAR VAR(&OUT1) VALUE('0')
CALL PGM(TEST) PARM(&IN1 &IN2)
MONMSG MSGID(CPF0000) EXEC+
(CHGVAR VAR(&OUT1) VALUE('1') )
ENDPGM
【TESTS】STRSQL を導入していないので、iナビゲーターからストアドプロシジャを作成
CREATE PROCEDURE QGPL.TESTS(IN PARM1 CHAR(2),IN PARM2 CHAR(8),OUT PARM3 CHAR (1)) LANGUAGE CL NOT DETERMINISTIC NO SQL EXTERNAL NAME MYLIB.TESTC PARAMETER STYLE GENERAL
【Excel】
Private Sub TEST()
Dim ReturnField As String
Dim cn As Object
Dim cmd As Object
Dim parm1 As Object
Dim parm2 As Object
Dim parm3 As Object
Set cn = CreateObject("ADODB.Connection")
Set cmd = CreateObject("ADODB.Command")
Set parm1 = CreateObject("ADODB.Parameter")
Set parm2 = CreateObject("ADODB.Parameter")
Set parm3 = CreateObject("ADODB.Parameter")
Dim label1 As String
Dim strCON As String
strCON = "Provider=IBMDA400;Data Source=192.168.1.1;User ID=QSECOFR;Password=QSECOFR;"
cn.Open strCON
cmd.ActiveConnection = cn
cmd.CommandType = 1 'adCmdText
cmd.CommandText = "CALL QGPL.TESTS(?, ?, ?)"
cmd.Parameters.Append cmd.CreateParameter("parm1", 129, 1, 2, "10")
cmd.Parameters.Append cmd.CreateParameter("parm2", 129, 1, 8, "20190327")
cmd.Parameters.Append cmd.CreateParameter("parm3", 129, 3, 1, " ")
cmd.Execute
label1 = cmd.Parameters(2).Value
cn.Close
End Sub
【CL】 TESTC
PGM PARM(&IN1 &IN2 &OUT1)
DCL VAR(&IN1) TYPE(*CHAR) LEN(2)
DCL VAR(&IN2) TYPE(*CHAR) LEN(8)
DCL VAR(&OUT1) TYPE(*CHAR) LEN(1)
CHGVAR VAR(&OUT1) VALUE('0')
CALL PGM(TEST) PARM(&IN1 &IN2)
MONMSG MSGID(CPF0000) EXEC+
(CHGVAR VAR(&OUT1) VALUE('1') )
ENDPGM
【TESTS】STRSQL を導入していないので、iナビゲーターからストアドプロシジャを作成
CREATE PROCEDURE QGPL.TESTS(IN PARM1 CHAR(2),IN PARM2 CHAR(8),OUT PARM3 CHAR (1)) LANGUAGE CL NOT DETERMINISTIC NO SQL EXTERNAL NAME MYLIB.TESTC PARAMETER STYLE GENERAL
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
-
no image
-
no image
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/8753550
※ブログオーナーが承認したトラックバックのみ表示されます。
※言及リンクのないトラックバックは受信されません。
この記事へのトラックバック