欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

mysql5.1顶用c api创建存储过程?

更新时间: 2014-01-05 02:31:57 责任编辑: Author_N1

 

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

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:31:57
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/11024/
本文WWW.DOC100.NET DOC100.NET版权所有。