一个Pro*c的问题

手手更健康 2009-09-07 03:21:09
int Idcode_chk_inf_test_Dec_Sel ( reply , fmtstr , va_alist )
char *reply;
char *fmtstr;
va_dcl
{
EXEC SQL BEGIN DECLARE SECTION;
char comm[1000];
EXEC SQL END DECLARE SECTION;
char wherelist[800];

va_list ap;
va_start(ap);
vsprintf ( wherelist , fmtstr , ap );
va_end(ap);

sprintf ( comm ," SELECT rowid,idcode_chk_inf_test.* FROM idcode_chk_inf_test WHERE ");
key_strcat(comm,wherelist);

vtcp_log("%s,%d,SQLSTR=[%s]\n",__FILE__,__LINE__,comm);
sqlca.sqlcode=0;
EXEC SQL PREPARE idcode_chk_inf_test_sel FROM :comm;
EXEC SQL DECLARE sel_idcode_chk_inf_test CURSOR FOR idcode_chk_inf_test_sel;

EXEC SQL OPEN sel_idcode_chk_inf_test;
if (sqlca.sqlcode){
sprintf(acErrMsg,"OPEN idcode_chk_inf_test error %d",sqlca.sqlcode);
WRITEMSG
strcpy ( reply , "D102" );
return CM_SQLCODE;
}

return 0;
}

int Idcode_chk_inf_test_Fet_Sel ( struct idcode_chk_inf_test_c *idcode_chk_inf_test_c , char * reply )
{

int ret;

EXEC SQL FETCH sel_idcode_chk_inf_test INTO :idcode_chk_inf_test_c;
if (sqlca.sqlcode&&sqlca.sqlcode!=1403){
sprintf(acErrMsg,"Fetch idcode_chk_inf_test error!!! %d",sqlca.sqlcode);
WRITEMSG
strcpy (reply,"D103");
return CM_SQLCODE;
}
else if ( sqlca.sqlcode == 1403 ){
sprintf(acErrMsg,"Fetch idcode_chk_inf_test finished!!! %d",sqlca.sqlcode);
WRITEMSG
strcpy (reply,"D104");
return CM_SQLCODE;
}
zip_struct(idcode_chk_inf_test_c);

return 0;
}
红色字体位置出错,说变量未定义,说的应该是那个游标sel_idcode_chk_inf_test吧,但是吧蓝色字体游标定义的部分拷贝到红色字体上面,就会说试图重定义,不知道哪位大虾能帮忙看看怎么回事
...全文
56 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
problc 2009-09-07
  • 打赏
  • 举报
回复
两个函数里面不要用一样的游标名,要么就把它弄成全局的。。

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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