当前位置: 首页 > news >正文

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

    在打开数据表文件,对ClientDataSet执行Append或Insert时,“ClientDataSet:dataset not in edit or insert mode”:

     一、搜索问题

     1、执行“显示数据后”,再执行Append,出错,说明ClientDataSet处于编辑状态;

      2、加入  ClientDataSet1.Active:=True无效;

      3、加入  ClientDataSet1.ReadOnly:=False无效;

      4、加入下列代码无效:

  for i := 0 to ClientDataSet1.FieldCount -1 do
     ClientDataSet1.Fields[i].ReadOnly := False;

    二、找问题

     执行Append末出错,但 向ClientDataSet加入数据出错:

with ClientDataSet1 do
beginClientDataSet1.Append;FieldByName('分支').AsString:=sFCID;    // 出错FieldByName('姓名').AsString:='空';ClientDataSet1.Posst;end;

    问题是Append,并及时加入一行,录入字符出错。

    经过测试

     ClientDataSet1.Edit          // 处于 dsEdit  (此时dsEdit,不能Appen加入)

     ClientDataSet1.Append    // 处于 dsBrowse

     ClientDataSet1.Append    // 处于 dsInsert

     可见第一次执行Append处于 dsBrowse状态,当然不能录入数据了。再执行一次Append处于 dsInsert状态,才能录入数据。问题就在此处。但根源很难找。

    四、解决问题

    1、在执行加入代码之前,执行以下代码,让State处于dsEdit,此时可以Append加入了。

with ClientDataSet1 do
beginClientDataSet1.Append;ClientDataSet1.Delete;end;

   这个代码一执行,再执行Append,末出现错误。

     2、二次执行Append,加入二个空行(数据特),再删除一行之前一行:

  with ClientDataSet1 dobeginClientDataSet1.Append;ClientDataSet1.Append;FieldByName('分支').AsString:=sFCID;FieldByName('姓名').AsString:='空';FieldByName('选择').AsString:='True';FieldByName('上传').AsString:='True';FieldByName('考核').AsString:='True';FieldByName('考勤').AsString:='True';FieldByName('进院日期').AsString:=sDate;FieldByName('本市户籍').AsString:='False';FieldByName('雇主保险').AsString:='False';FieldByName('资格补贴').AsString:='False';FieldByName('事业编制').AsString:='False';FieldByName('补贴入职').AsString:='False';FieldByName('员工编号').AsString:='';FieldByName('入职类型').AsString:='退休聘用';FieldByName('工作状态').AsString:='在岗';FieldByName('岗位类型').AsString:='全职';FieldByName('国籍').AsString:='中国';FieldByName('民族').AsString:='汉族';FieldByName('政治面貌').AsString:='群众';FieldByName('文化程度').AsString:='小学及以下';Prior;if FieldByName('姓名').AsString='' then Delete;Next;end;

    五、问题的追述

   上述情况,问题可能:

    (1)使用第三方控件

    (2)DBVCL过多,造成不处于sdEdit或sdInsert状态

    (3)ClientDataSet自身问题。

      继续

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

http://www.lryc.cn/news/166701.html

相关文章:

  • 华为GaussDB数据库
  • Flink、Spark、Hive集成Hudi
  • 百度编辑器 Ueditor 视频上传时 目录创建失败 解决办法
  • Go 字符串处理
  • 家政服务接单小程序开发源码 家政保洁上门服务小程序源码 开源完整版
  • SuperMap iClient3D 11i (2023) SP1 for Cesium之移动实体对象
  • 【深度学习 AIGC】stablediffusion-infinity 在无界限画布中输出绘画 Outpainting
  • Flutter插件之阿里百川
  • ✔ ★ 算法基础笔记(Acwing)(三)—— 搜索与图论(17道题)【java版本】
  • 初试占比70%,计算机招生近200人,安徽理工大学考情分析
  • LeetCode题解:1720. 解码异或后的数组,异或,JavaScript,详细注释
  • 【C刷题】day2
  • Apollo源码安装的问题及解决方法
  • Flutter 挖孔屏的状态栏占用问题怎么解决,横屏后去掉了状态栏,还是会有一块黑色的竖条
  • Layui快速入门之第九节 表格事件的使用
  • [2023.09.14]: Rust的条件编译
  • 数据清洗:数据挖掘的前期准备工作
  • 基于FPGA的图像sobel锐化实现,包括tb测试文件和MATLAB辅助验证
  • HDMI 直通 ILA 调试实验
  • 基于Qt4开发曲线绘制交互软件Plotter
  • 数据分享|R语言逻辑回归、Naive Bayes贝叶斯、决策树、随机森林算法预测心脏病...
  • 【深度学习】 Python 和 NumPy 系列教程(十五):Matplotlib详解:2、3d绘图类型(1):线框图(Wireframe Plot)
  • 阿里云CDN缓存配置及优化-oss绑定CDN缓存自动刷新功能
  • 气象站有什么用?有哪些类型
  • 【深度学习】卷积神经网络(LeNet)
  • 什么是数据仓库,解释数据仓库的结构和ETL过程
  • 无线通信网络
  • 使用ElementPlus实现内嵌表格和内嵌分页
  • flex弹性盒模型与阿里图标的使用
  • linux 应用中offsetof ()是个啥?