本文整理汇总了C++中TaskPtr::output方法的典型用法代码示例。如果您正苦于以下问题:C++ TaskPtr::output方法的具体用法?C++ TaskPtr::output怎么用?C++ TaskPtr::output使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TaskPtr
的用法示例。
在下文中一共展示了TaskPtr::output方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: writeToDB
bool DBManager::writeToDB(TaskPtr pTask)
{
assert(pTask);
OJChar_t buffer[MaxBufferSize];
const TaskInputData & input = pTask->input();
const TaskOutputData & output = pTask->output();
//更新结果
OJSprintf(buffer, Statement::UpdateSolutionResult5.c_str(), output.Result, output.RunTime,
output.RunMemory, output.PassRate, input.SolutionID);
if(!sqlDriver_->query(buffer))
{
return false;
}
//更新用户提交数量
OJSprintf(buffer, Statement::UpdateUserSubmit2.c_str(),
input.UserName.c_str(), input.UserName.c_str());
if(!sqlDriver_->query(buffer))
{
return false;
}
//用户已解决的。不管答案是否正确都执行此操作,防止是重判,而导致信息不及时刷新。
OJSprintf(buffer, Statement::UpdateUserSolved3.c_str(),
input.UserName.c_str(), JudgeCode::Accept, input.UserName.c_str());
if(!sqlDriver_->query(buffer))
{
return false;
}
//题目提交数量
OJSprintf(buffer, Statement::UpdateProblemSubmit2.c_str(), input.ProblemID, input.ProblemID);
if(!sqlDriver_->query(buffer))
{
return false;
}
//题目通过的数量
OJSprintf(buffer, Statement::UpdateProblemAccept3.c_str(),
input.ProblemID, JudgeCode::Accept, input.ProblemID);
if(!sqlDriver_->query(buffer))
{
return false;
}
//如果未通过,写错误原因
if(output.Result == JudgeCode::CompileError)//如果编译错误
{
OJSprintf(buffer, Statement::DeleteCompile1.c_str(), input.SolutionID);
if(!sqlDriver_->query(buffer))
{
return false;
}
OJString compileError = output.CompileError;
sqlDriver_->escapeString(compileError);
OJSprintf(buffer, Statement::InsertCompile2.c_str(),
input.SolutionID, compileError.c_str());
if(!sqlDriver_->query(buffer))
{
return false;
}
}
else if(output.Result == JudgeCode::RuntimeError)//运行时错误
{
OJSprintf(buffer, Statement::DeleteRuntime1.c_str(), input.SolutionID);
if(!sqlDriver_->query(buffer))
{
return false;
}
OJString runtimeError = output.RunTimeError;
sqlDriver_->escapeString(runtimeError);
OJSprintf(buffer, Statement::InsertRuntime2.c_str(),
input.SolutionID, runtimeError.c_str());
if(!sqlDriver_->query(buffer))
{
return false;
}
}
return true;
}