函数源码定义如下://参数值对入库插入临时表
bool CDB::InsertParamValue(const LPNS_DBR pDbData)//参数数据入库
{
if(!IsOpen())
{
WriteLine("未连接数据库,不能保存参数数据");
return false;
}
CString sql;
TRY
{
m_pDB->BeginTrans();
LPPARAMVALUE p=pDbData->pParamValue;
for(int i=0;i<pDbData->paraCount;i++)
{
sql.Format("insert into cl_devicepara_temp(deviceid,qn,cn,oldqn,para_name,para_value)values('%s','%s','%s','%s','%s','%s')",
pDbData->MN,pDbData->QN,pDbData->CN,pDbData->OLDQN,p->paraName,p->paraValue);
m_pDB->ExecuteSQL(sql);
WriteLine(sql);
p++;
Sleep(1000);
}
m_pDB->CommitTrans();
return true;
}
CATCH(CDBException, dbe)
{
CString s="过程:InsertNsDBR插入参数信息到数据库出现异常:"+dbe->m_strError;
WriteLine(s);
WriteLine("对应SQL语句为:\n"+sql);
if((m_nErrorLevel=GetDBExceptionErrorLevel(dbe))==ERROR_FATAL)
{
s="该错误为致命的错误,数据库关闭";
WriteLine(s);
TRACE(s+"\n");
this->CloseDB();
}
return false;
}
END_CATCH
}数据库是ORACLE9I,操作系统:windows2003
变量:m_pDB是一个MFC ODBC的数据库类CDatabase
现象:执行sql语句没有报告错误、异常,设置了断点,单步调试时执行SQL语句能成功,但是没有设置断点时运行就是不行,数据库表里怎么也没有插入的记录,一般每次插入的记录数量是3-5条记录,一个月也不会执行几次这个函数的。
这个现象请教大家,可能什么原因引起的?
bool CDB::InsertParamValue(const LPNS_DBR pDbData)//参数数据入库
{
if(!IsOpen())
{
WriteLine("未连接数据库,不能保存参数数据");
return false;
}
CString sql;
TRY
{
m_pDB->BeginTrans();
LPPARAMVALUE p=pDbData->pParamValue;
for(int i=0;i<pDbData->paraCount;i++)
{
sql.Format("insert into cl_devicepara_temp(deviceid,qn,cn,oldqn,para_name,para_value)values('%s','%s','%s','%s','%s','%s')",
pDbData->MN,pDbData->QN,pDbData->CN,pDbData->OLDQN,p->paraName,p->paraValue);
m_pDB->ExecuteSQL(sql);
WriteLine(sql);
p++;
Sleep(1000);
}
m_pDB->CommitTrans();
return true;
}
CATCH(CDBException, dbe)
{
CString s="过程:InsertNsDBR插入参数信息到数据库出现异常:"+dbe->m_strError;
WriteLine(s);
WriteLine("对应SQL语句为:\n"+sql);
if((m_nErrorLevel=GetDBExceptionErrorLevel(dbe))==ERROR_FATAL)
{
s="该错误为致命的错误,数据库关闭";
WriteLine(s);
TRACE(s+"\n");
this->CloseDB();
}
return false;
}
END_CATCH
}数据库是ORACLE9I,操作系统:windows2003
变量:m_pDB是一个MFC ODBC的数据库类CDatabase
现象:执行sql语句没有报告错误、异常,设置了断点,单步调试时执行SQL语句能成功,但是没有设置断点时运行就是不行,数据库表里怎么也没有插入的记录,一般每次插入的记录数量是3-5条记录,一个月也不会执行几次这个函数的。
这个现象请教大家,可能什么原因引起的?
解决方案 »
- 帮忙下载pudn上的资料,谢谢!
- vc编程什么时候必用LocalAlloc()函数?
- insock的非同步有5种I/O模型,学习中是否必须都要掌握?
- 灰度图像用SetPixel可以正常显示,StretchDIBits画出的图像倾斜
- 高手帮忙,急
- 在线程中发送消息的问题。
- 在多文档中,怎么不能用GetActiveView来获得活动视图?
- 怎么在对话框a中点击delete按钮,重新load b对话框中的 TreeCtrl?
- 基础问题
- 为什么dialog.domodal()有时返回-1,重新new project 再将原有的程序拷入,又OK呢?
- mfc classwizard 使用不明处
- 怎样在dialog上显示个动画?
即:sql.Format("insert into cl_devicepara_temp(deviceid,qn,cn,oldqn,para_name,para_value)values('%s','%s','%s','%s','%s','%s');",
pDbData->MN,pDbData->QN,pDbData->CN,pDbData->OLDQN,p->paraName,p->paraValue);