代码如下:
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条以上的记录,请问各位大虾,这是怎么回事呢?
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条以上的记录,请问各位大虾,这是怎么回事呢?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货