方法一:利用数据对像,当作一个普通的SQL, 来调用存储过程或函数:sql 内容: exec dbo.pro_lct (参数.....)
优点: 速度快,传参简单。 可以返回结果集或单值。(检索,更新,删除全支持)
缺点: 不支持存储过程的out put 值的返回方式。
开发推荐使用此方式。
Dim dtobj As New ComDBConn()
Dim tmpCheckPrcStatus = PFn_pro_get_lct(dtobj, "2", "F04", "00001", "", "3", "", tmp1, tmp2)
MsgBox(tmpCheckPrcStatus.Rows(0).Item(0))
MsgBox(tmpCheckPrcStatus.Rows(0).Item(1))
---数据对像的类型:
mSqlCommand.CommandText = strSQLBuilder.ToString()
mSqlCommand.CommandType = CommandType.Text
'方法二:利用数据的对象自带的procedure的访问方式调用
优点: 一一对应关系清楚
缺点: 传参或调用麻烦,只支持output 值的返回,不能返回结果集
开发不推荐使用此方式。
Dim sqlPara(7) As SqlParameter
sqlPara(0) = New SqlParameter("IN_MODE_TYPE", SqlDbType.VarChar, 1) '対象月度(yyyy/mm)
sqlPara(1) = New SqlParameter("IN_CODE1", SqlDbType.VarChar, 10) '実行社員コード
sqlPara(2) = New SqlParameter("IN_CODE2", SqlDbType.VarChar, 10) '処理対象日付FROM(DATE)
sqlPara(3) = New SqlParameter("IN_CODE3", SqlDbType.VarChar, 10) '処理対象日付TO(DATE)
sqlPara(4) = New SqlParameter("IN_WHOUSE1", SqlDbType.VarChar, 10) '終了コード(INTEGER)
sqlPara(5) = New SqlParameter("IN_WHOUSE2", SqlDbType.VarChar, 10) '終了コード(INTEGER)
sqlPara(6) = New SqlParameter("OUT_MAIN_LCT", SqlDbType.VarChar, 15) 'エラー№(INTEGER)
sqlPara(7) = New SqlParameter("OUT_SUB_LCT", SqlDbType.VarChar, 15) 'エラー内容(varchar(300))
sqlPara(0).Direction = ParameterDirection.Input
sqlPara(1).Direction = ParameterDirection.Input
sqlPara(2).Direction = ParameterDirection.Input
sqlPara(3).Direction = ParameterDirection.Input
sqlPara(4).Direction = ParameterDirection.Input
sqlPara(5).Direction = ParameterDirection.Input
sqlPara(6).Direction = ParameterDirection.Output
sqlPara(7).Direction = ParameterDirection.Output
'プロシージャへの引渡しパラメータの設定
sqlPara(0).Value = "2"
sqlPara(1).Value = "F04"
sqlPara(2).Value = "00001"
sqlPara(3).Value = ""
sqlPara(4).Value = "3"
sqlPara(5).Value = ""
sqlPara(6).Value = String.Empty
sqlPara(7).Value = String.Empty
'④処理内容に格納されたプロシージャ名を実行
Call dtobj.PSb_ExcuteProcedure("dbo." & "pro_get_lct", sqlPara)
---数据对像的类型:
mSqlCommand.CommandText = strProcedureName
mSqlCommand.CommandType = CommandType.StoredProcedure