一个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吧,但是吧蓝色字体游标定义的部分拷贝到红色字体上面,就会说试图重定义,不知道哪位大虾能帮忙看看怎么回事