第一范文网 - 专业文章范例文档资料分享平台

问题分析小结

来源:工作总结范文 时间:2024-04-01 本文由薇薇 分享 阅读量: 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。下载word有问题请添加QQ:admin处理,感谢您的支持与谅解。点击这里给我发消息
环境分析小结 - 问题分析小结

  在应用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") 就会造成参数不足。

  报错五:“记录集是只读”

  问题分析:这个问题通常是因为没打开要操作的表,但也可能是操作表的字段设置不合理。


搜索“diyifanwen.cc”或“www.diyifanwen.cc”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新工作总结范文《问题分析小结》全文阅读和word下载服务。

相关热搜:小结  分析  问题  

本文链接:https://www.diyifanwen.cc/article/5koi.html(转载请注明文章来源)
工作总结范文导航
Copyright © 2018- 第一范文网 版权所有 最新更新 | 热门文章 | TAG专题 | 网站地图 | XML地图
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:admin 邮箱:admin@qq.com
闽ICP备2022016491号-2
Top