Hello,
I am using myodbc with unixODBC. I have downloaded myodbc for
solaris.
now, I am facing problems executing stored procedures with out
parameters.
I am using the example shown in stored procedure section of MySQL
reference manual :
CREATE PROCEDURE simpleproc (OUT param1 INT)
BEGIN
SELECT COUNT(*) INTO param1 FROM t;
END;
my C code to access stored procedure:
strcpy(stmt, "call simpleproc(?)") ;
rc = SQLPrepare(hstmt,stmt,SQL_NTS);
and binding an integer parameter, id to the statment :
SQLINTEGER id;
rc= SQLBindParameter(hstmt, 1, SQL_PARAM_OUTPUT, SQL_C_LONG,
SQL_INTEGER, 0, 0, &id, 0, NULL);
rc=SQLExecute(hstmt);
if ((rc != SQL_SUCCESS) && (rc != SQL_SUCCESS_WITH_INFO))
{
printf("Error in call to stored procedure %d\n",rc);
SQLGetDiagRec(SQL_HANDLE_STMT, hstmt,1, stat,&err,msg,100,&mlen);
printf("%s (%d)\n State : %s \n",msg,err, stat);
}
When I compile and run this program, I get the following error.
Connected !
Error in call to stored procedure -1
[MySQL][ODBC 3.51 Driver][mysqld-5.0.19-standard]OUT or INOUT argument 1
for routine test.simplepro (1414)
State : HYT00
Initially I thought State: HYT00, is something related to timeout. so
changed the statement attribute and changed the timeout period. but that
also doesn't help
I even tried the "?=call simpleproc()" but this gives syntax error.
I spoke to unixODBC people also, they are saying, the problem is in
myodbc.
so please help me.
thanks and regards
sharari