AS400,AS/400,iSeries,i5,VB,接続サンプルWindowsXPサーバー)
前提条件
OLE DB接続(IBMDA400)
OLE DBを使用するためには、「IBM AS/400 クライアント・アクセス」
同じCD-ROM内にある「IBM AS/400 SDK for ActiveX and OLE DB」を導入する必要があります。
-----------------------------------------------------------------------------------------
CLPプログラム
*******************************************************
** オブジェクト:QGPL/VBTESTC
*******************************************************
PGM PARM(&IN1 &IN2 &OUT1)
DCL VAR(&IN1) TYPE(*CHAR) LEN(4)
DCL VAR(&IN2) TYPE(*DEC ) LEN(8 0)
DCL VAR(&IN2C) TYPE(*CHAR) LEN(8)
DCL VAR(&OUT1) TYPE(*CHAR) LEN(1)
CHGVAR &IN2C &IN2
SNDPGMMSG MSG(&IN2C) TOUSR(DSP01)
CHGVAR VAR(&OUT1) VALUE('OK')
ENDPGM
-----------------------------------------------------------------------------------------
VBソース
Private Sub Command1_Click()
Dim
STS1 As String
Dim STS2 As String
Dim STS3 As String
Set cn = New ADODB.Connection
Set cmd = New ADODB.Command
' AS400のオープン
cn.Open
"Provider=IBMDA400;Data Source=AS400システム名;", "ユーザー", "パスワード"
Set cmd.ActiveConnection = cn
With cmd
.CommandText =
"{{CALL /QSYS.LIB/QGPL.LIB/VBTESTC.PGM (?,?,?)}}"
'.CommandType =
adCmdText
.Prepared = True
.Parameters.Append
cmd.CreateParameter("Parm1", adChar, adParamInput, 2)
.Parameters.Append
cmd.CreateParameter("Parm2", adDecimal, adParamInput, 8)
.Parameters(1).Precision = 8
'<--最大の総桁数
.Parameters(1).NumericScale = 0 '<--小数部の最大桁数
.Parameters.Append
cmd.CreateParameter("Parm3", adChar, adParamInputOutput, 2)
End With
With cmd
.Parameters(0).Value = "01"
.Parameters(1).Value =
"20030303"
.Parameters(2).Value = ""
.Parameters(3).Value = ""
.Parameters(4).Value = ""
End With
cmd.Execute Rcds, Parms, adCmdText
' AS400 コマンド実行
STS1 = cmdAS400.Parameters(2).Value
cmd.ActiveConnection.Close
Set cn = Nothing
End Sub