try{
CADORecordset pRst(&gADODB);这个库是carlos antollini 写的一个cpp
CString str;
if(strID.GetLength() )
{
str.Format("select * from WYS.MSG_MAIL_TAB where msg_time > %s and msg_configid = %s",strTime,strID);
}
else
{
str.Format("select * from WYS.MSG_MAIL_TAB where msg_time > %s",strTime );
}
if(strMail.GetLength())
{
CString strtemp = " and (msg_frombox like '\%";
strtemp +=strMail;
strtemp +="\%' or msg_tobox like '\%";
strtemp += strMail;
strtemp +="\%')";
str += strtemp;
}
//str.Format("select * from WYS.MSG_MAIL_TAB where msg_uniqueid = 1854983");
pRst.Open(str.GetBuffer(str.GetLength()));
//int i = pRst.GetRecordCount();
pRst.MoveFirst(); //在这里出现错误。 DWORD dwID,dwOffset,dwLen;
CString strFileName;
CString LastFileName ="";
//FileInfo fileinfo;
//CString strSourceDir = "e:\\";
HANDLE hSourceFile=0, hDestFile=0;
while(!pRst.IsEOF())
{
pRst.GetFieldValue("msg_uniqueid",dwID);
pRst.GetFieldValue("hf_name",strFileName);
pRst.GetFieldValue("hf_msgoffset",dwOffset);
pRst.GetFieldValue("msg_Length",dwLen);
if(strFileName != LastFileName)
{
LastFileName = strFileName;
if(hSourceFile && (hSourceFile!=INVALID_HANDLE_VALUE))
{
CloseHandle(hSourceFile);
hSourceFile = 0;
hSourceFile = Openfile(false, strDataDir + strFileName);
if(hSourceFile == INVALID_HANDLE_VALUE)
{
//AfxMessageBox(strSourceDir + strFileName);
continue;
}
}
}
if(!hSourceFile || (hSourceFile==INVALID_HANDLE_VALUE))
{
hSourceFile = Openfile(false, strDataDir + strFileName);
if(hSourceFile == INVALID_HANDLE_VALUE)
{
AfxMessageBox(strDataDir + strFileName);
continue;
}
}
CString strPath;
strPath.Format("%s\\%u.eml",strDir, dwID);
hDestFile = Openfile(true, strPath);
WriteEmlFile(hSourceFile,hDestFile,dwOffset,dwLen);
pRst.MoveNext();
}
pRst.Close();
}
catch(_com_error& e)
{
CString str;
str.Format("错误信息:%s",e.ErrorMessage());
//AfxMessageBox(str);
return ;
}有时候出错,有时候不出错,我在检查sql语句是正确的。
CADORecordset pRst(&gADODB);这个库是carlos antollini 写的一个cpp
CString str;
if(strID.GetLength() )
{
str.Format("select * from WYS.MSG_MAIL_TAB where msg_time > %s and msg_configid = %s",strTime,strID);
}
else
{
str.Format("select * from WYS.MSG_MAIL_TAB where msg_time > %s",strTime );
}
if(strMail.GetLength())
{
CString strtemp = " and (msg_frombox like '\%";
strtemp +=strMail;
strtemp +="\%' or msg_tobox like '\%";
strtemp += strMail;
strtemp +="\%')";
str += strtemp;
}
//str.Format("select * from WYS.MSG_MAIL_TAB where msg_uniqueid = 1854983");
pRst.Open(str.GetBuffer(str.GetLength()));
//int i = pRst.GetRecordCount();
pRst.MoveFirst(); //在这里出现错误。 DWORD dwID,dwOffset,dwLen;
CString strFileName;
CString LastFileName ="";
//FileInfo fileinfo;
//CString strSourceDir = "e:\\";
HANDLE hSourceFile=0, hDestFile=0;
while(!pRst.IsEOF())
{
pRst.GetFieldValue("msg_uniqueid",dwID);
pRst.GetFieldValue("hf_name",strFileName);
pRst.GetFieldValue("hf_msgoffset",dwOffset);
pRst.GetFieldValue("msg_Length",dwLen);
if(strFileName != LastFileName)
{
LastFileName = strFileName;
if(hSourceFile && (hSourceFile!=INVALID_HANDLE_VALUE))
{
CloseHandle(hSourceFile);
hSourceFile = 0;
hSourceFile = Openfile(false, strDataDir + strFileName);
if(hSourceFile == INVALID_HANDLE_VALUE)
{
//AfxMessageBox(strSourceDir + strFileName);
continue;
}
}
}
if(!hSourceFile || (hSourceFile==INVALID_HANDLE_VALUE))
{
hSourceFile = Openfile(false, strDataDir + strFileName);
if(hSourceFile == INVALID_HANDLE_VALUE)
{
AfxMessageBox(strDataDir + strFileName);
continue;
}
}
CString strPath;
strPath.Format("%s\\%u.eml",strDir, dwID);
hDestFile = Openfile(true, strPath);
WriteEmlFile(hSourceFile,hDestFile,dwOffset,dwLen);
pRst.MoveNext();
}
pRst.Close();
}
catch(_com_error& e)
{
CString str;
str.Format("错误信息:%s",e.ErrorMessage());
//AfxMessageBox(str);
return ;
}有时候出错,有时候不出错,我在检查sql语句是正确的。
解决方案 »
- SQL文~求高手来~~~~~~~~~~~~~~~~~~~~~~
- 求高手修改这个字段??
- 求大家帮个忙,我要学习oracle
- 求 一windows下 rman 自动增量备份的脚本
- [高分]连接Oracle时,总是自动执行下面的语句:SELECT PARAMETER, VALUE FROM SYS.NLS_DATABASE_PARAMETERS ...
- 求助SQL语句,大约要用分析函数吧,不会啊。。。
- 建立表空间前如何判断是否存在同名的表空间,存在该怎么处理,在线等
- 请教存储过程 急!!!
- 有没有关于sql*plus命令的网站?(在线守侯)
- 紧急问题,关于数据库链路的连接,在线等待急急急急急!@!!!!
- 请教一个oracle调用webservices的问题
- CASE WHEN
奇怪了,数据源虽然很大,但是我的查询结果数据量不是很大啊,我用其他条件查出更多的数据也不会报错啊。
pRst.Open(str.GetBuffer(str.GetLength()));