热情软件屋

 

在vb中调用oracle下的存储过程


编号:QA004499
建立日期: 2001年12月11日 最后修改日期:2001年12月11日
所属类别:

水手:
    有个问题向你请教,就是在vb中调用oracle下的存储过程,一直编译不过去,寻求解决!非常感谢!
    
    存储过程:
     (
     aaa out string)
     AS
    BEGIN
     SELECT Param_Value
     INTO aaa
     from ZY_CARD_PARAM
     where param_name='IC_Port';
    END;
    
    vb程序段:
    Public Function GetUnitParam() As String
    
     Dim CNN As New ADODB.Connection
     Dim COM As New ADODB.Command
     CNN.ConnectionString = "Provider=OraOLEDB.Oracle.1;Persist Security Info=False;User ID=SYSMAN;PASSWORD=KKND;Data Source=KKND"
     CNN.Open
     COM.ActiveConnection = CNN
     COM.CommandType = adCmdStoredProc
     COM.CommandText = "ZY_Get_Sys_Param"
     COM.Execute
     GetUnitParam = COM("aaa")
    End Function

回答:

    我已经找到答案了,就是要在vb程序中对存储过程的参数变量进行初始化:如下:
    COM.Parameters.Append COM.CreateParameter("sParamName", adVarChar, adParamInput, 20, sParamName)
     COM.Parameters.Append COM.CreateParameter("ParamValue", adVarChar, adParamOutput, 20, ParamValue)
    存储过程,和vb程序段如下:
    存储过程:
    PROCEDURE "ZY_GET_SYS_PARAM"
     (ParamName in varchar,
     ParamValue out varchar )
     AS
    BEGIN
     SELECT Param_Value
     INTO ParamValue
     from ZY_CARD_PARAM
     where param_name=ParamName;
    END;
    
    VB
    相关函数
    Public Function GetUnitParam(ByVal sParamName As String) As String
    
     Dim CNN As New ADODB.Connection
     Dim COM As New ADODB.Command
     CNN.ConnectionString = "Provider=OraOLEDB.Oracle.1;Persist Security Info=False;User ID=SYSMAN;PASSWORD=KKND;Data Source=KKND"
     CNN.Open
    
     COM.ActiveConnection = CNN
     COM.CommandType = adCmdStoredProc
     COM.CommandText = "ZY_Get_Sys_Param"
    
     COM.Parameters.Append COM.CreateParameter("sParamName", adVarChar, adParamInput, 20, sParamName)
     COM.Parameters.Append COM.CreateParameter("ParamValue", adVarChar, adParamOutput, 20, ParamValue)
    
     COM.Execute
     GetUnitParam = COM("ParamValue")
     Exit Function
    
    End Function

此问题由水手回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio