由于对VB 的变成不是很了解,公司由于业务的需求,要求从sql server数据库改为Oracle,并进行了简单的学习,以下是对VB连接 oracle 调用存储过程的实例:拷贝出来公大家参考一下:
Private Sub Form_Load()
Dim conn As Object '生命变量
Set conn = CreateObject("ADODB.Connection") '创建连接对象
conn.ConnectionTimeout = 180
conn.CommandTimeout = 180
conn.Open "Provider=OraOLEDB.Oracle.1;Data Source=EQP_DEV;User Id=eqp_maint;Password=eqp_maint_ps"
'打开数据库连接,说明:Provider:指定使用什么数据库,Data Source:
database User Id:连接数据库的用户 Password: 密码
Dim str As String
Dim outPut As String
'str = "123"
Set cmd = CreateObject("ADODB.Command")
Set cmd.ActiveConnection = conn
cmd.CommandTimeout = 180
cmd.CommandText = "EQP_CT_EVENT_OUT_CURSOR.EQP_CT_CREATE_UUID" '要执行存储过程的名称
cmd.CommandType = 4 '说明调用的是存储过程
cmd.Parameters.Append cmd.CreateParameter("@P_FLAG", 200, 1, 30, "M")
'设置参数 其中 第一个参数 代表 要进行传的参数,对应sp 中的参数:第二个参数 代表使用什么类型 如下:
'adBigInt: 20 ;
'adBinary : 128 ;
'adBoolean: 11 ;
'adChar: 129 ;
'adDBTimeStamp: 135 ;
'adEmpty: 0 ;
'adInteger: 3 ;
'adSmallInt: 2 ;
'adTinyInt: 16 ;
'adVarChar: 200 ;
'第三个参数代表的是输入输出:
' 0 : 类型无法确定; 1: 输入参数;2: 输入参数;3:输入或输出参数;4: 返回值
'第四个参数是 值参数长度
'第五个参数 是 参数的值
cmd.Parameters.Append cmd.CreateParameter("@P_UUID", 200, 3, 30)
cmd.Execute '执行
outPut = cmd.Parameters(1) '取得输出值
'Set rs = CreateObject("ADODB.Recordset")
'rs.Open "select * from EQP_STATUS_SUPP", conn, adOpenStatic, adLockBatchOptimistic
'rs.Open cmd, , 0, 1
Text1.Text = outPut
End Sub