Access violation at address. Read of address FFFFFFC

news2024/10/2 6:39:38

        常规的数据操作:

     见上图,数据保存在.ClientDataSet1数据集中,为了将参数逐条保存在Txt文件中,做了对ClientDataSet(DBGridEh)的循环写盘和读盘操作:

      但是,原代码通过数据集循环 ,直接写入磁盘,出现:

     (1)ClientDataSet1不可再操作,比如对它进行再赋值。

     (2)甚至出现“Access violation at address 00402452 in module 'MedicalRec.exe'.Read of address FFFFFFC”出错信息提示。

      为此,解决问题。

     一、上网查内存越界,按网上办法 

     通过重新注册Windows的动态链接库。:

      (1)运行 -> cmd

      (2)命令行执行:for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1 。

     不起作用。

    二、相关操作代码

    1、TClientDataSet三层运用,客户端,读取数据。

procedure TSys_Config_Frm.sButton7Click(Sender: TObject);
var S1,SQL:string;
begin
  S1:=sEdit1.Text;
  SQL:='select 排序,选择,主题,副题,名称,T,共性,备注,ITEMS,分支,ID from 系统配置 '+
       'where (分支='+#39+sFCID+#39+') and (主题='+#39+S1+#39+') '+
       'order by 主题,名称';
  DataModule1.ClientDataSet1.Active:=False;
  DataModule1.ClientDataSet1.DataRequest(SQL);
  DataModule1.ClientDataSet1.Active:=True;
  ClientDataSet1.Data:=DataModule1.ClientDataSet1.Data;
  DataModule1.ClientDataSet1.Active:=False;
  DBGridEh1.DataSource:=DataSource1;
  DBGridEh1.Columns.Items[0].Width:=36;
  DBGridEh1.Columns.Items[1].Width:=36;
  DBGridEh1.Columns.Items[2].Width:=80;
  DBGridEh1.Columns.Items[3].Width:=50;
  DBGridEh1.Columns.Items[4].Width:=200;
  DBGridEh1.Columns.Items[5].Width:=36;
  DBGridEh1.Columns.Items[6].Width:=36;
  ClientDataSet1.Fields[1].DisplayLabel:='√';
  DBGridEh1.Columns[1].Title.Alignment := taCenter;    // 标题居中
  DBMemo1.DataSource:=DataSource1;
  DBMemo1.DataField:='Items';
  DBMemo2.DataSource:=DataSource1;
  DBMemo2.DataField:='备注';
end;

    2、当ClientDataSet数据集,单独一行数据段读写磁盘中Txt文件后,正常。

procedure TSys_Config_Frm.Button13Click(Sender: TObject);
var FileName:string;
    S1,S2:string;
    MyList:TStringList;
begin
  MyList:=TStringList.Create;
  S1:=Trim(ClientDataSet1.FieldByName('主题').AsString);
  S2:=Trim(ClientDataSet1.FieldByName('名称').AsString);
  Try
    FileName:=Edit1.Text+'\'+S1+'_'+S2+'.txt';
    if FileExists(FileName) then
    begin
      MyList.LoadFromFile(FileName);
      DBGridEh1.DataSource.DataSet.Edit;
      ClientDataSet1.FieldByName('ITEMS').AsString:=MyList.text;
      DBGridEh1.DataSource.DataSet.Post;
    end;
  finally
  end;
  MyList.Free;
end;

    3、当ClientDataSet数据集循环中,某字段读写磁盘中Txt文件后,就不能对ClientDataSet重新赋值。

procedure TSys_Config_Frm.Button28Click(Sender: TObject);
var S1,S2,S3,FileName:string;
    MyList:TStringList;
    T:boolean;
begin
  MyList:=TStringList.Create;
  with ClientDataSet1 do
  begin
    First;
    While Not Eof do
    begin
      S1:=Trim(FieldByName('主题').AsString);
      S2:=Trim(FieldByName('名称').AsString);
      T:=FieldByName('选择').AsBoolean;
      if Checkbox2.Checked then
      begin
        if T and (S1<>'') and (S2<>'') then
        begin
          FileName:=Edit1.Text+'\'+S1+'_'+S2+'.txt';
          if FileExists(FileName) then
          begin
            MyList.LoadFromFile(FileName);
            Edit;
            FieldByName('ITEMS').AsString:=MyList.text;
            Post;
          end;
        end
      end
      else begin
        if (S1<>'') and (S2<>'') then
        begin
          FileName:=Edit1.Text+'\'+S1+'_'+S2+'.txt';
          if FileExists(FileName) then
          begin
            MyList.LoadFromFile(FileName);
            Edit;
            FieldByName('ITEMS').AsString:=MyList.text;
            Post;
          end;
        end
      end;
      Next;
    end;
    First;
  end;
  MyList.Free;
end;

       经过一个下午的努力。

       如下:数据集循环时,不直接读写磁盘,需是调用另一个对单条数据进行读写的操作。经测试,通过。不再出现类似的问题。

     代码:

procedure TSys_Config_Frm.sButton8Click(Sender: TObject);
begin
  with ClientDataSet1 do
  begin
    First;
    While Not Eof do
    begin
      if FieldByName('选择').AsBoolean then
        Button13Click(Sender);              // 读入一条
      Next;
    end;
    First;
  end;
end;

procedure TSys_Config_Frm.sButton10Click(Sender: TObject);
begin
  with ClientDataSet1 do
  begin
    First;
    While Not Eof do
    begin
      if FieldByName('选择').AsBoolean then
        Button14Click(Sender);             // 写入一条
      Next;
    end;
    First;
  end;
end;

    真正的原理,不得而知。有知道的同仁,告知一下。

     

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

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

相关文章

IP 服务级别协议监控

工作场所分布在全球多个地点的企业通过 WAN 链接共享和接收数据&#xff0c;这需要跨广泛的网络位置和路径持续监控网络质量&#xff0c;以实现优化的性能水平和不间断的服务交付。 IP 服务水平协议 IP 服务级别协议 &#xff08;IP SLA&#xff09; 是一种网络测量技术&…

php开发实战分析(10):城市区县联动筛选

php开发实战分析系列目录 php开发实战分析(1)&#xff1a;mysql操作字段&#xff08;添加、删除、修改&#xff0c;多数据表中新增多个字段&#xff09;php开发实战分析(2)&#xff1a;cookie的动态使用&#xff08;设置、获取、删除、猜你喜欢原理、购物车调用&#xff09;ph…

热烈祝贺埃文科技荣获CCF第38届中国计算机应用大会计算机应用科学技术二等奖

2023年7月16-19日&#xff0c;第38届中国计算机应用大会&#xff08;CCF NCCA 2023&#xff09;暨2023年人工智能&#xff0b;应用学术会议在江苏苏州举办。埃文科技董事长兼总经理王永博士受邀出席智慧网安论坛&#xff08;一&#xff09;数据要素市场化&#xff0c;并发表《智…

本地私有仓库部署、docker--harbor私有仓库部署和管理

部署本地私有仓库 拉取镜像 修改daemon.json配置文件 重启docker服务 创建容器 为镜像打标签 上传镜像 查看私有仓库 其他主机拉取私有仓库镜像 Docker--harbor私有仓库 &#xff08;1&#xff09;什么是Harbor Harbor 是 VMware 公司开源的企业级 Docker Registry 项目…

React Dva项目中.roadhogrc.mock.js直接自动导入mock目录下所有文件方式

上文 React Dva项目中模仿网络请求数据方法 中&#xff0c;我们书写了Dva项目模拟后端数据的方式 但是 我们.roadhogrc.mock.js中的这个处理其实并不好用 我们还需要一个一个的引入 我们可以直接靠一段代码 import fs from fs; import path from path; const mock {} fs.re…

VarHandle:Java9中保证变量读写可见性、有序性、原子性利器

文章目录 一、什么是VarHandle0、JMM1、jdk9之前无锁技术的实现 二、VarHandle使用1、VarHandle 快速上手2、VarHandle常用方法3、实战案例1&#xff1a;解决可见性&#xff08;比volatile轻量&#xff09;4、实战案例2&#xff1a;解决指令重排序&#xff08;比volatile轻量&a…

3dsmax制作一个小人

文章目录 步骤起阶五官手臂短袖添加头发、头饰BodyPaint软件贴图导入到3dsmax 渲染 步骤 起阶 五官 手臂 短袖 添加头发、头饰 BodyPaint软件贴图 寻找网络贴图&#xff0c;用PS切割&#xff0c;用BodyPaint恢复纹理 导入到3dsmax 渲染

【干货防踩坑/全图文分步/Gitlab镜像仓库自动同步】Gitlab CE/EE镜像仓库的配置技巧(含ssh/密码两验证方法)

【干货踩坑】Gitlab CE/EE镜像仓库的配置技巧&#xff08;含ssh/密码两验证方法&#xff09; 众所周知&#xff0c;Gitlab是个好东西。为什么呢&#xff1f;GitHub没有的功能&#xff0c;他全有了。更何况还可以私有部署。这两天自己部署了Gitlab&#xff0c;然后想把自己的项…

springboot + redis + 注解 + 拦截器 实现接口幂等性校验

一、概念 幂等是一个数学与计算机学概念&#xff0c;在数学中某一元运算为幂等时&#xff0c;其作用在任一元素两次后会和其作用一次的结果相同。在计算机中编程中&#xff0c;一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。 幂等函数或幂等方法是…

【C++杂货铺】内存管理

文章目录 一、C/C内存分布二、C内存管理方式2.1 new和delete操作内置类型2.2 new和delete操作自定义类型 三、operator new与operator delete函数四、new和delete的实现原理4.1 内置类型4.2 自定义类型 五、定位new表达式&#xff08;placement-new&#xff09;六、malloc/free…

二十三种设计模式第十八篇--责任链模式

责任链模式是一种行为型设计模式&#xff0c;它允许你将请求沿着处理者链传递&#xff0c;直到有一个处理者能够处理该请求为止。责任链模式将请求发送者和请求处理者解耦&#xff0c;从而使得多个处理者都有机会处理同一个请求。 该模式包含以下几个关键角色&#xff1a; 抽象…

CUDA之指针篇

CUDA教程 第一章 指针篇 第二章 cuda原理篇 第三章 随着人工智能的发展与人才的内卷&#xff0c;很多企业已将深度学习算法的C部署能力作为基本技能之一。面对诸多arm相关且资源有限的设备&#xff0c;往往想更好的提速&#xff0c;满足更高时效性&#xff0c;必将更多类似矩…

【高危】Spring Security鉴权规则错误配置风险

漏洞描述 Spring Security 是一套为基于Spring的应用程序提供说明性安全保护的安全框架。 在 Spring Security 受影响的版本中&#xff0c;由于 Spring Security 的授权规则会应用于整个应用程序上下文&#xff0c;当应用程序中包含多个servlet&#xff0c;并且其中一个为Dis…

测试必备工具之抓包神器 Charles 如何抓取 https 数据包?

前言 之前我们发过一篇文章讲解了Charles抓包工具的基本使用&#xff0c;有需要的小伙伴可以去看上一篇文章。 之前文章讲的数据包主要是http协议&#xff0c;大家可以看到数据包并直接显示具体详细的内容&#xff1a; 但是如果抓到的是https的报文&#xff0c;是没有办法直…

Redis DeskTop Manager 使用教程

简单粗暴的介绍一下&#xff0c;以及在工作中如何去使用工具管理我们的Redis&#xff0c;更加详细及深入的使用方法欢迎大家评论区讨论&#xff0c;我也和大家一起学习。 简介&#xff1a; Redis Desktop Manager (RDM) 是一个开源的图形化 Redis 数据库管理工具&#xff0c;…

erp什么意思,erp系统软件到底是干嘛用的?

企业资源计划 (ERP) 的定义 企业资源计划 (ERP) 是指组织用于管理日常业务活动的一套软件&#xff0c;这些活动包括会计、采购、项目管理、风险管理和合规性、供应链运营等等。完整的 ERP 套件还包括企业绩效管理软件&#xff0c;用于帮助企业针对财务结果制定计划和编制预算…

react-native项目安卓版本升级 compileSdkVersion 29->31

因为 react-native-ble-manager添加过程及碰到的问题 依赖 https://github.com/innoveit/react-native-ble-manager 参考&#xff1a;https://blog.csdn.net/withings/article/details/71378562 iOS 按react-native-ble-manager 文档在 【Info.plist】加了key之后能正常使用…

Vue学习Day1——小案例快速入门Vue指令

一、Vue简介 概念&#xff1a;是一套 构建用户界面 的 渐进式 框架 Vue2官网&#xff1a;https://v2.cn.vuejs.org/ 1、什么是渐进式 所谓渐进式就是循序渐进&#xff0c;不一定非得把Vue中的所有API都学完才能开发Vue&#xff0c;可以学一点开发一点 Vue的两种开发方式&…

【图像分割】基于蜣螂优化算法DBO的Otsu(大津法)多阈值电表数字图像分割 电表数字识别【Matlab代码#51】

文章目录 【可更换其他算法&#xff0c;获取资源请见文章第5节&#xff1a;资源获取】1. 原始蜣螂优化算法1.1 滚球行为1.2 跳舞行为1.3 繁殖行为1.4 偷窃行为 2. 多阈值Otsu原理3. 部分代码展示4. 仿真结果展示5. 资源获取说明 【可更换其他算法&#xff0c;获取资源请见文章第…

UDS之27服务

SecurityAccess&#xff08;0x27&#xff09;—— 安全访问 这个服务的目的是为那些限制访问&#xff0c;以及和排放、安全相关的一些服务和数据提供一些访问权限来保护数据。 此服务执行步骤如下&#xff1a; &#xff08;1&#xff09;Client请求一个种子&#xff08;Seed…