Fehler bei SP aufruf in MySQL Server mit OUT Paramerter übergabe

18/08/2008 - 11:20 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 myODBC5.1.4 installiert und die server Version
ist mysqld-5.1.26-rc-community und die Datenbank heisst verwaltung.

Als Test hab ich folgende Prozedur 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, _
adParamInput, 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 Prozedur 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 Prozedur 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 - 14:59 | Warnen spam
hallo Stephan,

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


Wenn unser aller Freund recht hat, dann scheint die einzige Lösung der
Verzicht der IN/OUT-Markierung der Parameter zu sein. Übergebe beim
Aufruf einen leere Zeichenkette.


mfG

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

Ähnliche fragen