使用delphi中的ADOQuery控件中自带的,insert ,edit,delete此操作时,有时会出现下面的错误提示,提示错误信息:"无法为更新定位行。一些值可能已在最后一次读取后已更改。" 此解决方案:
出现的原因:
 
1.可能是修改的时候在其它地方已经重新修改过此数据集中的某些字段信息,例如我在上传文件时,修改了某表中的文件名称和文件路径,由于没有注意到,所以在修改数据,并再一次选择上传文件时,就会报出此错误;
 
2.数据库中的表没有主键;
3.在数据库设计时,为某些字段设置了默认值,在修改进行提交以后,数据库会自动修改对应字段的所有行的默认值,从而导致了数据库与数据集中数据的不一致,使ADOQuery无法对数据集进行定位。"
 
解决方法:
 
1.把数据集重新关闭,再打开,如ADOQuery.close;ADOQuery.open;然后再执行Adoquery.post,完成后,也可以执行 ADOApply.Refresh或 ADOApply.Requery; 视情况而定;
2.修改数据库设计,不再设置默认值,为数据库表定义主键,保证其唯一性。
3.在执行完ADOQuery.Post之后,执行ADOQuery.Refresh,对于设置默认值的情况可以解决。

最新文章

  1. queen8
  2. 几种常见 容器 比较和分析 hashmap, map, vector, list ...hash table
  3. 解读JSP的解析过程
  4. Valid Number @python
  5. codeforces 400D Dima and Bacteria 并查集+floyd
  6. Java基础 -- 冒泡排序算法(带详细注释)
  7. 住javaWeb分页实现(模拟百度首页)
  8. C#根据汉字生成拼音首字母全称
  9. Output in PowerShell
  10. Java基础:多态(重载和重写)
  11. WPF学习(2)XAML
  12. CSS属性操作/下
  13. Docker 服务
  14. HDU 3948 The Number of Palindromes(Manacher+后缀数组)
  15. mssql sqlserver避免sql脚本中出现除零错误的方法分享
  16. PHP人工智能库
  17. java注解的概念理解
  18. JaveWeb 公司项目(7)----- 通过JS动态生成DIV
  19. 后期生成事件命令copy /y
  20. ElasticSearch 学习记录之Text keyword 两种基本类型区别

热门文章

  1. LoadRunner在Controller场景中配置获取Windows Resources
  2. DTcmsV4.0分析学习——(2)系统框架
  3. Win10开启FTP与配置——(亲测完整无错版)
  4. nginx location中root指令和alias指令的区别
  5. Python 装饰器实现单列模式
  6. MyBatis的关联查询
  7. LOJ P10149 凸多边形的划分 题解
  8. spring-AMQP-RabbitMQ
  9. 内置对象(Math、Date、String、Array、基本包装类型)
  10. 爬虫(三):Requests库的基本使用