ClientDateSet:Cannot perform this operation on a closed dataset

     一、问题表现

    Delphi 三层DataSnap,使用AlphaControls控件优化界面,一窗口编辑时,出现下列错误提示:       

     编译通过,该窗口中,重新显示数据,下图:

    

    相关代码:

    

procedure TShowOld_1_Frm.Button7Click(Sender: TObject);
var SQL,ID:string;k,L:integer;
beginGroupBox4.Caption:=Button7.Caption;DateTimetoString(ID,'yyyy-MM-dd',now-100);SQL:='select * from 老人基本信息 where (分支='+#39+sFCID+#39+') ';SQL:=SQL+'and (入院日期>='+#39+ID+#39+') order by 入院日期';DataModule1.ClientDataSet1.Active:=False;DataModule1.ClientDataSet1.DataRequest(SQL);DataModule1.ClientDataSet1.Active:=True;ClientDataSet1.Data:=DataModule1.ClientDataSet1.Data;DataModule1.ClientDataSet1.Active:=False;L:=ClientDataSet1.RecordCount;SetSource(DataSource1);DBGridEh1.Columns[0].Title.Alignment := taCenter;DBGridEh1.Columns[0].Alignment:=taCenter;DBGridEh1.Columns[1].Title.Alignment := taCenter;DBGridEh1.Columns[1].Alignment:=taCenter;DBGridEh1.Columns[0].Width:=36;DBGridEh1.Columns[1].Width:=80;
//  sStatusbar1.Panels.Items[0].text:='    数据库:  '+IntToStr(L)+' 人信息';
end;

     问题是,首次都能正常显示(OnShow中执行代码),再次执行代码时,出现下列提示:

    二、搜索思路

    1、由提示“ ClientDataSet无法在关闭的数据集上执行此操作”,ClientDataSet上作文章。打开数据集时,每次打开换个ClientDataSet,是可以解决问题,但是,这太复杂了,也违背编程的原则。放弃此办法。

     2、在引起DBCombobox,有OnChange的控件,找原因。方法见我的别一文章:《AlphaControls控件TsDBCombobox出错:访问违规》。

     3、逐个控件,进行查找,方法是屏蔽全部控件,逐个开放,检查是否出现错误。找到在 TsDBEdit控件时,使用OnChange,生成其它字段的数据,引起ClientDataSet不能进入Open状态。

      三、解决问题

      只能放弃使用OnChange事件。

      原因中使用控件AlphaControls,界面很好,但是重画窗口界面,比较复杂,要求不使用或少使用OnChange事件,引起不必要的麻烦。

      只能改变思路,加一按键实现“OnChange,生成其它字段的数据”。

  

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Django自动生成docs接口文档

1.创建Django项目 python manage.py startproject django20252.创建子应用 python manage.py startapp api3.安装依赖包 pip install coreapi4.创建urls.py from django.contrib import admin from django.urls import path, include from rest_framework import routers f…

数学建模值TOPSIS法及代码

TOPSIS法 TOPSIS法简称为优劣距离解法,是一种常见法综合评价方法,其能充分利用原始数据的信息,其结果能精确地反映各个评价方案之间的差距。 模型介绍 上篇文章谈到的层次分析法是有局限性的。比如评价的决策层不能太多,太多的…

PPT基础:合并形状

目录 合并形状功能详解合并形状使用文字转形状图表转形状 合并形状功能详解 形状:并不局限于ppt内给定的图形,也并不全是图形 (1)所在位置:选中图形后>>>形状格式>>>最左边 (2&#x…

关于爬虫中的hook(defineProperty,hook cookies, hook载荷数据,hookXHR)

关于爬虫中的hook: defineProperty var people {age: 19, }; var count20; console.log(people.age) // 参数:对象 属性名字 函数 Object.defineProperty(people, age, {get: function () {console.log(获取值!);return count;},// set: …

通信原理板块——纠错编码最小码距与纠错能力的计算

微信公众号上线,搜索公众号小灰灰的FPGA,关注可获取相关源码,定期更新有关FPGA的项目以及开源项目源码,包括但不限于各类检测芯片驱动、低速接口驱动、高速接口驱动、数据信号处理、图像处理以及AXI总线等 对纠错编码的最小码距d0与编码的检…

【C++】:模板的使用

目录 1、泛型编程 2、函数模板 2.1、函数模板概念 2.2、函数模板格式 2.3、函数模板的原理 2.4、函数模板的实例化 2.6、模板参数的匹配原则 3、类模板 3.1、 类模板的定义格式 3.2、 类模板的实例化 4、非类型模板参数 5、模板的特化 5.1、函数模板特化 5.2、类模…

网络运维与网络安全 学习笔记2023.11.19

网络运维与网络安全 学习笔记 第二十天 今日目标 STP工作原理、STP高级配置、MSTP工作原理 MSTP配置案例、MSTP负载均衡 STP工作原理 单点故障 PC之间的互通链路仅仅存在1个 任何一个设备或链路出现问题,PC之间都会无法通信 解决方案 增加冗余/备份设备 增加冗…

Pulumi才是未来基础设施的赢家

文章目录 一、前言二、什么是Pulumi三、Pulumi Vs Terraform3.1、两者渊源3.2、两者区别 四、快速入门Pulumi4.1、Pulumi支持的Provider4.2、使用建议4.3、使用示例(TypeScript)4.3.1、安装 Pulumi4.3.2、项目管理方式4.3.3、创建新项目(Kube…

开发知识点-uniapp微信小程序-开发指南

uniapp uni.chooseLocationgetCurrentPages美团外卖微信小程序开发uniapp-美团外卖微信小程序开发P1 成果展示P2外卖小程序后端,学习给小程序写http接口P3 主界面配置P4 首页组件拆分P13 外卖列表布局筛选组件商家 布局测试数据创建样式 请求商家外卖数据封装请求并…

如何在el-tree懒加载并且包含下级的情况下进行数据回显-02

上一篇文章如何在el-tree懒加载并且包含下级的情况下进行数据回显-01对于el-tree懒加载,包含下级的情况下,对于回显提出两种方案,第一种方案有一些难题无法解决,我们重点来说说第二种方案。 第二种方案是使用这个变量对其是否全选…

JAVA for 循环训练 Pattern

import java.util.Scanner;public class Pattern {public static void main(String[] args) {int[] arr {0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0};Scanner in new Scanner(System.in);System.out.print("请输入n:");int n in.nextInt();in.close();for …