15,471
社区成员
发帖
与我相关
我的任务
分享
BOOL CZXDBToolDlg::RefreshYjwk(CString strItemNo,CString strName)
{
char szIniDir[MAX_PATH]={0};
sprintf(szIniDir,"%s\\zxdbPostStr.ini",g_szCurDir);
char szNum[64]= {0};//NUM总个数,用于计数.txt文件ID
GetPrivateProfileString("ID","num","1",szNum,64,szIniDir);
lPost = atol(szNum)+1;
GetPrivateProfileString("poststrlast","report_"+strItemNo,"0",szNum,64,szIniDir);
char szAppName[30]={0};
char szKeyName[15]={0};
char szPost[20]={0};
char szItemChildCfg[MAX_PATH]={0};
char szItemChildData[MAX_PATH]={0};
sprintf(szItemChildCfg,"%s\\cfg\\item%s.cfg",g_IniSettings.szDirectory,strItemNo);
sprintf(szItemChildData,"%s\\data",g_IniSettings.szDirectory);
CString strSql,strTmp;
ItemChildInfo szICInfo;
CString strKey,strValue,strMap;
CString strtmpDir,strFlbh;
strSql.Format("select distinct(BGFLBH) FROM BGFLB WHERE substr(BGFLBH,0,2) in ( select BGFLBH FROM BGFLB WHERE BGFLMC = '%s' and rownum =1) and BGFLBH is not null order by BGFLBH",strName);
CADOCommand adoCmd_flbh(g_db_yjwk,strSql,CADOCommand::CmdText);
CADORecordset adoRs_flbh(g_db_yjwk);
if(!adoRs_flbh.Execute(&adoCmd_flbh))
{
strTmp.Format("研究文数据库栏目编号失败,请查看日志");
AppendLog(strTmp);
bLogin=FALSE;
WriteLog(strSql);
return FALSE;
}
if (adoRs_flbh.GetRecordCount()<=0)
{
adoRs_flbh.Close();
Sleep(5);
return TRUE;
}
int x = adoRs_flbh.GetRecordCount();
adoRs_flbh.MoveFirst();
strFlbh.Empty();
for (int j =0;!adoRs_flbh.IsEof();adoRs_flbh.MoveNext(),j++)
{
adoRs_flbh.GetFieldValue("BGFLBH",strValue);
if (j == 0)
strFlbh.Format("'%s'",strValue);
else
{
strTmp.Format("%s",strFlbh);
strFlbh.Format("%s,'%s'",strTmp,strValue);
}
}
adoRs_flbh.Close();
strSql.IsEmpty();
strSql.Format("select BGFJ as attach, to_char(zhxgrq,'YYYY-MM-DD HH:MI:SS') as createdate, "
" fjwjmc as attachname, Bgmc as title, T_BGJBXXB_ID as id from BGJBXXB c "
" where c.BGFLBH in (%s) and rownum <= %d and c.T_BGJBXXB_ID>%s order by c.T_BGJBXXB_ID",strFlbh,g_IniSettings.nRetRows,szNum);
strFlbh.ReleaseBuffer();
CADOCommand adoCmd_yjwk(g_db_yjwk,strSql,CADOCommand::CmdText);
CADORecordset adoRs_yjwk(g_db_yjwk);
if(!adoRs_yjwk.Execute(&adoCmd_yjwk))
{
strTmp.Format("研究文数据库查询失败,请查看日志");
AppendLog(strTmp);
bLogin=FALSE;
WriteLog(strSql);
return FALSE;
}
if (adoRs_yjwk.GetRecordCount()<=0)
{
adoRs_yjwk.Close();
Sleep(5);
return TRUE;
}
adoRs_yjwk.MoveFirst();
for (int i =0;!adoRs_yjwk.IsEof();i++,adoRs_yjwk.MoveNext(),++lPost)
{
CString strDate,strGrupName,strSummary,strCon,strAttach;
DWORD dwTmp=WaitForSingleObject(event_stop,0);
if (dwTmp==WAIT_OBJECT_0)
{
g_update_finish=TRUE;
g_update_stop=TRUE;
EnableCtrl(TRUE);
GetDlgItem(IDCANCEL)->EnableWindow(TRUE);
strValue.Format("%ld",lPost);
WritePrivateProfileString("ID","num",strValue,szIniDir);//写入标志
adoRs_yjwk.Close();
return TRUE;
}
memset(&szICInfo,0,sizeof(ItemChildInfo));
adoRs_yjwk.GetFieldValue("createdate",strValue);
strDate=strValue.Left(10); //取出ymd 如:2007-03-23
strDate.Replace("-","");
strcpy(szICInfo.szIssueYmd,strDate); //IssueYmd
szICInfo.szIssueYmd[8]=0;
strValue.Delete(0,10);
strValue.TrimLeft(); //清楚字符串左边的空格
strDate.Empty();
strDate=strValue.Left(8);
strDate.Replace(":","");
strcpy(szICInfo.szIssueHms,strDate); //IssueHms
szICInfo.szIssueHms[6]=0;
adoRs_yjwk.GetFieldValue("title",strValue);//得到标题
strcpy(szICInfo.szTitle,strValue);
szICInfo.nInfoLevel = 0; //得到资讯等级
adoRs_yjwk.GetFieldValue("id",strValue);//得到咨询编号
strcpy(szNum,strValue); //资讯标志,写入配置文件
WritePrivateProfileString("poststrlast","report_"+strItemNo,szNum,szIniDir);
//刷新作者,叠加作者
CString strNameTmp;
RefushAuthor(strValue,strNameTmp);
printf(szICInfo.szAuthor,"%s",strNameTmp);//刷新作者
if (atoi(szICInfo.szIssueYmd)<lDelDay)
{
lPost --;
continue;
}
int nFindName(0);
CString strNameType,strFileName;
adoRs_yjwk.GetFieldValue("attachname",strValue);//附件名称
strFileName.Format("%s",strValue);
memset(szICInfo.szAttachFile,0,sizeof(szICInfo.szAttachFile));
strcpy(szICInfo.szAttachFile,strValue);
nFindName = strValue.ReverseFind('.');
strNameType.Format("%s",strValue.Mid(nFindName));
szICInfo.nContentID = lPost;
strValue.Format("%ld",lPost);
WritePrivateProfileString("ID","num",strValue,szIniDir);//写入标志
CString strPath;
strTmp.Format("%s",szICInfo.szIssueYmd);
szICInfo.nContentType=0;
strPath.Format("%s\\data\\%s",g_IniSettings.szDirectory,strTmp.Left(6));
if (!PathFileExists(strPath))
{
CreateDirectory(strPath,NULL);
}
strPath.Format("%s\\data\\%s\\%d.txt",g_IniSettings.szDirectory,strTmp.Left(6),lPost);
if (!RefushContent(szNum,strPath))
{
strTmp.Format("内容查询失败");
continue;
}
strTmp=szICInfo.szIssueYmd;
char* lpAttach;
CString strAttValue;
ADOFIELDINFO* retFieldInfoAttach=NULL;
retFieldInfoAttach=new ADOFIELDINFO;
_variant_t vAttach;
adoRs_yjwk.GetFieldInfo("attach",retFieldInfoAttach);
adoRs_yjwk.GetFieldValue("attach",vAttach);
if (vAttach.vt==(VT_ARRAY|VT_UI1))
{
lpAttach = new char[retFieldInfoAttach->m_lSize+1];
if (lpAttach!=NULL)
{
char * lpTmBuf = NULL;
SafeArrayAccessData(vAttach.parray,(void**)&lpTmBuf);
memcpy(lpAttach,lpTmBuf,retFieldInfoAttach->m_lSize);
SafeArrayUnaccessData(vAttach.parray);
strAttValue.Format("%s\\attach\\%s",g_IniSettings.szDirectory,strTmp.Left(6));
if (!PathFileExists(strAttValue))
{
CreateDirectory(strAttValue,NULL);
}
strAttValue.Format("%s\\attach\\%s\\%ld%s",g_IniSettings.szDirectory,strTmp.Left(6),lPost,strNameType);
WriteBinary((LPCSTR)strAttValue,lpAttach,retFieldInfoAttach->m_lSize);
}
delete []lpAttach;
}
delete retFieldInfoAttach;
strAttValue.Format("本文附件:<a href=\"http://attach/%s/%ld%s\">%s</a>",strTmp.Left(6),lPost,strNameType,strFileName);
strPath.Replace(".txt","");
WriteConToFile(strAttValue,strPath,0);
szICInfo.nContentSize=strAttValue.GetLength();
strKey.Format("%d",szICInfo.nContentID);
if (mapString.Lookup(strKey,strMap))
{
WriteTitleIni(szItemChildCfg,szICInfo,strMap.GetBuffer(30));
strMap.ReleaseBuffer();
}
else
{
WriteTitleIni(szItemChildCfg,szICInfo);
}
Sleep(5);
}
adoRs_yjwk.Close();
return true;
}
LPCTSTR GetErrTypeByErrCode(DWORD dwErrCode)
{
LPCTSTR pszErrType = _T("未知的异常类型");
switch (dwErrCode)
{
case EXCEPTION_ACCESS_VIOLATION :
{
pszErrType = _T("EXCEPTION_ACCESS_VIOLATION");
break;
}
case EXCEPTION_INT_DIVIDE_BY_ZERO:
{
pszErrType = _T("EXCEPTION_INT_DIVIDE_BY_ZERO");
break;
}
case EXCEPTION_DATATYPE_MISALIGNMENT:
{
pszErrType = _T("EXCEPTION_DATATYPE_MISALIGNMENT");
break;
}
case EXCEPTION_BREAKPOINT:
{
pszErrType = _T("EXCEPTION_BREAKPOINT");
break;
}
case EXCEPTION_SINGLE_STEP:
{
pszErrType = _T("EXCEPTION_SINGLE_STEP");
break;
}
case EXCEPTION_ARRAY_BOUNDS_EXCEEDED:
{
pszErrType = _T("EXCEPTION_ARRAY_BOUNDS_EXCEEDED");
break;
}
case EXCEPTION_FLT_DENORMAL_OPERAND:
{
pszErrType = _T("EXCEPTION_FLT_DENORMAL_OPERAND");
break;
}
case EXCEPTION_FLT_INEXACT_RESULT:
{
pszErrType = _T("EXCEPTION_FLT_INEXACT_RESULT");
break;
}
case EXCEPTION_FLT_INVALID_OPERATION:
{
pszErrType = _T("EXCEPTION_FLT_INVALID_OPERATION");
break;
}
case EXCEPTION_FLT_OVERFLOW:
{
pszErrType = _T("EXCEPTION_FLT_OVERFLOW");
break;
}
case EXCEPTION_FLT_STACK_CHECK:
{
pszErrType = _T("EXCEPTION_FLT_STACK_CHECK");
break;
}
case EXCEPTION_FLT_UNDERFLOW:
{
pszErrType = _T("EXCEPTION_FLT_UNDERFLOW");
break;
}
case EXCEPTION_INT_OVERFLOW:
{
pszErrType = _T("EXCEPTION_INT_OVERFLOW");
break;
}
case EXCEPTION_PRIV_INSTRUCTION:
{
pszErrType = _T("EXCEPTION_PRIV_INSTRUCTION");
break;
}
case EXCEPTION_IN_PAGE_ERROR:
{
pszErrType = _T("EXCEPTION_IN_PAGE_ERROR");
break;
}
case EXCEPTION_ILLEGAL_INSTRUCTION:
{
pszErrType = _T("EXCEPTION_ILLEGAL_INSTRUCTION");
break;
}
case EXCEPTION_NONCONTINUABLE_EXCEPTION:
{
pszErrType = _T("EXCEPTION_NONCONTINUABLE_EXCEPTION");
break;
}
case EXCEPTION_STACK_OVERFLOW:
{
pszErrType = _T("EXCEPTION_STACK_OVERFLOW");
break;
}
case EXCEPTION_INVALID_DISPOSITION:
{
pszErrType = _T("EXCEPTION_INVALID_DISPOSITION");
break;
}
case EXCEPTION_GUARD_PAGE:
{
pszErrType = _T("EXCEPTION_GUARD_PAGE");
break;
}
case EXCEPTION_INVALID_HANDLE:
{
pszErrType = _T("EXCEPTION_INVALID_HANDLE");
break;
}
}
return pszErrType;
}