码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • DBRichEdit关联ClientDataSet不能保存的Bug


        ClientDataSet的最大好处,就是建立能内存表,特别DataSnap三层运用中,主要使用ClientDataSet与运程的服务器中的数据表,建立读取存贮关系。

        在软件的使用中,总有客户反映,一些数据不能保存。

        发现都是使用DBRichEdit,DBMemo长文字的编辑框,修改的数据不能保存。问题出面自己编写的保存ClientDataSet的函数: UpDataClientAll。

        一、UpDataClientAll工作原理

        ClientDataSet的ChangeCount属性,记录的表中被编辑修改的数据行数。就是通过,这一属性判断,是否需要保存。有保存时,通过SQL语句,向服务器上传数据。无则退出。 

        ClientDataSet被修改的数据保存在Delta中,通过对Delta找到待保存行的ID。通过SQL上传数据。
        二、数据行编辑的机制

          1、数据的保存,需要在编辑的情况下,完成编辑(确认完成),才能进行。

          2、数据行中字段的编辑的确认,只要点击另一字段,确认编辑完成。

          3、数据行的编辑确认,需要点击(进入)另一行,确认该条数据行编辑完成。

       三、问题

         1、客户在DBRichEdit中编辑后,直接点击保存,通过UpDataClientAll,出现数据末保存的Bug。

         2、.ClientDataSet与DBRichEdit,DBMemo长文字控件关联时,在DBRichEdit中编辑修改后,没有完成对数据行的编辑确认,ClientDataSe的ChangeCount,没能添加该行。只有进入另一行时,退出该行时,才能ClientDataSet才能记录该行被编辑。

         3、上述情况通过ChangeCount判断,是否保存数据时,就会出错。造成没有修改的行,不保存。

         三、问题的解决

         1、问题是在DBRichEDit或DBMemo类长文字编辑框中,编辑时需要一个确定数据行编辑完成的过程。

         2、经测试在保存前,加入下列代码,可以完成数据行编辑确认:

    1. ClientDataSet1.Edit;
    2. ClientDataSet1.Post;

           这样通过Post推送,ChangeCount完成加一。

           这种bug,是对ClientDataSet的编辑机制末能完全理解造成的。通过修改代码,是可以解决的。

  • 相关阅读:
    VSCode 开发 Vue 语法提示
    全平台自动去水印源码系统 一键下载高清无水印视频 支持全平台 带完整搭建部署教程
    Jmeter是什么
    nRF52832看门狗WDT使用(SDK17.1.0)
    Windows下使用Nginx反向代理访问MySQL数据库
    PPLiteSeg训练自己的数据集实现自动驾驶并爆改制作成API可供其他Python程序调用实时语义分割(超低延时)
    电容笔什么牌子好?比较好用的ipad手写笔推荐
    单例设计模式,各种排序复习
    006-BSP学习笔记-kernel移植
    Source Insight是一个面向项目开发的程序编辑器和代码浏览器丨产品简介
  • 原文地址:https://blog.csdn.net/lyhoo163/article/details/133234056
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号