- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2017年问题分析总结范文
2017年问题分析总结范文
在应用mfc odbc类进行数据库应用的开发的过程中遇到了好多问题,曾搞得我焦头烂额^_^,项目开发完成后,对开发过程中关于odbc报错问题解决方法做个小结。
报错一:
不支持动态记录集 问题分析:
使用cdatabase类的open()成员函数时,最后一个参数默认是加载动态游标库。因此,出现 不支持动态记录集 的错误,就是由此而来。
我遇到的例子a:
使用open(默认dynaset)时,当访问时间之类的字段时会出现 不支持动态记录集 ,此时需改为snapshot) ctime m_tmborrow; if(this-isopen()) { this-close(); } this-open(crecordset::snapshot,_t( select * from tbborrow where readerid = +readerid+ )); m_tmborrow = this-m_borrowtime; 。。。
报错二:
检索记录出错 问题分析:
在用vc的类向导新建一个基类为crecordset的数据集类时要注意类向导在绑定字段时使用的成员类量的数据类型是否与你的数据库字段类型一至。因为发现类向导并不是根据字段本身的数据类型来定义绑定变量的数据类型的。常常会把一个数据库常用的id或编号一类字段按long型处理,而实际上这样的字段往往是字符型的。在此时不会有错误发生,错误只会在你执行sql查询时跳出来。
执行sql查询时,如果出现 非法描述器索引 和 检索记录出错 这两个错误,那多半就是因为数据库字段与绑定变量的数据类型不相符导至的。前者一般静态数据集(snapshot)引起,而后者一般由动态数据集(dynaset)引起。
我遇到的例子b:
修改accesse数据库字段名称(该字段数据类型为日期/时间或者文本类型,其中文本类型的掩码修改为日期/时间格式),在vc的crecordset派生类中重新绑定数据库表,导致运行程序时报告 检索记录出错 。解决办法则是很简单,把crecordset的派生类从工程中删除掉,然后再重建一个同样的crecordset的派生类问题就解决了(不要问我原因,我也搞不清)。
报错三:
非法描述器索引 问题分析:
同上 我遇到的例子c:
每一个数据库里面难免要有几个表,需要对每个表进行添加记录操作(把数据库里的所有表都添加到crecordset的派生类中,并且每个表的字段都绑定相应的变量)。结果每次添加记录时都会有 非法描述器索引 出现,解决方法,每个表都用一个crecordset的派生类来操作,ok搞定了! 报错四:
参数不足,期待是1 问题分析:
这个问题通常是sql语句错误造成的,通常是sql语句中的字段数据类型不匹配,或者字段数据个数不匹配造成的,例如:
执行insert into table(name,password) values( aa ) 就会造成参数不足。
报错五:
记录集是只读 问题分析:
这个问题通常是因为没打开要操作的表,但也可能是操作表的字段设置不合理。
文档评论(0)