记录集只读&无效的字符描述索引
记录集只读&无效的字符描述索引
来来叔叔 发表于7个月前
记录集只读&无效的字符描述索引
  • 发表于 7个月前
  • 阅读 0
  • 收藏 0
  • 点赞 0
  • 评论 0

新睿云服务器60天免费使用,快来体验!>>>   

 

被vc 中的数据库编程搞得焦头烂额,尤其是用ODBC存取图像的时候。

不想用向导生成CRecordset的方式,这样只能静态的绑定数据集,而且有时候不想要一个附加的一个CRecordView。于是开始只定义了一个自己的CRecordset变量。但是后来发现,这样的话只能用GetFieldValue读取记录的值,怎么添加和修改记录呢,只能用SQL语句了,但是用SQL语句无法实现往字段里面添加图像啊。

所以只好参照以前的写法,用向导生成一个派生于CRecordset的类,并绑定数据变量。可是调用CMyRecordset.Open(CRecordset::snapshot,sqlStr)时出现“记录集只读”的错误,网上一查,一种解决方法时,snapshot改成dynaset,可是这样又出现“无效的字符描述索引”的错误,网上的贴子又解释说是读取记录时要遵守字段的顺序,可我这里没有用GetFieldValue读取记录啊。百思不得其解,于是怀疑数据表有问题,把其中两个约束关系去掉了,不行;怀疑向导生成的virtual CString GetDefaultConnect();virtual CString GetDefaultSQL();两个函数有问题,去掉好也不行。错误始终在Open函数这里,怀疑这里有鬼,于是只调用Open(),不用参数。可以了,但是还需要设置m_strFilter并Requery()得到自己需要的记录。再向字段里面写图像数据,可是查询一下发现里面的字段总是为空,原来还需要显式的调用CRecordset::SetFieldDirty和CRecordset::SetFieldNull。好复杂!

不过终于成功了!

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 0
博文 100
码字总数 55732
×
来来叔叔
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: