Вызов ПАРАМЕТРА В MYSQL из VB6

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

Вот мой код хранимой процедуры 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)"в результате как"? "(да, он печатает знак вопроса)

Пожалуйста помоги. Благодарю.

0 ответов

Другие вопросы по тегам