Вызов ПАРАМЕТРА В MYSQL из VB6 - PullRequest
0 голосов
/ 09 июня 2018

Я пытаюсь получить результат из хранимой процедуры.Я нашел этот поток и немного изменил его по своему усмотрению.

Вот мой код хранимой процедуры MYSQL:

DROP PROCEDURE IF EXISTS `InsertList`;

CREATE DEFINER = `root`@`localhost` PROCEDURE `InsertList`(IN fName VARCHAR(20), IN fType VARCHAR(20), IN fFood varchar(20), OUT res INT)
BEGIN
  insert into tblguest (firstname, confirm, food) values (fName, fType, fFood);
  select count(firstname) from tblguest into res;       
END;

Вот мой код VB6:

Private Sub Command8_Click()

Dim rs As ADODB.Recordset
Dim cmd As ADODB.Command
Dim result As Integer

Set cmd = New ADODB.Command

cn.ConnectionString = "DRIVER={MySQL ODBC 3.51 Driver};" & "SERVER=localhost;" & " DATABASE=test;" & "UID=root;PWD=123;"
cn.Open

Set cmd.ActiveConnection = cn
cmd.CommandType = adCmdText
cmd.CommandText = "Call InsertList(?,?,?,@fResult)" 

cmd.Parameters.Append cmd.CreateParameter("fName", adVarChar, adParamInput, 10, Text4.Text)
cmd.Parameters.Append cmd.CreateParameter("fType", adVarChar, adParamInput, 10, Text5.Text)
cmd.Parameters.Append cmd.CreateParameter("fFood", adVarChar, adParamInput, 10, Text6.Text)
'cmd.Parameters.Append cmd.CreateParameter("result", adInteger, adParamOutput)

 Set rs = cmd.Execute
Set rs = cn.Execute("select @fresult as theresult")
 If Not rs.EOF Then

        Debug.Print "result is: " & rs.Fields(0)
        rs.MoveNext
    End If

rs.Close
cn.Close
End Sub

Часть "cmd.Parameters.Append cmd.CreateParameter("result", adInteger, adParamOutput)" намеренно закомментирована, так как при активации она выдаст ошибку.

Когда нажата командная кнопка, она не выдает никакой ошибки.Но это также не дает правильного вывода.Эта строка "Debug.Print "result is: " & rs.Fields(0)" в результате "?"(да, он печатает знак вопроса)

Пожалуйста, помогите.Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...