精华内容
下载资源
问答
  • 本文给出VB.Net调用存储过程并得到返回值的代码。
  • vb 调用存储过程

    千次阅读 2018-05-18 15:00:22
    连接数据库成功后就可以调用存储过程执行操作。 通过Command对象的Parameters集合向所调用的存储过程传递参数,其中对象Parameters(0)为执行存储过程的返回值,返回值为0则执行存储过程成功; ’第三种方法 ...

    '第一种方法
    Dim conn As String
    Dim cn As New adodb.Connection
    Dim cm As New adodb.Command
    conn = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Stu"
    cn.ConnectionString = conn
    cn.Open
    cm.ActiveConnection = cn
    cm.CommandText = "vag" '存储过程名
    cm.CommandType = adCmdStoredProc
    cm.Parameters.Item("@Num").Value = "020301"  '输入参数的值
    cm.Execute
    MsgBox cm.Parameters.Item("@val").Value '存储过程式的返回值

    '第二种方法
    Set rs = cm.CreateParameter("Num", adChar, adParamInput, 6, "020301")
    cm.Parameters.Append rs
    Set rs = cm.CreateParameter("val", adChar, adParamOutput, 6)
    cm.Parameters.Append rs


    Dim ado as ADODC 
    ado.ConnectionString = "Provider=SQLOLEDB.1;Password=" & User_Pwd & ";Persist Security Info=True;User ID=" & User_Name & ";Initial Catalog=" & Data_Name & ";Data Source=" & server_name

    其中User-Pwd是用户密码;User_Name是用户名;Data_Name是数据库名;server_name是服务器名。

    连接数据库成功后就可以调用存储过程执行操作。


    通过Command对象的Parameters集合向所调用的存储过程传递参数,其中对象Parameters(0)为执行存储过程的返回值,返回值为0则执行存储过程成功;


    ’第三种方法
    adocomm.Parameters(1) = "1" 
    adocomm.Parameters(2) = "OutputParameters" 'OutputParameters可以为任意的字符串或数字 
    adocomm.Execute 
    ReturnValue = adocomm.Parameters(0) '存储过程的返回值,返回0则成功执行。 
    strS = adocomm.Parameters(2) '把存储过程的输出参数的值赋给变量strS 

    展开全文
  • VB6.0 调用存储过程的例子(方法一) rm1窗体,Copy以下的代码到窗体中,该段代码将测试存储过程ADOTestRPE的返回值、输入参数及输出参数,测试的过程中,可能需要修改链接字符串。
  • VB6通过ADO连MySql数据库,调用带参数的存储过程
  • vb调用存储过程基本教程vb调用存储过程基本教程vb调用存储过程基本教程vb调用存储过程基本教程
  • 假设有一个名为doc_ProcName存储过程,该存储过程有一个输入参数,一个输出参数。1) 直接传递参数调用存储过程直接传递参数方法主要通过以下几个步骤来实现:(1) 通过ADODB的Connection对象打开与数据源的连接...
    假设有一个名为doc_ProcName存储过程,该存储过程有一个输入参数,一个输出参数。

    1) 直接传递参数调用存储过程

    直接传递参数方法主要通过以下几个步骤来实现:

    (1) 通过ADODB的Connection对象打开与数据源的连接;

    (2) 通过ActiveConnection指定Command对象当前所属的Connection对象;

    (3) 通过CommandText属性设置Command对象的源,即要调用的存储过程;

    (4) 通过CommandType属性确定Command对象的源类型,如果源类型为存储过程CommandType即为adCmdStoredProc;

    (5) 通过Command对象的Parameters集合向所调用的存储过程传递参数,其中对象Parameters(0)为执行存储过程的返回值,返回值为0则执行存储过程成功;

    (6) 通过Eexecute方法执行在 CommandText 属性中指定的存储过程。

    以存储过程doc_ProcName为例,关键代码如下:

    Dim strS As String '定义一变量
    Dim adoconn As New ADODB.Connection 'Connection 对象代表了打开与数据源的连接。
    Dim adocomm As New ADODB.Command 'Command 对象定义了将对数据源执行的指定命令。
    Dim ReturnValue As Integer '调用存储过程的返回值
    adoconn.ConnectionString = Adodc1.ConnectionString 'Adodc1为窗体中的ADO控件,并已成功连接数据库
    adoconn.Open
    Set adocomm.ActiveConnection = adoconn '指示指定的 Command对象当前所属的 Connection对象。
    adocomm.CommandText = "doc_ProcName" '设置Command对象源。
    adocomm.CommandType = adCmdStoredProc '通知提供者CommandText属性有什么,它可能包括Command对象的源类型。设置这个属性优化了该命令的执行。
    adocomm.Parameters(1) = "1"
    adocomm.Parameters(2) = "OutputParameters" 'OutputParameters可以为任意的字符串或数字
    adocomm.Execute
    ReturnValue = adocomm.Parameters(0) '存储过程的返回值,返回0则成功执行。
    strS = adocomm.Parameters(2) '把存储过程的输出参数的值赋给变量strS

    2) 追加参数法调用存储过程

    追加参数通过CreateParameter方法,用来指定属性创建新的Parameter对象。具体语法如下:

    Set parameter = command.CreateParameter (Name, Type, Direction, Size, Value)

    ·Name 可选,字符串,代表 Parameter 对象名称。
    ·Type 可选,长整型值,指定 Parameter 对象数据类型。
    ·Direction 可选,长整型值,指定 Parameter 对象类型。
    ·Size 可选,长整型值,指定参数值最大长度(以字符或字节数为单位)。
    ·Value 可选,变体型,指定 Parameter 对象值。

    这种方法与上面一种方法的分别主要在于,追加参数的方法在向存储过程传递参数时,这种方法首先通过CreateParameter方法为存储过程创建参数,然后通过Append方法将创建的参数追加到Parameters集合中去。

    仍然以存储过程doc_ProcName的调用为例,关键代码如下:

    Dim mRst As ADODB.Recordset 'Recordset 对象表示的是来自基本表或命令执行结果的记录全集。
    Dim prm As ADODB.Parameter 'Parameter 对象代表参数或与基于参数化查询或存储过程的Command 对象相关联的参数。
    adoconn.ConnectionString = Adodc1.ConnectionString
    adoconn.Open
    Set adocomm.ActiveConnection = adoconn
    adocomm.CommandText = "doc_ProcName"
    adocomm.CommandType = adCmdStoredProc
    Set prm = adocomm.CreateParameter("parameter1", adTinyInt, adParamInput, , "1")
    adocomm.Parameters.Append prm
    Set prm = adocomm.CreateParameter("parameter2", adInteger, adParamOutput)
    adocomm.Parameters.Append prm
    Set mRst = adocomm.Execute
    ReturnValue = adocomm.Parameters(0)

    以上代码中未定义的变量以及未注释的语句与前述相同。

    结束语

    在应用程序中调用服务器端存储过程,不仅能显著提高整个应用的性能,而且能加强对数据库数据的保护。VB为客户端应用程序调用存储过程提供了一组方便而有效的方法。

    来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/11411056/viewspace-733997/,如需转载,请注明出处,否则将追究法律责任。

    转载于:http://blog.itpub.net/11411056/viewspace-733997/

    展开全文
  • 本文实例讲述了VB.NET调用MySQL存储过程并获得返回值的方法。分享给大家供大家参考。具体实现方法如下: Dim myConnectionString As String = Database= & myDatabase & _ ;Data Source= & myHost & _ ;User Id= ...
  • 调用sp_addumpdevice过程时,发生这SP有返回值,度娘了一圈,很少有提出存储过程返回值如何在ADO Command中如何引用。 瞎写的代码,总是提示:@cntrltype未声明为OUTPUT,但形参还需要输出,等等。 但打开sp_...

    最近在给老程序(VB6+SQL2005+水晶报表)添加备份、恢复数据库功能。真心是手动备份数据库太劳累抓狂,且显得不专业,呵呵。调用sp_addumpdevice过程时,发生这SP有返回值,度娘了一圈,很少有提出存储过程返回值如何在ADO Command中如何引用。

    瞎写的代码,总是提示:@cntrltype未声明为OUTPUT,但形参还需要输出,等等。

    但打开sp_addumpdevice存储过程定义,发现@cntrltype及@devstatus可为空,不需要传值。头疼了10分钟。

    无意间瞎写,则不报错了。偷笑

    正确代码如下:

    P_cmd.CommandType = adCmdStoredProc
       P_cmd.CommandText = "sp_addumpdevice"
       
       With P_cmd
          
          .Parameters.Append .CreateParameter("@res", adInteger, adParamReturnValue, , i)
          
          .Parameters.Append .CreateParameter("@devtype", adChar, adParamInput, 20, "disk")
          .Parameters.Append .CreateParameter("@logical", adChar, adParamInput, 40, "mybakdev1")
          .Parameters.Append .CreateParameter("@physical", adChar, adParamInput, 260, Trim(txtData_Backup(0).Text))
          
          .Execute
          '<释放参数>
          .Parameters.Delete ("@devtype")
          .Parameters.Delete ("@logical")
          .Parameters.Delete ("@physical")
          
          .Parameters.Delete ("@res")
       End With


    展开全文
  • 这次又转为VB6了....... (┬_┬) --------------------------------------------------------------------------------------- CreateParameter 方法使用指定属性创建新的 Parameter 对象。语法Set parameter = ...

    这次又转为VB6了.......  (┬_┬)

    ---------------------------------------------------------------------------------------

    CreateParameter 方法
    使用指定属性创建新的 Parameter 对象。
    语法
    Set parameter = command.CreateParameter (Name, Type, Direction, Size, Value)
    返回值
    返回 Parameter 对象。
    参数
    Name   可选,字符串,代表 Parameter 对象名称。
    Type   可选,长整型值,指定 Parameter 对象数据类型。关于有效设置请参见 Type 属性。
    Direction   可选,长整型值,指定 Parameter 对象类型。关于有效设置请参见 Direction 属性。
    Size   可选,长整型值,指定参数值最大长度(以字符或字节数为单位)。
    Value   可选,变体型,指定 Parameter 对象的值。15013772506
    说明
    使用 CreateParameter 方法可用指定的名称、类型、方向、大小和值创建新的 Parameter 对象。在参数中传送的所有值都将写入相应的 Parameter 属性。
    该方法无法自动将 Parameter 对象追加到 Command 对象的 Parameter 集合,这样就可以设置附加属性。如果将 Parameter 对象追加到集合,则 ADO 将使该附加属性的值生效。
    如果在 Type 参数中指定可变长度的数据类型,那么在将它追加到 Parameters 集合之前必须传送 Size 参数或者设置 Parameter 对象的 Size 属性;否则将产生错误。

     

    Type 属性
    指示 Parameter、Field 或 Property 对象的操作类型或数据类型。
    设置和返回值
    设置或返回下列 DataTypeEnum 值之一。相应的 OLE DB 类型标识符在下表的说明栏的括号中给出。有关 OLE DB 数据类型的详细信息,请参阅第 10 章和《OLE DB 程序员参考》的附录
    常量 说明
    AdArray 与其他类型一起加入逻辑 OR 以指示该数据是那种类型的安全数组 (DBTYPE_ARRAY)。
    AdBigInt 8 字节带符号的整数 (DBTYPE_I8)。
    AdBinary 二进制值 (DBTYPE_BYTES)。
    AdBoolean 布尔型值 (DBTYPE_BOOL)。
    adByRef 与其他类型一起加入逻辑 OR 以指示该数据是其他类型数据的指针 (DBTYPE_BYREF)。
    adBSTR 以空结尾的字符串 (Unicode) (DBTYPE_BSTR)。
    adChar 字符串值 (DBTYPE_STR)。
    adCurrency 货币值 (DBTYPE_CY)。货币数字的小数点位置固定、小数点右侧有四位数字。该值保存为 8 字节范围为 10,000 的带符号整型值。
    adDate 日期值 (DBTYPE_DATE)。日期按双精度型数值来保存,数字全部表示从 1899 年 12 月 30 开始的日期数。小数部分是一天当中的片段时间。
    adDBDate 日期值 (yyyymmdd) (DBTYPE_DBDATE)。
    adDBTime 时间值 (hhmmss) (DBTYPE_DBTIME)。
    adDBTimeStamp 时间戳(yyyymmddhhmmss 加 10 亿分之一的小数)(DBTYPE_DBTIMESTAMP).
    adDecimal 具有固定精度和范围的精确数字值 (DBTYPE_DECIMAL)。
    adDouble 双精度浮点值 (DBTYPE_R8)。
    adEmpty 未指定值 (DBTYPE_EMPTY)。
    adError 32 - 位错误代码 (DBTYPE_ERROR)。
    adGUID 全局唯一的标识符 (GUID) (DBTYPE_GUID)。
    adIDispatch OLE 对象上 Idispatch 接口的指针 (DBTYPE_IDISPATCH)。
    adInteger 4 字节的带符号整型 (DBTYPE_I4)。
    adIUnknown OLE 对象上 IUnknown 接口的指针 (DBTYPE_IUNKNOWN)。
    adLongVarBinary 长二进制值(仅用于 Parameter 对象)。
    adLongVarChar 长字符串值(仅用于 Parameter 对象)。
    adLongVarWChar 以空结尾的长字符串值(仅用于 Parameter 对象)。
    adNumeric 具有固定精度和范围的精确数字值 (DBTYPE_NUMERIC)。
    adSingle 单精度浮点值 (DBTYPE_R4)。
    adSmallInt 2 字节带符号整型 (DBTYPE_I2)。
    adTinyInt 1 字节带符号整型 (DBTYPE_I1)。
    adUnsignedBigInt 8 字节不带符号整型 (DBTYPE_UI8)。
    adUnsignedInt 4 字节不带符号整型 (DBTYPE_UI4)。
    adUnsignedSmallInt 2 字节不带符号整型 (DBTYPE_UI2)。
    adUnsignedTinyInt 1 字节不带符号整型 (DBTYPE_UI1)。
    adUserDefined 用户定义的变量 (DBTYPE_UDT)。
    adVarBinary 二进制值(仅 Parameter 对象)。
    adVarChar 字符串值(仅 Parameter 对象)。
    adVariant 自动变体型 (DBTYPE_VARIANT)。
    adVector 与其他类型一起加入逻辑 OR 中,指示数据是 DBVECTOR 结构(由 OLE DB 定义)。该结构含有元素的计数和其他类型 (DBTYPE_VECTOR) 数据的指针。
    adVarWChar 以空结尾的 Unicode 字符串(仅 Parameter 对象)。
    adWChar 以空结尾的 Unicode 字符串 (DBTYPE_WSTR)。
    说明
    对 Parameter 对象,Type 属性是读/写。对其他所有对象,Type 属性是只读。


    Direction 属性
    指示 Parameter 所标明的是输入参数、输出参数还是既是输出又是输入参数,或该参数是否为存储过程返回的值。
    设置和返回值
    设置或返回以下某个 ParameterDirectionEnum 值。
    常量 说明
    AdParamUnknown 指示参数方向未知。
    AdParamInput 默认值。指示输入参数。
    AdParamOutput 指示输出参数。
    AdParamInputOutput 同时指示输入参数和输出参数。
    AdParamReturnValue 指示返回值。
    说明
    使用 Direction 属性可指定向过程传递参数或从过程传递参数的方式。Direction 属性为读/写;该属性允许使用不返回该信息的提供者,或者在不希望 ADO 为了获取参数信息而附加调用提供者时设置该信息。
    并非所有的提供者都可以在其存储过程中确定参数方向。在此情况下,在执行查询前必须设置 Direction 属性。

     ----------------------------------------------------------------

    按上面的说明,各参数都应该有一些固定的参数写法,然而我看到的下面这部分代码,不知道为什么参数都是一堆数字。。。

    不理解各个数字难道有什么转义??懵逼脸。

        gudtErrObject.Position = "fncProcRun_0010" '処理開始
        Me.MousePointer = 11
        Set objCmd = CreateObject("ADODB.Command")
        Set objPrm = CreateObject("ADODB.Parameter")
        
        strProcSql = "AD_SIR_IF.AD_MAIN_R"
        
        With objCmd
            gudtErrObject.Position = "fncProcRun_0020" 'コマンド設定
            .CommandText = strProcSql
            .CommandType = 4
            .ActiveConnection = objOraDb
            
            gudtErrObject.Position = "fncProcRun_0030" 'IN引数の設定
            Set objPrm = .CreateParameter("PC_KAI_CODE_i", 129, 1, 5)
            .Parameters.Append objPrm
            Set objPrm = .CreateParameter("PC_KMK_KAIKAKE_i", 200, 1, 255)
            .Parameters.Append objPrm
            Set objPrm = .CreateParameter("PC_KMK_SETSUBI_i", 200, 1, 255)
            .Parameters.Append objPrm
            Set objPrm = .CreateParameter("PC_RPL_DATE_S_i", 129, 1, 10)
            .Parameters.Append objPrm
            Set objPrm = .CreateParameter("PC_RPL_DATE_E_i", 129, 1, 10)
            .Parameters.Append objPrm
            Set objPrm = .CreateParameter("PC_SIR_CODE_S_i", 129, 1, 20)
            .Parameters.Append objPrm
            Set objPrm = .CreateParameter("PC_SIR_CODE_E_i", 129, 1, 20)
            .Parameters.Append objPrm
            Set objPrm = .CreateParameter("PC_REC_KBN_i", 129, 1, 1)
            .Parameters.Append objPrm
            
            gudtErrObject.Position = "fncProcRun_0040" 'OUT引数の設定(エラー情報分)
            Set objPrm = .CreateParameter("PN_ret_sts_o", 21, 2, 10)
            .Parameters.Append objPrm
            Set objPrm = .CreateParameter("PV_err_pos_o", 200, 2, 255)
            .Parameters.Append objPrm
            Set objPrm = .CreateParameter("PN_err_code_o", 21, 2, 10)
            .Parameters.Append objPrm
            Set objPrm = .CreateParameter("PV_err_msg_o", 200, 2, 255)
            .Parameters.Append objPrm
            
            gudtErrObject.Position = "fncProcRun_0050" 'IN引数に値を設定
            .Parameters("PC_KAI_CODE_i").Value = gstrTenRenkeiKaiCode
            .Parameters("PC_KMK_KAIKAKE_i").Value = gstrKamokuKaikake
            .Parameters("PC_KMK_SETSUBI_i").Value = gstrKamokuSetsubi
            
            .Parameters("PC_RPL_DATE_S_i").Value = IIf(IsNull(imDate(0).Value), "", imDate(0).Value)
            .Parameters("PC_RPL_DATE_E_i").Value = IIf(IsNull(imDate(1).Value), "", imDate(1).Value)
            .Parameters("PC_SIR_CODE_S_i").Value = imtxtShiireSakiCode(0).Text
            .Parameters("PC_SIR_CODE_E_i").Value = imtxtShiireSakiCode(1).Text
            .Parameters("PC_REC_KBN_i").Value = gstrMode
            
            
            .Execute
            
            If .Parameters("PN_ret_sts_o").Value = 0 Then
                '正常終了の場合
                Me.MousePointer = 0
            Else
                '異常終了の場合
                GoTo ProcErrWrite 'エラー書出し処理へ
            End If
            On Error GoTo 0
            Set objPrm = Nothing
            Set objCmd = Nothing
            
        End With

     

    转载于:https://www.cnblogs.com/neru/p/6143610.html

    展开全文
  • VB 调用 sql server 存储过程。文档
  • vb调用oracle存储过程

    2009-02-26 20:53:15
    vb调用oracle存储过程,及有一个存储过程实例
  • 金蝶K3插件开发调用存储过程
  • vb调用存储过程

    2008-05-12 15:51:00
    Public Sub procExe(ByVal procName As String, ByVal pch As String) Dim cn As ADODB.Connection Dim cmd As ADODB.Command cn.ConnectionString = "" cn.Open Set cmd.ActiveConnection = cn cmd.
  • VB调用执行存储过程[参考].pdf
  • 使用VB调用Oracle程序包内的存储过程返回结果集 使用VB调用Oracle程序包内的存储过程返回结果集
  • string?sqltxt=”UserManage” SqlCommand?sqlcmd?=?new?SqlCommand(sqltxt,?conn); sqlcomm.CommandType?=?CommandType.StoredProcedure; SqlParameter[]?param?=?new?SqlParameter[5];...SqlParamete...
  • VB6.0 调用存储过程

    2015-11-12 14:45:00
    最近有在做一个需求,需要在VB6.0中调用存储过程,整理了一下,供大家参考, 范例: 1 Function callStoredProcedure(sEmployeeID As String, Optional sNotes As String = "") As String 2 On Error GoTo ...
  • 使用VB调用oracle数据库存储过程的研究.pdf
  • VB 调用oracle 带返回值的存储过程 DEMO
  • VB调用SQL数据库中存储过程的方法.pdf
  • 存储过程是存储在服务器上的一组预编译的Transact-SQL语句,是一种封装重复任务操作的...本文以SQL Server2000存储过程为例,探讨了存储过程的优点,并以Visual Basic6.0程序设计语言给出了调用存储过程的关键代码。
  • 包括参数传递,接收存储过程返回值,存储过程遇错误继续执行及停止执行
  • 使用VB 与oracle 进行连接是软件开发人员经常使用的组合,充分利用oracle 中的存储过程来处理应用 程序频繁使用的逻辑,不仅可以提高效率和安全性,而且也可以最大限度地利用资源,减少编程人员的重复劳 动。对存储过程...
  • VB调用存储过程

    千次阅读 2006-06-07 17:00:00
    Dim adocomm As New ADODB.Command Dim prmRetVal As ADODB.Parameter Dim prmId As ADODB.Parameter adocomm.ActiveConnection = conn adocomm.CommandType = adCmdStoredProc adocomm.CommandText = "sp_del_...
  • 先建立一个无参的存储过程,为下面第一个无参调用作准备: use Sales go create procedure sp_getGrade as select * from grade where 数学>60 go 注:go是作为前面批处理的结束情况。因为前面执行是要花时间的...
  • -- 我定义的存储过程如下,很简单的一个过程,并且在Cmd命令里面运行是正常的。 USE `appraisesystem`; DROP procedure IF EXISTS `protest`; DELIMITER $$ USE `appraisesystem`$$ CREATE DEFINER=`root`@`%...
  • 下面,我们谈谈在VB中调用存储过程的实现方法及其注意事项。 ---- 我们知道,VB的数据库编程有许多种方法,比如直接用ODBC API编程,这种方法灵活、高效,程序员可以实现对数据库复杂的控制;也可以用VB中的数据...
  • vb.net 调用oracle中存储过程

    千次阅读 2012-05-19 14:52:27
    存储过程的实例: PROCEDURE TEST_C(temp out varchar2,a IN varchar2, b in varchar2) IS BEGIN  temp:=a || b;  END; 调用方法: 说明:要在程序开头加入Imports System.Data.OleDb  Dim dbConn As ...
  • 由于对VB 的变成不是很了解,公司由于业务的需求,要求从sql server数据库改为Oracle,并进行了简单的学习,以下是对VB连接 oracle 调用存储过程的实例:拷贝出来公大家参考一下: Private Sub Form_Load() ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 22,377
精华内容 8,950
关键字:

vb如何调用存储过程