ClientDataSet运行中出现“ClientDataSet:dataset not in edit or insert mode”(二)

news2024/12/25 23:04:44

    接前期《ClientDataSet运行中出现“ClientDataSet:dataset not in edit or insert mode”(一)》中,提出的解决方案,本人作进一步探索:

     一、编写一个返回ClientDataSet的状态函数

function Get_Client_state( ClientDataSet1:TClientDataSet):string;  // 获取ClientDataSet state
var S:string;
begin
  result:='';
  case ClientDataSet1.State of
    dsInactive: S:='dsInactive';
    dsBrowse: S:='dsBrowse';
    dsEdit: S:='dsEdit';
    dsInsert: S:='dsInsert';
    dsSetKey: S:='dsSetKey';
    dsCalcFields: S:='dsCalcFields';
    dsFilter: S:='dsFilter';
    dsNewValue: S:='dsNewValue';
    dsOldValue: S:='dsOldValue';
    dsCurValue: S:='dsCurValue';
    dsBlockRead: S:='dsBlockRead';
    dsInternalCalc: S:='dsInternalCalc';
    dsOpening: S:='dsOpening';
    else S:='No';
  end;
  result:=S;
end;

    二、作出下列搜索

  with ClientDataSet1 do
  begin
    ShowMessage(Get_Client_state(ClientDataSet1));        // 获取ClientDataSet state
    ClientDataSet1.Append;
    ShowMessage(Get_Client_state(ClientDataSet1));        // 获取ClientDataSet state
    ClientDataSet1.Append;
    ShowMessage(Get_Client_state(ClientDataSet1));        // 获取ClientDataSet state
  end;

执行代码,反应如下:

with ClientDataSet1 do
  begin
    ShowMessage(Get_Client_state(ClientDataSet1));    // 显示 dsBrowse

    ClientDataSet1.Append;
    ShowMessage(Get_Client_state(ClientDataSet1));    // 显示 dsBrowse(此时,应该dsInsert)
    ClientDataSet1.Append;
    ShowMessage(Get_Client_state(ClientDataSet1));    // 显示 dsInsert
  end;

   如果在第一次执行

    ClientDataSet1.Append;

加入

    ClientDataSet1.Edit;

经测试,问题解决。只加一句代码,简化解决的办法。

      三、问题分析

      执行Append后,编译器末能将ClientDataSet的state值,变更为dsInsert。 通过强制执行Edit,让ClientDataSet的state值,变更为dsEdit(效果与dsInsert一致)。 

 ClientDataSet运行中出现“ClientDataSet:dataset not in edit or insert mode”(一)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1009957.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot项目中使用poi-tl打成jar包后常见问题及解决

目录 前言 一、场景描述 1、打成jar包运行后模板找不到 2、文件只能下载一次 二、正确示范 1、Controller下载方法定义 2、文档生成 总结 前言 在前面的博客中,介绍了如何在Java中根据模板动态写入数据到word模板中,原文地址:Java使用…

Solidity 小白教程:15. 异常

Solidity 小白教程:15. 异常 这一讲,我们介绍solidity三种抛出异常的方法:error,require和assert,并比较三种方法的gas消耗。 异常 写智能合约经常会出bug,solidity中的异常命令帮助我们debug。 Error …

企业如何实时监管员工聊天红包转账记录?

1 你还在担心员工飞单吗? 2 你还在担心员工私单吗? 3 你还在担心员工辱骂删除客户吗? 4 你还在担心员工工作量无法统计吗? 5 你还在担心员工离职带走客户资源吗? 。。。。。。 互联网时代,微信应用…

QCustomPlot绘图类详解(大白话)

本文假定你会使用Qt开发,但未接触过QCustomPlot绘图类或者是刚接触。 如何往Qt中引入QCustomPlot 首先,去官网下载最新版本的源码,注意是QCustomPlot.tar.gz这个文件,里面包含源码和示例。实际上,我们只需要qcustompl…

Hadoop-Hive

1. hive安装部署 2. hive基础 3. hive高级查询 4. Hive函数及性能优化 1.hive安装部署 解压tar -xvf ./apache-hive-3.1.2-bin.tar.gz -C /opt/soft/ 改名mv apache-hive-3.1.2-bin/ hive312 配置环境变量:vim /etc/profile #hive export HIVE_HOME/opt/soft/hive…

【深度学习 AIGC】stablediffusion-infinity 在无界限画布中输出绘画 Outpainting

代码:https://github.com/lkwq007/stablediffusion-infinity/tree/master 启动环境: git clone --recurse-submodules https://github.com/lkwq007/stablediffusion-infinity cd stablediffusion-infinity conda env create -f environment.yml conda …

笔记(三)传统图机器学习的特征工程-节点

1、不同种类的任务 2、传统图机器学习的几个层面 (人工特征工程机器学习) 3、属性特征-节点本身的特征 4、连接特征-节点的结构信息 5、训练-预测 6、好模型需要好数据 -人工构造的特征(特征工程)-节点、连接、全图-无向图 7、节…

算法训练 第二周

一、赎金信 本题给出了两个字符串ransomNote和magazine,需要让我们判断ransomNote中的字符能不能由magazine中的字符构成,也就是说我们需要将所有ransomNote中的字符找到一个在magazine中与这个字符相同的字符,且每个字符只能使用一次&#x…

openssl websockets

1. HTTPS通信的C实现 - 知乎

【干货】Anaconda导出环境配置文件

【干货 | 项目导出安装环境要求】 方法yml文件req.txt文件 参考 方法 yml文件 激活虚拟环境(fyp是我的虚拟环境名称,请根据你自己的名称进行修改) conda activate fyp运行此代码 conda env export > environment.ymlreq.txt文件 激活…

runtime过程中,常见jar问题解决

io.netty java.lang.NoSuchMethodError: io.netty.buffer.PooledByteBufAllocator.<init>此类问题报错&#xff0c;主要是io.netty 多个jar 冲突导致。、 使用以下命令查看同一个jar 有哪些版本 mvn dependency:resolve -Dclassifiersources对一些不愿意引入的依赖加上…

VIGC:自问自答,高质量视觉指令微调数据获取新思路

从今年四月份开始&#xff0c;随着MiniGPT-4, LLaVA, InstructBLIP等多模态大模型项目的开源&#xff0c;大模型的火从NLP领域烧到了计算机视觉及多模态领域。 多模态大模型需要高质量的图文对话数据进行指令微调&#xff0c;而当前多模态指令微调数据多基于纯文本GPT-4构建&am…

【Purple Pi OH RK3566鸿蒙开发板】OpenHarmony音频播放应用,真实体验感爆棚!

本文转载于Purple Pi OH开发爱好者&#xff0c;作者ITMING 。 原文链接&#xff1a;https://bbs.elecfans.com/jishu_2376383_1_1.html 01注意事项 DevEco Studio 4.0 Beta2&#xff08;Build Version: 4.0.0.400&#xff09; OpenHarmony SDK API 9 创建工程类型选择Appli…

华为云云耀云服务器L实例评测 | 部署H5 一起来吃月饼游戏

文章目录 前言一、云服务器相对传统服务器有什么优势1.1、可伸缩性&#xff08;Scalability&#xff09;1.2、灵活性&#xff08;Flexibility&#xff09;1.3、高可用性&#xff08;High Availability&#xff09;1.4、备份和恢复&#xff08;Backup and Recovery&#xff09;1…

Golang Gorm 创建HOOK

创建的时候&#xff0c;在插入数据之前&#xff0c;想要做一些事情。钩子函数比较简单&#xff0c;就是实现before create的一个方法。 package mainimport ("gorm.io/driver/mysql""gorm.io/gorm" )type Student struct {ID int64Name string gorm:&q…

redis深度历险 千帆竞发 —— 分布式锁

分布式应用进行逻辑处理时经常会遇到并发问题。 比如一个操作要修改用户的状态&#xff0c;修改状态需要先读出用户的状态&#xff0c;在内存里进行修改&#xff0c;改完了再存回去。如果这样的操作同时进行了&#xff0c;就会出现并发问题&#xff0c;因为读取和保存状态这两个…

AUTOSAR-存储基础知识

1、存储基础知识 RAM 又称随机存取存储器&#xff0c;存储单元的内容可以按照需要随机取出或者存入&#xff0c;存取数据比较快。这种存储器在断电时&#xff0c;会丢失其存储内容&#xff0c;所以一般是 CPU运行时会把程序从 ROM 拷贝到 RAM 里面执行。所以一般 RAM 是作为和…

软件测试公式之如何高质量的做BUG分析?

对于BUG分析&#xff0c;测试人员再熟悉不过了。但如果是面对大量的BUG&#xff0c;要如何有效的分析呢&#xff1f;有什么好的方案和行动项&#xff1f;今天聊聊这个话题。 01 BUG分析简单可以分为两类&#xff1a;宏观BUG分析 和 微观BUG分析。 宏观BUG分析&#xff1a;在…

六、线程池的编写与解析 —— TinyWebServer

六、线程池的编写与解析 —— TinyWebServer 一、前言 经过上次数据库连接池的书写&#xff0c;大家也应该明白池的编写。 这里说一下不同点&#xff0c;和一些要注意的点。 为什么使用模板&#xff1f;为什么不用单例模式了&#xff1f;这里的线程池扮演的角色是什么&#x…

【PowerQuery】PowerBI 手动刷新数据内容

PowerBI的手动刷新方式和Excel基本一样&#xff0c;我们通过刷新数据源来实现数据的手动刷新&#xff0c;当然PowerBI 和Excel一样存在着单数据源刷新和全局数据源刷新两个操作。如果希望刷新单个数据源&#xff0c;我们可以在数据字段进行数据的刷新&#xff0c;具体的操作步骤…