MySQL - Funcion desde c#

 
Vista:
sin imagen de perfil

Funcion desde c#

Publicado por Roberto (2 intervenciones) el 05/09/2020 20:27:06
Buen día.
Hice una Funcion para dar de alta en una tabla, regresando 0 cuando no existe error y si de inserto el registro, y 1 cuando existe algun error.

Si la corro desde Mysql si me funciona, pero si la corro desde C# me da un error.

"La converion especificada no es valida".
La funcion es...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
CREATE DEFINER=`root`@`localhost` FUNCTION `sp04alta`(
_sp04_clv_esta char(2),
_sp04_des_esta varchar(30)
) RETURNS int
    DETERMINISTIC
BEGIN
DECLARE l_sql_erro DECIMAL(10,2);
 
 
 
DECLARE EXIT HANDLER FOR SQLEXCEPTION
    RETURN 1;
 
 
 
INSERT INTO sp04estado
	VALUES (_sp04_clv_esta,_sp04_des_esta);
 
RETURN 0;
END


******************************
Y la invocacion es algo mas o menos asi...

1
2
3
4
5
6
7
8
9
10
11
12
ComSqlComad = new MySqlCommand("call sp04alta (?, ?);", ConBaseDato);
ComSqlComad.CommandType = CommandType.Text;
ComSqlComad.Parameters.Add(new MySqlParameter("@sp04_clv_esta", MySqlDbType.VarChar,2 )).Value = ObjDatSp04estado.sp04_clv_esta;
ComSqlComad.Parameters.Add(new MySqlParameter("@sp04_des_esta", MySqlDbType.VarChar, 30)).Value = ObjDatSp04estado.sp04_des_esta;
 
foreach (IfxParameter ParParametro in ComSqlComad.Parameters)
    if (ParParametro.Value == null) ParParametro.Value = DBNull.Value;
try
{
    ConBaseDato.Open();
    return (int)ComSqlComad.ExecuteScalar();
}


Ayuda por favor.
Se supone que estoy retornando un INT desde la funcion y recibiendo in INT en C#

He intentado tambien declarabdo la variable

declare codigo_error int;
.
.
.
RETURN codigo_error;

Y de igual maner funciona bien desde MYsqq, pero desde la aplicacion me da el mismo error.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder