方法一:利用数据对像,当作一个普通的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",10) '実行社員コード sqlPara(2) = New SqlParameter("IN_CODE2",10) '処理対象日付FROM(DATE) sqlPara(3) = New SqlParameter("IN_CODE3",10) '処理対象日付TO(DATE) sqlPara(4) = New SqlParameter("IN_WHOUSE1",10) '終了コード(INTEGER) sqlPara(5) = New SqlParameter("IN_WHOUSE2",10) '終了コード(INTEGER) sqlPara(6) = New SqlParameter("OUT_MAIN_LCT",15) 'エラー№(INTEGER) sqlPara(7) = New SqlParameter("OUT_SUB_LCT",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 (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|