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

hawk_shadow 2018-12-20 06:52:51
如题,我连接上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平台
...全文
172 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Leo头很大 2019-08-05
  • 打赏
  • 举报
回复
楼主你好,我最近在做一个在VC6中mfc 通过ado连接Oracle的工作。一直卡在连接数据库的阶段,代码以及连接字符串试过各种格式,现怀疑是系统环境原因,楼主能不能介绍下自己工程的配置环境?
hawk_shadow 2018-12-25
  • 打赏
  • 举报
回复
引用 1 楼 卖水果的net 的回复:
要不要给你移动到 VC 区?
捂脸。。。难道这个不是oracle插入语句Execute这种的问题吗?
hawk_shadow 2018-12-25
  • 打赏
  • 举报
回复
引用 3 楼 yaiger 的回复:
你的代码中除了INSERT INTO VISIBILITY(采样时间,能见度) VALUES(#%s#,'%s')这句,其它都不是PL/SQL,没法帮啊
好吧,谢谢帮忙。刚入门的菜鸟确实傻傻分不清楚,我自己移动换区了,再次谢谢各位。
yaiger 2018-12-25
  • 打赏
  • 举报
回复
你的代码中除了INSERT INTO VISIBILITY(采样时间,能见度) VALUES(#%s#,'%s')这句,其它都不是PL/SQL,没法帮啊
卖水果的net 2018-12-24
  • 打赏
  • 举报
回复
要不要给你移动到 VC 区?

4,018

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧