VS2008mfc连接ORACLE数据库插入数据问题

hawk_shadow hawk_shadow 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
如题,我连接上oracle数据库了,然后使用m_pRecordset->AddNew(); 新建一条记录进行插入成功,使用(theApp.m_pConnection)->Execute((_bstr_t)StrSQL3, NULL, adCmdText);却一直没有成功,其间没有报错,正常结束程序,但是数据库记录值没有增加。

下面是代码:
首先在程序框架类里连接oracle服务器

try//连接数据库
{
m_pConnection.CreateInstance(__uuidof(Connection));
_bstr_t strConnect="Provider=OraOLEDB.Oracle.1;User ID='system';Password='tiger';Data Source=orcl;Persist Security Info=False;";
m_pConnection->Open(strConnect,"system","tiger",adModeUnknown);
}
catch(_com_error e)
{
AfxMessageBox(TEXT("数据库连接出错!"));
AfxMessageBox(e.Description());
exit(-1);
}

下面是插入数据库的代码,也就是有问题的代码段

m_pRecordset.CreateInstance("ADODB.Recordset");//创建Recordset实例
CString strSQL="select * from VISIBILITY"; //连接VISIBILITY表
try
{
m_pRecordset->Open((_variant_t)strSQL,(IDispatch*)theApp.m_pConnection,adOpenDynamic,adLockOptimistic,adCmdText);
} //m_pConnection我在上一组代码中已经连接上oracle服务器了
catch (_com_error* e)
{
AfxMessageBox(e->ErrorMessage());
}
CString StrSQL3;
CString Time="2018/12/20 19:00";
CString visib="1.3";
StrSQL3.Format("INSERT INTO VISIBILITY(采样时间,能见度) VALUES(#%s#,'%s')","2018/12/20 18:00","3.0");
//我自己写死了一个记录准备插入
try{
m_pRecordset->AddNew(); //新建一条记录
m_pRecordset->PutCollect("采样时间",_variant_t(Time)); //修改每个字段值
m_pRecordset->PutCollect("能见度",_variant_t(visib)); //方法一。用AddNew然后加Update,可以成功插入记录


//(theApp.m_pConnection)->Execute((_bstr_t)StrSQL3, NULL, adCmdText); //方法二。直接用Execute插入,无BUG,却没有在数据库中增加数据
}
catch(_com_error e)
{
MessageBox(e.Description());
return;
}
m_pRecordset->Update(); //更新至数据库

下图是方法一的增加记录的效果。

删除新增记录,然后注释方法一,取消注释方法二,也就是使用Execute插入数据,无效果。

我仔细看了我的StrSQL3中,SQL语句没有问题,请问前辈们这个是什么问题。编译环境VS2008,mfc框架,x64平台
...全文

相关推荐

评论 5
收藏 已收藏
分享
返回顶部
hawk_shadow
数据库 4,017 成员 39,805 内容