文档章节

记录集只读&无效的字符描述索引

来来叔叔
 来来叔叔
发布于 2017/08/04 23:56
字数 430
阅读 0
收藏 0
 

被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
作品 0
广州
高级程序员
史上最全的 DB2 错误代码大全

1 前言   作为一个程序员,数据库是我们必须掌握的知识,经常操作数据库不可避免,but,在写 SQL 语句的时候,难免遇到各种问题。例如,当我们看着数据库报出的一大堆错误时,是否有种两眼...

qq_35246620
2017/02/24
0
0
DB2错误信息(按sqlcode排序)

作者:王阔 2012-8-06 10:28 星期三 晴   DB2错误信息(按sqlcode排序)   sqlcode sqlstate 说明   000 00000 SQL语句成功完成   01xxx SQL语句成功完成,但是有警告   +012 0154...

王阔
2012/08/17
0
0
Python教程-数据类型

http://cuiqingcai.com/1001.html 标准的数据类型: Python有五个标准的数据类型: 数字 字符串 列表 元组 字典 Python数字: 不可变的数据类型,这意味着改变一个新分配的对象的数字数据类型...

智能小松鼠
2016/11/15
4
0
SQL知识整理二:锁、游标、索引

锁的模式 锁模式 描述 共享(S) 用于不更改或不更新数据(只读操作),如SELECT语句 更新(U) 用于可更新的资源中。防止当多个会话在读取、锁定以及随后可能进行的资源更新时发生常见形式的...

橘子红了呐
2017/11/11
0
0
DB2 错误代码大全——SQLSTATE 消息

SQLSTATE消息 本节列示SQLSTATE及其含义。SQLSTATE是按类代码进行分组的;对于子代码,请参阅相应的表。 表2. SQLSTATE类代码 类 代码 含义 要获得子代码, 参阅... 00完全成功完成 表3 01警...

红薯
2011/11/28
2.3K
0

没有更多内容

加载失败,请刷新页面

加载更多

arcgis jsapi接口入门系列(2):图层基础操作

//图层相关demo layerFun: function () { //获取地图的所有图层(不包括的图层类型:底图图层(basemaps)) let layers = this.map.layers; ...

canneljls
4分钟前
0
0
MySQL忘记root密码--不重启mysqd重置root密码

先提个问题:如何不重启mysqld,且没有权限修改用户账号和权限的情况下,如何重新设置root密码?不知道没关系,在此之前我也是不知道如何操作的,先看看下面的几种重置root密码的方法。 1、s...

IT--小哥
6分钟前
0
0
php7不再支持HTTP_RAW_POST_DATA,微信支付$GLOBALS[‘HTTP_RAW_POST_DATA’]获取不到数据,

升级到php7后, 发现旧的web系统有些问题, 查看后才发现原来是php7不再支持HTTP_RAW_POST_DATA 原来系统一些地方, 使用$GLOBALS[‘HTTP_RAW_POST_DATA’]来获取数据, 在php7里无法获取了 ...

15834278076
7分钟前
0
0
Android--拨打电话功能

Intent callIntent = new Intent(); callIntent.setAction(Intent.ACTION_DIAL); callIntent.setData(Uri.parse("tel:" + "4008823823")......

lanyu96
14分钟前
0
0
iOS多种刷新样式、音乐播放器、仿抖音视频、旅游App等源码

iOS精选源码 企业级开源项目,模仿艺龙旅行App 3D立体相册,可以旋转的立方体 横竖屏切换工具,使用陀螺仪检测手机设备方向,锁屏状... Swift版Refresh(可以自定义多种样式)架构方面有所优化...

Android爱开源
18分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部