本文整理汇总了C++中CInterface::SMT_UpDealRecord方法的典型用法代码示例。如果您正苦于以下问题:C++ CInterface::SMT_UpDealRecord方法的具体用法?C++ CInterface::SMT_UpDealRecord怎么用?C++ CInterface::SMT_UpDealRecord使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CInterface
的用法示例。
在下文中一共展示了CInterface::SMT_UpDealRecord方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SMT_UpBeforeFile
/*=================================================================
* Function ID : SMT_UpBeforeFile
* Input : void
* Output : void
* Author :
* Date : 2006 2
* Return : void
* Description : 前置启动将当天前的文件的记录全部上传
* Notice :
*=================================================================*/
bool CSmartCommunicationDlg::SMT_UpBeforeFile(XDHANDLE nHandler)
{
int nTimeOut=20000;
int nErrCode=0;
char sErrMsg[256];
char sTempPath[256];
char sBakPath[256];
char sData[256],sMsg[1024];
FILE *fpt=NULL;
FileBase mfile;
vector<CString> VFileName;
vector<CString> VFileContent; //文件内容
CString sFileContent;
memset(sMsg, 0,sizeof sMsg);
memset(sData, 0,sizeof sData );
memset(sErrMsg, 0,sizeof sErrMsg);
memset(sTempPath,0,sizeof sTempPath);
memset(sBakPath, 0,sizeof sBakPath);
VFileName.clear(); //清除所有文件名
VFileContent.clear(); //保存文件内容
SMT_GetAllFileName(VFileName); //获取不是当天产生的文件
if( VFileName.empty() ) return false;
for( int i=0; i<VFileName.size(); i++ ) //将还未上传的文件记录全部上传
{
memset(sTempPath,0,sizeof sTempPath);
memset(sBakPath, 0,sizeof sBakPath);
strcpy(sTempPath,m_DealPath);
strcat(sTempPath,"\\");
strcat(sTempPath,VFileName[i].GetBuffer(100));
strcpy(sBakPath,m_DealPath);
strcat(sBakPath,"\\Bak\\Bak_");
strcat(sBakPath,VFileName[i].GetBuffer(100));
//remove(sBakPath);
if( (fpt=mfile.OpenFile(sTempPath,"r"))==NULL)
{
continue;
}
//得到该文件的所有记录
while( mfile.FileEOF(fpt)==0)
{
memset(sData,0,sizeof sData);
if( fgets(sData,128,fpt) !=NULL )
{
if( !g_StartFlag )
{
mfile.CloseFile(fpt);
return true;
}
sFileContent=sData;
VFileContent.push_back(sFileContent);
}
}
mfile.CloseFile(fpt);
int nCount=VFileContent.size();
bool bStatus=false;
//上传该文件的记录
for( int j=0; j<nCount; j++ )
{
bStatus=false;
for( int k=0; i<10; k++ ) //一条记录如果上传10次还不成功,则全部重新上传
{
if( !g_StartFlag )
{
VFileContent.clear();
return true; //收到系统退出命令
}
memset(sData,0,sizeof sData);
strcpy(sData,VFileContent[j].GetBuffer(100));
if( !g_CInterface.SMT_UpDealRecord(nHandler,sData,nTimeOut,&nErrCode,sErrMsg) )
{
sprintf(sMsg,"上传文件名%s的第%ld条记录到金仕达失败(%ld,%s)",VFileName[i].GetBuffer(100),j+1,nErrCode,sErrMsg);
if( g_IniFilePara.bWriteDebugLog ) WriteLog(sErrMsg);
if( g_IniFilePara.bWriteDebugLog ) AddString(sMsg);
Sleep(5000);
continue;
}
bStatus=true;
break;
}
if( !bStatus )
{
WriteLog(sErrMsg);
VFileContent.clear();
Sleep(1000);
return false;
}
Sleep(50);
//.........这里部分代码省略.........