使用OLE DB 在VC6.0下可以插入(删除)数据,在VS2005下不能插入(删除)数据 解决

本文详细介绍了在从VC6.0迁移至VS2005过程中遇到的数据库开发问题,特别是关于属性自动添加的差异。通过对比VC和VS的框架,分析了为何VS缺少某些属性,并提供了解决方法:在C*SetAccessor的GetRowsetProperties函数内手动添加所需的属性。最终,通过添加`pPropSet->AddProperty(DBPROP_IRowsetChange,true);`和`pPropSet->AddProperty(DBPROP_UPDATABILITY,DBPROPVAL_UP_CHANGE|DBPROPVAL_UP_INSERT|DBPROPVAL_UP_DELETE);`,实现了添加、删除功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

正在学习,MFC数据库开发方面的知识,

实例是VC6.0下的,想转到VS2005下使用,按照介绍的原理搭建好之后运行,结果不能插入元素。

对比VCH和VS向导给出的框架,分析原因,发现VS缺少了很多属性,

VC的属性自动写在C*Set中的open()函数中,内部添加了很多属性;

VS的属性自动添加在C*SetAccessor的GetRowsetProperties()内,只有两个属性,默认情况下,只能查看数据,而不能修改数据,

于是在此函数内添加两条属性

  pPropSet->AddProperty(DBPROP_IRowsetChange, true);
  pPropSet->AddProperty(DBPROP_UPDATABILITY, DBPROPVAL_UP_CHANGE | DBPROPVAL_UP_INSERT | DBPROPVAL_UP_DELETE);
问题便得以解决,此时的程序便可以实现添加删除功能了。

本人刚学此部分内容,不知说的对与否,忘大虾指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值