代码如下:
int SelectQueryLogByOrderNum(OrderQuery *pData, int *retRowNum, int maxRow, char *TraceNum, char *merID, char *date )
{
    EXEC SQL BEGIN DECLARE SECTION;
        OrderQuery node;
        char DBTraceNum[40+1];
        char DBmerID[15+1];
        char DBdate[10+1];
    EXEC SQL END DECLARE SECTION;    int WkErr=0, i=0, count = 0;
    memset(DBTraceNum,0,sizeof(DBTraceNum));
    memset(DBmerID,0,sizeof(DBmerID));
    memset(DBdate,0,sizeof(DBdate));    memcpy(DBTraceNum, TraceNum, strlen(TraceNum));
    memcpy(DBmerID, merID, strlen(merID));
    memcpy(DBdate, date, strlen(date));    EXEC SQL DECLARE LineCursor2 cursor for select * from OrderQueryView where ORDERNUM=:DBTraceNum and SRVMER_CODE=:DBmerID and TRAN_DTM=:DBdate;    EXEC SQL OPEN LineCursor2;
    count = sqlca.sqlerrd[2];
    printf("\nthere are %d records found.", sqlca.sqlerrd[2]);    if(sqlca.sqlcode){
        WkErr = sqlca.sqlcode;
        return WkErr;
    }    while (i<maxRow){
        EXEC SQL FETCH  LineCursor2 into :node;
        if (sqlca.sqlcode) {
            WkErr = sqlca.sqlcode;
            break;
        }
        memcpy(pData+i, &node, sizeof(OrderQuery));
        i++ ;
    }    EXEC SQL CLOSE LineCursor2;    if (i==0) return(WkErr);
    *retRowNum = i;
    return 0;
}    输入相应的DBTraceNum,DBmerID和DBdate之后查询结果返回两条记录,但是实际上数据库里面有10条以上的记录,我把查询语句直接在pl/sql中运行得到的结果也是10条以上的记录,请问各位大虾,这是怎么回事呢?