OUT or INOUT argument 2 for routine verwaltung.test is not a variable or NEW pseudo-variable in BEFORE trigger

17/08/2008 - 20:58 von Stephan Menzel | Report spam
Hallo,

ich habe ein kleines Problem mit dem versuch in MySQL eine SP über VBA
in Access 2003 aufzurufen.
Als ODBC ist bei mir 5.1.4 installiert und die server Version ist
mysqld-5.1.26-rc-community und die Datenbank heisst verwaltung.

Als Test hab ich folgende Procedur in VBA geschrieben:

Sub test_proc(var_Temp As Variant)
Dim rst As New ADODB.Recordset
Dim cmd As New ADODB.Command
Dim var_Result As Variant

With cmd
.ActiveConnection = GetMySQL_Conn 'verbindung zum MySQL Server
.CommandType = adCmdStoredProc
.CommandText = "test"
'.Parameters.Append .CreateParameter("var_Value", adVarChar, _
adParamOutput, 100, var_Temp)
.Parameters.Append .CreateParameter("var_Result", adVarChar, _
adParamOutput, 100)
.Execute
End With

Debug.Print var_Result;

Set rst = Nothing
Set cmd = Nothing

End Sub

in der Datenbank ist folgende Procedure gespeichert:

DELIMITER $$

DROP PROCEDURE IF EXISTS `verwaltung`.`test` $$

CREATE DEFINER=`root`@`localhost` PROCEDURE `test`(
IN var_Value VARCHAR(100), OUT var_Result VARCHAR(100))

BEGIN

SET var_Result=REVERSE(var_Value);

END $$

DELIMITER ;

wenn ich die Procedur in VB nun im Direktfenster mit
call test_proc("Test") ausführe,
erhalt ich folgende Fehlermeldung:

[MySQL][ODBC 5.1 Driver][mysqld-5.1.26-rc-community]OUT or INOUT
argument 2 for routine verwaltung.test is not a variable or NEW
pseudo-variable in BEFORE trigger

Anfangs hatte ich probiert mir ein Recordset zurückgeben zu lassen,
was auch wunderbar funktioniert, nur hàgt es halt jetzt am auslesen
der OUT Parameter der SP.

Könntet ihr mir vielleicht etwas auf die sprünge helfen, wo da der
Fehler liegt?

cu Stephan
 

Lesen sie die antworten

#1 Stefan Hoffmann
18/08/2008 - 10:43 | Warnen spam
hallo Stephan,

Stephan Menzel schrieb:
'.Parameters.Append .CreateParameter("var_Value", adVarChar, _
adParamOutput, 100, var_Temp)
.Parameters.Append .CreateParameter("var_Result", adVarChar, _
adParamOutput, 100)

CREATE DEFINER=`root`@`localhost` PROCEDURE `test`(
IN var_Value VARCHAR(100), OUT var_Result VARCHAR(100))

Könntet ihr mir vielleicht etwas auf die sprünge helfen, wo da der
Fehler liegt?


Du hast keinen Input-Parameter in deinem Aufruf.

btw, mpda.clientserver ist eventuell die bessere NG für solche Fragen.


mfG

Access-FAQ http://www.donkarl.com/
KnowHow.mdb http://www.freeaccess.de
Newbie-Info http://www.doerbandt.de/Access/Newbie.htm

Ähnliche fragen