当前位置: 代码迷 >> 其他数据库 >> mysql5.1中用c api创建存储过程?解决办法
  详细解决方案

mysql5.1中用c api创建存储过程?解决办法

热度:8050   发布时间:2013-02-26 00:00:00.0
mysql5.1中用c api创建存储过程???
//连接数据库
mysql_real_connect(&m_mysql, m_host, m_user, m_passwd, m_db, 0, "", CLIENT_MULTI_STATEMENTS)
//准备创建存储过程的语句
char sqlState[2048] = {0};
sprintf(chSql, "DELIMITER //\nDROP PROCEDURE IF EXISTS p_insertrankrp //\nCREATE PROCEDURE p_insertrankrp() \
\nBEGIN \nSTART TRANSACTION; \
\ndelete from %s where time >=%d and time <= %d;\
\ncommit;\
\nend // \
\nDELIMITER ; ","teast", 12345, 123667);



//执行SQL语句
mysql_real_query(&m_mysql, sqlState, strlen(sqlState)); //执行查询

//错误信息:

1064, You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELIMITER // 
DROP PROCEDURE IF EXISTS `onesec`.`p_insertrankrp` // 
CREATE PROCE' at line 1
//onesec是我的数据库名

问题:
以上语句在SQLyog中是正确的。
我的数据库是5.1的。


这是为什么???



------解决方案--------------------------------------------------------
你将chSql的值显示出来看看
------解决方案--------------------------------------------------------
通过C API,不需要这个DELIMITER了。然后你一句一句分开执行
  相关解决方案