首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

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

2012-02-17 
mysql5.1中用c api创建存储过程???//连接数据库mysql_real_connect(&m_mysql, m_host, m_user, m_passwd,

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了。然后你一句一句分开执行

热点排行