如题,首先是用ADO的方式向Access插入数据,如下代码
m_pRecordset->AddNew();
m_pRecordset->PutCollect("Name", _variant_t(m_Name));
m_pRecordset->PutCollect("Age", _variant_t(m_Age));
m_pRecordset->Update();
是成功的;
但是改为向SQL插入数据 用上面同样代码却报错了,不明白是为什么 。
m_pRecordset->AddNew();
m_pRecordset->PutCollect("Name", _variant_t(m_Name));
m_pRecordset->PutCollect("Age", _variant_t(m_Age));
m_pRecordset->Update();
是成功的;
但是改为向SQL插入数据 用上面同样代码却报错了,不明白是为什么 。
解决方案 »
- OpenGL中启用BLEND对锯齿的控制
- Debug assertion failed wincore.cpp line:639 求教!
- BoundsChecker for vc2005 在哪有?
- 100分求打开回收站右键菜单和回收站属性的代码
- 如何在中英文混合的字符串(CString)中删除空格?
- 编程实现指定exe文件的图标!!!急用,请各位不吝赐教,分不够再加
- 如何画20cm*20cm的园在视图中央?
- 请教视频图像的问题,关于运动图像的重影。
- UpdateData的问题
- release 和 DEBUG 编译有什么区别?
- vs2003与VC6。0
- 进程间能共享object吗?比如CStringArray,HDC等
而数据库中的Name是char
Age是int该怎么匹配呢
对于参数类型的匹配及转换 有些困惑 呵呵
int atoi( const char *string );
可将CString转化成int
我的困惑是为什么上面的代码会出错呢?
对于数据库Access 和sql的操作代码应该是不是通用的呢???
如果是 那就应该是类型匹配的问题,可是又错在哪里呢??
不知你说的错误具体信息是什么,提示什么样的错误呢
Unhandled exception in ADO_SQL.exe(KERNEL32.DLL);0xE06D7363:Microsoft C++ Exception.困惑
每次使用m_pRecordset之后都要释放它
可以这样添加:
if(m_pRecordset!=NULL)
{
m_pRecordset->Close();
m_pRecordset.Release();
}
当再次使用m_pRecordset它时,还要重新打开记录集,如:
m_pRecordset.CreateInstance(__uuidof(Recordset));
m_pRecordset->Open("SELECT * FROM d1 order by Age", theApp.m_pConnection.GetInterfacePtr(),
adOpenDynamic,
adLockOptimistic,
adCmdText);
然后才可以使用m_pRecordset
我在你程序里的void CADO_SQLDlg::OnReadaccess()和void CADO_SQLDlg::OnWriteaccess()
添加了一部分,其他的你自己添加吧已发到你邮箱里