在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
此问题由水手回答。
| |
|
|
| |
|
|