当前位置:Gxlcms > mysql > mysql-VB读取MySql存储过程返回值

mysql-VB读取MySql存储过程返回值

时间:2021-07-01 10:21:17 帮助过:27人阅读

mysql存储过程vb

-- 我定义的存储过程如下,很简单的一个过程,并且在Cmd命令里面运行是正常的。
USE appraisesystem;
DROP procedure IF EXISTS protest;

DELIMITER $$
USE appraisesystem$$
CREATE DEFINER=root@% PROCEDURE protest(Word varchar(100),out lens int)
BEGIN
set lens=length(Word);
END$$

DELIMITER ;
-- 读入一个字符串,返回它的长度,就是这个简单过程
-- appraisesystem 是数据库名称;protest 是存储过程名称;
-- 然后我在 VB 里面调用

Private Sub Command2_Click()
Dim Cnn As New ADODB.Connection
Call MySqlConnect("appraisesystem", Cnn) '连接数据库的自定义过程
Dim Cmd As New ADODB.Command
Cmd.ActiveConnection = Cnn

Cmd.CommandText = "protest"
Cmd.CommandType = adCmdStoredProc

Dim Wd As New ADODB.Parameter
Dim ln As New ADODB.Parameter

Dim TestWord As String
TestWord = "hello"
Set Wd = Cmd.CreateParameter("Wd", adVarChar, adParamInput, 100, TestWord)
Set ln = Cmd.CreateParameter("ln", adInteger, adParamOutput)

Cmd.Parameters.Append Wd
Cmd.Parameters.Append ln

Cmd.Prepared = True
Cmd.Execute

MsgBox ln.Value
End Sub

-- MySqlConnect 是VB里面一个用来连接数据库的过程,这个是没有问题的
-- 运行后的问题提示如下:

[mysql]...OUT or INOUT argument 2 for routine appraisesystem.protest is not a variable or NEW pseudo-variable in BEFORE trigger
请那为高手帮忙给看看是哪里错了,我总觉得是参数的问题,但是就是搞不定

人气教程排行