- 论坛徽章:
- 0
|
总是报ora 1002 :fetch out of sequence
int OraGetFileType()
{
int i;
char chSql[1000];
sprintf(chSql, "SELECT %s.FILE_HEAD,HEAD_LEN,VOLUME_NUM,RECORD_LEN,FILE_NAME_LEN,\
IS_ANAY,IS_MOD,MOD_TYPE,MARK_NAME1,MARK_NAME2,ARRAY_SEQ,LINK_CHAR,FILE_DATE,\
FILE_DATE_POS,FILE_DATE_LEN,TABLE_DATE,TABLE_DATE_LEN,IS_DATE \
FROM %s,%s,%s,%s,%s \
WHERE %s.PROC_NAME = '%s' \
AND %s.FILE_HEAD = %s.FILE_HEAD \
AND %s.DATE_ID = %s.DATE_ID \
AND %s.MARK_ID = %s.MARK_ID \
AND %s.MOD_ID = %s.MOD_ID \
ORDER BY length(ltrim(rtrim(%s.FILE_HEAD))) DESC",
gstruParam.chLoadFileTypeTable,
gstruParam.chLoadProcTable,gstruParam.chLoadFileTypeTable,
gstruParam.chLoadMarkTable,gstruParam.chLoadDateTable,gstruParam.chLoadModeTable ,
gstruParam.chLoadProcTable,gstruParam.chPgName ,
gstruParam.chLoadProcTable,gstruParam.chLoadFileTypeTable,
gstruParam.chLoadFileTypeTable,gstruParam.chLoadDateTable,
gstruParam.chLoadFileTypeTable,gstruParam.chLoadMarkTable,
gstruParam.chLoadFileTypeTable,gstruParam.chLoadModeTable,
gstruParam.chLoadFileTypeTable);
printf("%s\n", chSql);
EXEC SQL WHENEVER SQLERROR DO OraSqlError();
EXEC SQL WHENEVER NOT FOUND DO break;
EXEC SQL AT :gstruParam.chDbLink PREPARE SGetFileType FROM :chSql;
EXEC SQL AT :gstruParam.chDbLink DECLARE cur_c_cfg CURSOR FOR SGetFileType;
memset(gstruCfgInfo, 0, sizeof(gstruCfgInfo));
i = 0;
while(1)
{
EXEC SQL AT :gstruParam.chDbLink FETCH cur_c_cfg INTO
:gstruCfgInfo[i].chFileHead,
:gstruCfgInfo[i].iFileHeadLen,
:gstruCfgInfo[i].iVolumeNum,
:gstruCfgInfo[i].iRecLen,
:gstruCfgInfo[i].iFileNameLen,
:gstruCfgInfo[i].iIsAnay,
:gstruCfgInfo[i].struMod.iIsMod,
:gstruCfgInfo[i].struMod.iModType,
:gstruCfgInfo[i].struMark.chMarkName1,
:gstruCfgInfo[i].struMark.chMarkName2,
:gstruCfgInfo[i].struMark.chArraySeq,
:gstruCfgInfo[i].struMark.chLinkChar,
:gstruCfgInfo[i].struDate.chFileDate,
:gstruCfgInfo[i].struDate.iFileDatePos,
:gstruCfgInfo[i].struDate.iFileDateLen,
:gstruCfgInfo[i].struDate.chTableDate,
:gstruCfgInfo[i].struDate.iTableDateLen,
:gstruCfgInfo[i].struDate.iIsDate;
IgnoreSpaces(gstruCfgInfo[i].chFileHead);
IgnoreSpaces(gstruCfgInfo[i].struMark.chMarkName1);
IgnoreSpaces(gstruCfgInfo[i].struMark.chMarkName2);
IgnoreSpaces(gstruCfgInfo[i].struMark.chArraySeq);
IgnoreSpaces(gstruCfgInfo[i].struMark.chLinkChar);
IgnoreSpaces(gstruCfgInfo[i].struDate.chFileDate);
IgnoreSpaces(gstruCfgInfo[i].struDate.chTableDate);
PrintfMsg("OraGetFileType=%s %s %d %s*\n",
gstruParam.chPgName,gstruCfgInfo[i].chFileHead,gstruCfgInfo[i].iVolumeNum, gstruCfgInfo[i].struMark.chArraySeq);
*/
i++;
}
EXEC SQL AT :gstruParam.chDbLink CLOSE cur_c_cfg;
return RSUCCESS;
}
那位高手帮我看看错在那里呢? 非常感谢 |
|