动态sql语句不能重复执行的问题

caac9999 2014-05-12 07:35:34
数据库Sybase,开发语言为c
写了一个动态查询的程序,采用动态游标
sqlstr为查询语句
EXEC SQL PREPARE sqlid FROM :sqlstr;
EXEC SQL DECLARE qry_cursor CURSOR FOR sqlid;
EXEC SQL OPEN qry_cursor USING :AA;
while(1){
EXEC SQL FETCH qry_cursor INTO :a;
}

EXEC SQL CLOSE qry_cursor;

大体上就是这样子的,第一次运行成功,之后再运行就会报错,提示EXEC SQL PREPARE 语句出错:
sqlcode=-2010,错误提示:A procedure by that name already exists.

如果我把程序执行后都断开数据库,重新连接,就不会报错,请教这是什么原因啊?
...全文
252 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
iibetter 2014-05-13
  • 打赏
  • 举报
回复
中间得有退出机制: while(1){ EXEC SQL FETCH qry_cursor INTO :a; if (sqlca.sqlcode == 100) break; }
caac9999 2014-05-12
  • 打赏
  • 举报
回复
自己顶一下!

2,596

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧