2001/03/27 11:07:47 exeName.cgi funcName sqlca.sqlerrm.sqlerrmc ORA-01036: illegal variable name/number
-1036
프로씨로 씨지아이를 짜던 도중 만났습니다.
상황은
showClass(ClsSchId,varName)
char varName[];
int ClsSchId;
{
fprintf(cgiOut,"<select size="1" name=%s>\n",varName);
memset(sqlCmd,0x00,sizeof(sqlCmd));
sprintf(sqlCmd,"SELECT ClsClass FROM Class WHERE ClsStuId=%d",ClsSchId);
EXEC SQL PREPARE SQL_Class FROM :sqlCmd;
EXEC SQL DECLARE CUR_Class CURSOR FOR SQL_Class;
EXEC SQL OPEN CUR_Class;
while (1) {
EXEC SQL FETCH CUR_Class INTO :ClsClasstmp;
if (sqlca.sqlcode == ERR_NODATA) {
EXEC SQL CLOSE CUR_Class;
break;
}
EXEC SQL SELECT CODCONTENT INTO :CodContent FROM CODE WHERE CodKind = '08' AND CodCode = :ClsClasstmp;
CodContent.arr[CodContent.len]=0x00;
fprintf(cgiOut,"<option value="%s">%s</option>\n",ClsClasstmp.arr,CodContent.arr);
}
fprintf(cgiOut,"</select>\n");
}
이 부분을 실행시킨후...
sprintf(sqlCmd,"select ClsClass, ClsGrade, ClsKind from class where clsstuid=%d",SchId);
EXEC SQL PREPARE SQL_AdmT FROM :sqlCmd;
EXEC SQL DECLARE CUR_AdmT CURSOR FOR SQL_AdmT;
EXEC SQL OPEN CUR_AdmT;
while (1) {
StuCount=0;
EXEC SQL FETCH CUR_AdmT
INTO :ClsClass,:ClsGrade,:ClsKind;
if (sqlca.sqlcode == ERR_NODATA) {
EXEC SQL CLOSE CUR_AdmT;
break;
}
ClsClass.arr[ClsClass.len]=0x00;
ClsGrade.arr[ClsGrade.len]=0x00;
ClsKind.arr[ClsKind.len]=0x00;
EXEC SQL SELECT COUNT(*) INTO :StuCount FROM STUDENT WHERE StuSchId=:SchId AND StuClass=:ClsClass;
/* DEBUG */ saveMsg("exeName.cgi", "funcName", "sqlca.sqlerrm.sqlerrmc",ClsClass.arr ,ClsClass.len);
바로 위 질이어를 실행시키고 에러를 찍어보니까...
걱정됩니다. 고수님들 부탁드립니다.
|