中国开发网: 论坛: 程序员情感CBD: 贴子 90887
老玉米
我写得好好的样板,不去学。可惜,他是项目经理,不然就打回去让他重写。
#define SQL_SELECT_SEND "SELECT SEND.FILENAME,SEND.USERID,SEND.SRCDIR,SEND.FILESIZE,SEND_DEST.DESTNODEID,SEND_DEST.DESTDIRID,SEND_DEST.STARTTIME,SEND_DEST.FINISHTIME,SEND_DEST.RTNCODE from %s AS SEND,SEND_DEST WHERE SEND.TRANS = SEND_DEST.TRANS AND SEND_DEST.STARTTIME>%s AND SEND_DEST.STARTTIME<%s AND SEND.TASKID=%d"
void LogView_SendQuery(GTPLOG_QUERY_PARAM* param,sqlite3 *db,char *TableName)
{
int ret;
char Sql[1000] = {0};
char sTemp[100] = {0};
sqlite3_stmt *pStmt = NULL;
GTPLOG_PARAM_PRCD *pRcdFirst = NULL;
GTPLOG_PARAM_PRCD *pRcdCurr = NULL;
GTPLOG_PARAM_PRCD *pRcd=NULL;

sprintf(Sql,SQL_SELECT_SEND,TableName,param->StartTime,param->EndTime,param->TaskId);

/* 需要根据传输节点查询 */
if (param->TransNodeId >=0){
sprintf(sTemp," AND SEND_DEST.DESTNODEID =%d",param->TransNodeId);
strcat(Sql,sTemp);
}

/* 需要根据传输特征信息查询 */
if (param->Trans[0] != 0){
sprintf(sTemp," AND SEND.TRANS='%s'",param->Trans);
strcat(Sql,sTemp);
}

TONG_SET_DEBUG();
DebugPrint("LogView_SendQuery:%s",Sql);


ret = sqlite3_prepare(db, Sql, -1, &pStmt, 0);
if( ret!=SQLITE_OK || !pStmt){
TONG_SET_ERROR(10);
ErrorPrint("LogView_SendQuery:Sql Error:%s",Sql);
goto LogView_SendQuery_End;
}
if (sqlite3_column_count(pStmt) != 9){
TONG_SET_ERROR(10);
ErrorPrint("LogView_SendQuery:Sql Error:%s",Sql);
goto LogView_SendQuery_End;
}

ret = sqlite3_step(pStmt);
while(ret==SQLITE_ROW){
pRcd = (GTPLOG_PARAM_PRCD*)malloc(sizeof(GTPLOG_PARAM_PRCD));
MemSetSendRcd(pRcd);

if (pRcdFirst == NULL)
pRcdFirst = pRcd;
if (pRcdCurr != NULL){
pRcdCurr->Next = pRcd;
pRcd->Prior = pRcdCurr;
}
pRcdCurr = pRcd;
pRcdCurr->ParamOut.QueryServiceType = param->QueryServiceType;
strcpy(pRcdCurr->ParamOut.FileName,sqlite3_column_text(pStmt, 0));
pRcdCurr->ParamOut.UserId = atoi(sqlite3_column_text(pStmt, 1));
pRcdCurr->ParamOut.SrcDirId = atoi(sqlite3_column_text(pStmt, 2));
pRcdCurr->ParamOut.Size = atol(sqlite3_column_text(pStmt, 3));
pRcdCurr->ParamOut.DestNodeId = atoi(sqlite3_column_text(pStmt, 4));
pRcdCurr->ParamOut.DestDirId = atoi(sqlite3_column_text(pStmt, 5));
strcpy(pRcdCurr->ParamOut.StartTime,sqlite3_column_text(pStmt, 6));
strcpy(pRcdCurr->ParamOut.EndTime,sqlite3_column_text(pStmt, 7));
pRcdCurr->ParamOut.RtnCode = atoi(sqlite3_column_text(pStmt, 8));

ret = sqlite3_step(pStmt);
}

LogView_SendQuery_End:
sqlite3_reset(pStmt);
sqlite3_finalize(pStmt);
}
民主不同于专制,不需要强加于人。--- 賴斯

大道之行也,天下为公,选贤与能,讲信修睦。故人不独亲其亲,不独子其子,使老有所终,壮有所用,幼有所长,矜、寡、孤、独、废疾者,皆有所养。男有分,女有归。货恶其弃於地也,不必藏於己;力恶其不出於身也,不必为己。是故,谋闭而不兴,盗窃乱贼而不作,故外户而不闭,是谓大同。--《礼运·大同篇》

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录