superwei

          導(dǎo)航

          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          統(tǒng)計(jì)

          常用鏈接

          留言簿(4)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          VB.NET 2003 調(diào)用Oracle的存儲(chǔ)過(guò)程并返回游標(biāo)值(原創(chuàng))

          這些都是去年的代碼,怕遺忘,也為了方便查找,所以放到這里保存!
          建立工程就不說(shuō)了
          1、新建一個(gè)Module,添加代碼如下:

              Public Function runProduce(ByVal _arrayPro() As OracleParameter, ByVal _strProName As String, ByVal _strCon As OracleClient.OracleConnection)
                  Dim total As Integer
                  Dim ocmd As New OracleCommand(_strProName, _strCon)
                  Dim oda As New OracleDataAdapter(ocmd)
                  Dim dsSales As New DataSet

                  ocmd.CommandType = CommandType.StoredProcedure

                  Dim errcdPara As New OracleParameter
                  With errcdPara
                      .ParameterName = "P_ERRCD"
                      .OracleType = OracleType.Char
                      .Size = 88
                      .Direction = ParameterDirection.InputOutput
                      .Value = ""
                  End With
                  Dim errMsgPara As New OracleParameter
                  With errMsgPara
                      .ParameterName = "P_ERRMSG"
                      .OracleType = OracleType.VarChar
                      .Size = 88
                      .Direction = ParameterDirection.InputOutput
                      .Value = ""
                  End With

                  ocmd.Parameters.Add(errcdPara)
                  ocmd.Parameters.Add(errMsgPara)
                  For total = UBound(_arrayPro) To 0 Step -1
                      ocmd.Parameters.Add(_arrayPro(total))
                  Next

                  Try
                      oda.Fill(dsSales)
                  Catch exp As Exception
                      'MessageBox.Show(exp.Message, MessageBoxButtons.OK, _
                      '    MessageBoxIcon.Error)
                      MsgBox(exp.Message)
                      Exit Function
                  End Try

                  _strCon.Close()
                  Return dsSales
              End Function

          參數(shù):_arrayPro() 存儲(chǔ)過(guò)程的參數(shù);_strProName 存儲(chǔ)過(guò)程名;_strCon Oracle的連接對(duì)象

          2、執(zhí)行代碼

                  Dim strConn As oracConnection = oracConn()
                  Dim arrayPro(1) As OracleParameter

                  Dim sorPara As New OracleParameter
                  With sorPara
                      .ParameterName = "SOR_SHIWAKE"
                      .OracleType = OracleType.Cursor
                      .Direction = ParameterDirection.Output
                      .Value = ""
                  End With
                  arrayPro(0) = sorPara

                  Dim salePara As New OracleParameter
                  With salePara
                      .ParameterName = "P_SALEYMD"
                      .OracleType = OracleType.VarChar
                      .Direction = ParameterDirection.Input
                      .Value = strInput
                  End With
                  arrayPro(1) = salePara

                  If strConn.isConn = True Then
                      Dim dsDataSet As DataSet = runProduce(arrayPro, @produceName, conn)
                  End If

          .NET調(diào)用存儲(chǔ)過(guò)程有兩種方法,以上是其中一種比較簡(jiǎn)便的方法(自認(rèn)為),
          另一種也簡(jiǎn)單,就是做成一條SQL語(yǔ)句來(lái)執(zhí)行,并返回結(jié)果。但是手頭沒(méi)有代碼,也就寫到這里了



          posted on 2007-09-27 16:05 小辭猬 閱讀(1098) 評(píng)論(0)  編輯  收藏 所屬分類: DoNet

          主站蜘蛛池模板: 丰镇市| 墨脱县| 临清市| 贵阳市| 韩城市| 北碚区| 青田县| 梁山县| 海城市| 平凉市| 邢台县| 东明县| 龙州县| 福安市| 新密市| 牡丹江市| 松滋市| 旬阳县| 稻城县| 鄂州市| 安新县| 贵阳市| 河曲县| 西吉县| 祁门县| 宝鸡市| 祁东县| 湟中县| 上栗县| 拉孜县| 霍邱县| 枝江市| 剑阁县| 东乌珠穆沁旗| 磐安县| 金堂县| 景泰县| 安泽县| 漳浦县| 松潘县| 凌云县|