bt=(_bstr_t)" select value from PARA_TYPE where id=2 and value='"+(_bstr_t)strtoday+(_bstr_t)"' ";
try
{
hr=rs.CreateInstance (__uuidof(Recordset));
hr=rs->Open (bt,m_pConnect.GetInterfacePtr (),adOpenDynamic,adLockOptimistic,adCmdText);
}
catch(_com_error e)
{
strErrMsg.Format("20120626读取每日处理的标志时操作失败!\r\n错误信息:%s",e.ErrorMessage());
LogEvent(strErrMsg);
}
if(!rs->EndOfFile)
{ //LogEvent("测试66");
LogEvent(bt);
private_int_flag=0;
return;
}
问题是: if(!rs->EndOfFile) 如果取到值,就返回,现在是这个地方好像判断出了问题,明明没值,也返回了,帮忙分析一下,连接的是oracle数据库,比较蹊跷,我以前这样写都是正常的,不胜感激
try
{
hr=rs.CreateInstance (__uuidof(Recordset));
hr=rs->Open (bt,m_pConnect.GetInterfacePtr (),adOpenDynamic,adLockOptimistic,adCmdText);
}
catch(_com_error e)
{
strErrMsg.Format("20120626读取每日处理的标志时操作失败!\r\n错误信息:%s",e.ErrorMessage());
LogEvent(strErrMsg);
}
if(!rs->EndOfFile)
{ //LogEvent("测试66");
LogEvent(bt);
private_int_flag=0;
return;
}
问题是: if(!rs->EndOfFile) 如果取到值,就返回,现在是这个地方好像判断出了问题,明明没值,也返回了,帮忙分析一下,连接的是oracle数据库,比较蹊跷,我以前这样写都是正常的,不胜感激
解决方案 »
- 如何只更新组合框。。。
- 为什么IOleInPlaceObjectWindowless控制鼠标消息老是闪烁
- 一有点难度的鸟问题!!! 搞了我半天。。。
- 关于 "比赛现场打分" 系统的设计方案
- 为什么GetModuleHandle("f:\\temp\\bin\\bin\\webPicker.dll")总是返回为0
- 我的vc无法显示类的成员了,但是我在option里都已经选上了,怎么回事啊?
- 关于构造函数,简单!!!
- 关于修改导入表实现dll注入的问题
- ScrollInfo的nPage是什么意思,为什么系统自动改变___已解决。分享
- 请问有没有公认的用VC设计VXD的工具或方法
- 跪问MSDN安装问题:本地磁盘,不能如预期那样包含关于:“MSDN VS 6.0 Local”的文件。请更新位置
- 无法继承消息!!
///+++++++++++ora162每月需要处理的存储过程++++++++++//
void CServiceModule::web_deal_Month()
{//下面首先判断是否发生了互斥的现象
if (private_int_flag==1)
{
//LogEvent("A Web_Deal_Ora162_Month周期间隔较小,导致前一个周期内的任务未完成");
private_int_flag=0;
return;
}
///////////////////////////////////////////////////////start
CTime now_time;
now_time=CTime::GetCurrentTime();
CString strTemp=now_time.Format("%H%M");
//LogEvent(strTime);
long l = atol(strTemp);
if (l<100 ) //沿用原来的模式当时这儿已经不必让判断生效了 2006/08/28
{
//private_int_flag=0;
//return;
}
CTime curr_time;
CString strtoday;
curr_time=CTime::GetCurrentTime();
strtoday=curr_time.Format("%Y%m%d");
////////////////////////////////////////////////////////////////end
//LogEvent("测fucking 1");
HRESULT hr;
_bstr_t bt;
_ConnectionPtr m_pConnect;
BOOL m_bConnected=FALSE;
_RecordsetPtr rs;
CString strErrMsg;
bt=(_bstr_t)" Provider=MSDAORA;Data Source=dta;User ID=xx; Password=xx";
CoInitialize(NULL);
try
{
hr=m_pConnect.CreateInstance(__uuidof(Connection));
ASSERT(SUCCEEDED(hr));
hr=m_pConnect->Open (bt,_bstr_t(""),_bstr_t(""),adModeUnknown);
ASSERT(SUCCEEDED(hr));
m_bConnected=TRUE;
}
catch ( _com_error e )
{
long errorcount = m_pConnect->GetErrors()->GetCount();
_bstr_t add;
CString ErrorMessage,temp;
for (short i=0;i<errorcount;i++)
{
add = m_pConnect->GetErrors()->GetItem(_variant_t((short)i))->GetDescription();
temp = (char *)add;
ErrorMessage += temp;
}
LogEvent("20120628 Web_Deal_Month初始连接数据库出现错误:"+ErrorMessage);
Beep(60,120);Sleep(2000);Beep(90,240);Sleep(2000);Beep(120,1000);
private_int_flag=0;
return;
}
m_pConnect->PutCommandTimeout(0);
//LogEvent("测fucking 2");
//判断是否存在需要处理的任务
CTime now_ymdhm;
CString str_now_ymdhm;
CString strid;
strid="0";
now_ymdhm=CTime::GetCurrentTime();
str_now_ymdhm=now_ymdhm.Format("%Y%m%d%H%M");
bt=(_bstr_t)" testing ";
bt=(_bstr_t)" select min(ID) ID from PARA_MONTH_DEAL_PLAN where deal_flag='N' and DEAL_DATE<='"+(_bstr_t)str_now_ymdhm+(_bstr_t)"' " ;
try
{
hr=rs.CreateInstance (__uuidof(Recordset));
hr=rs->Open (bt,m_pConnect.GetInterfacePtr (),adOpenDynamic,adLockOptimistic,adCmdText);
}
catch(_com_error e)
{
strErrMsg.Format("20120629 Web_Deal_Month执行数据库操作失败!\r\n错误信息:%s",e.ErrorMessage());
LogEvent(strErrMsg);
}
if(!rs->EndOfFile)
{ LogEvent(bt);
_variant_t vstr_id;
vstr_id=rs->GetCollect(_variant_t((long)0));
strid=(LPCTSTR)(_bstr_t)vstr_id;
}
//如果存在需要处理的计划则继续往下走
if (strid=="0")
{LogEvent("测fucking 4");
private_int_flag=0;
return;
}
//LogEvent("测fucking 5");
//首先将此次处理的计划标志改过来
bt=(_bstr_t)" update PARA_MONTH_DEAL_PLAN set deal_flag='I' where id="+(_bstr_t)strid;
try
{
hr=rs.CreateInstance (__uuidof(Recordset));
hr=rs->Open (bt,m_pConnect.GetInterfacePtr (),adOpenDynamic,adLockOptimistic,adCmdText);
}
catch(_com_error e)
{
strErrMsg.Format("20120630 pdata月统计执行数据库操作失败!\r\n错误信息:%s",e.ErrorMessage());
LogEvent(strErrMsg);
}
//取出本次处理的参数,以便往存储过程中输入参数
_variant_t vDEAL_DATE,vMONTH_FLAG,vBILLING_CYCLE_ID,vBAK_FLAG,vFLAG;
bt=(_bstr_t)" select DEAL_DATE, MONTH_FLAG, BILLING_CYCLE_ID, BAK_FLAG, FLAG from PARA_MONTH_DEAL_PLAN where id="+(_bstr_t)strid;
try
{
hr=rs.CreateInstance (__uuidof(Recordset));
hr=rs->Open (bt,m_pConnect.GetInterfacePtr (),adOpenDynamic,adLockOptimistic,adCmdText);
}
catch(_com_error e)
{
strErrMsg.Format("E Web_Deal_Ora162_Month执行数据库操作失败!\r\n错误信息:%s",e.ErrorMessage());
LogEvent(strErrMsg);
}
if(!rs->EndOfFile)
{
vDEAL_DATE=rs->GetCollect(_variant_t((long)0));
vMONTH_FLAG=rs->GetCollect(_variant_t((long)1));
vBILLING_CYCLE_ID=rs->GetCollect(_variant_t((long)2));
vBAK_FLAG=rs->GetCollect(_variant_t((long)3));
vFLAG=rs->GetCollect(_variant_t((long)4));
}
//执行存储过程ora162 PROC_DAILY_DEAL_FATHER
bt=(_bstr_t)" begin PROC_MONTH_DEAL_FATHER ('"+(LPCTSTR)(_bstr_t)vMONTH_FLAG+"','"+(LPCTSTR)(_bstr_t)vBILLING_CYCLE_ID+"','"+(LPCTSTR)(_bstr_t)vBAK_FLAG+"',"+(LPCTSTR)(_bstr_t)vFLAG+(_bstr_t)");end; ";
LogEvent(bt);
try
{
hr=rs.CreateInstance (__uuidof(Recordset));
hr=rs->Open (bt,m_pConnect.GetInterfacePtr (),adOpenDynamic,adLockOptimistic,adCmdText);
}
catch(_com_error e)
{
strErrMsg.Format("20120701 pdata月统计执行数据库操作失败!\r\n错误信息:%s",e.ErrorMessage());
LogEvent(strErrMsg);
}
//首先将此次处理的计划标志改过来
bt=(_bstr_t)" update PARA_MONTH_DEAL_PLAN set deal_flag='Y' where id="+(_bstr_t)strid;
try
{
hr=rs.CreateInstance (__uuidof(Recordset));
hr=rs->Open (bt,m_pConnect.GetInterfacePtr (),adOpenDynamic,adLockOptimistic,adCmdText);
}
catch(_com_error e)
{
strErrMsg.Format("20120702 pdata月统计执行数据库操作失败!\r\n错误信息:%s",e.ErrorMessage());
LogEvent(strErrMsg);
}
/////第二步:开始数据库dts方式的导入 LogEvent("20120703 pdata月数据处理结束");
//本次处理数据结束
private_int_flag=0;
return;
}
上面就是所有的代码,就是老进入到这个地方:
if(!rs->EndOfFile)
{ LogEvent(bt);