AS400,AS/400,iSeries,i5,VB,接続サンプルWindowsXPサーバー)
前提条件
ODBC接続
ODBCを使用するためには、「IBM AS/400 クライアント・アクセス」
-----------------------------------------------------------------------------------------
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
-----------------------------------------------------------------------------------------
プロシジャー作成
@ SQL 対話式セッションの開始
AS400コマンド「STRSQL」と入力し実行する。
A プロシジャー作成
CREATE PROCEDURE QGPL/PVBTESTC(IN P1
CHAR ( 2), IN P2 DEC (8 , 0),
INOUT P3 CHAR ( 2))
LANGUAGE CL NOT DETERMINISTIC NO SQL
EXTERNAL NAME QGPL/VBTESTC
PARAMETER STYLE GENERAL
PROCEDURE :VB上からCALLする名前で登録
EXTERNAL NAME:AS400上のプログラム
プロシジャー削除
@ 対話式セッション内で実行
DROP PROCEDURE QGPL/PVBTESTC
-----------------------------------------------------------------------------------------
VBソース
Private Sub Command1_Click()
Dim cn As ADODB.Connection
Dim cmd As ADODB.Command
Dim strCON As String
Dim parm1 As ADODB.Parameter
Dim parm2 As ADODB.Parameter
Dim parm3 As ADODB.Parameter
strCON = "DSN=DSNAME;UID=QPGMR;PWD=QPGMR" 'DSNAME:ODBC定義された名前
UID:ユーザーID PWD:パスワード
cn.Open strCON
Set cmd = New ADODB.Command
cmd.ActiveConnection = cn
cmd.CommandType = adCmdText
cmd.CommandText = "CALL QGPL.PVBTESTC (?, ?, ?)"
cmd.Parameters.Append cmd.CreateParameter("parm1",
adChar , adParamInput , 2, "01")
cmd.Parameters.Append cmd.CreateParameter("parm2",
adDecimal, adParamInput , 8, 20030303)
cmd.Parameters.Append cmd.CreateParameter("parm3",
adChar , adParamInputOutput, 2, "")
cmd.Parameters(1).Precision = 8
cmd.Parameters(1).NumericScale = 0
cmd.Execute
label1 = cmd.Parameters(2).Value
cn.Close
End Sub