Project A.exe raised exception class EAccessViolation 项目引发异常类EAccessViolation,“模块‘ 地址访问违规”的纠错

本文主要是介绍Project A.exe raised exception class EAccessViolation 项目引发异常类EAccessViolation,“模块‘ 地址访问违规”的纠错,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

     一、问题表现

      1、打开二个主副关联数据表,由副表打印带图像表格后,点击主表(打开副表),出现下列错误:

      Project Best.exe raised exception class EAccessViolation with message 'Access violation at address 00402492 in module 'best.exe'.

      即:

      项目Best.exe引发异常类EAccessViolation,消息为“模块' Best.exe '中地址00402492的访问违 规”。

      二、检查代码

      1、出错代码行

  sName:=ClientDataSet1.FieldByName('姓名').AsString;

       2、打印代码

procedure TCertificate_Old_Frm.GridppReport8Initialize(Sender: TObject);
var S,FileName: string;
beginGridppReport8.LoadFromFile( ReportPath+'资格证书_身份证.grf' );with ClientDataSet2 dobeginFileName:=DBEdit1.text;if FileName<>'' thenbeginGridppReport8.ControlByName('Photo1').AsPictureBox.LoadFromFile(FileName);end;FileName:=DBEdit2.text;if FileName<>'' thenbeginGridppReport8.ControlByName('Photo2').AsPictureBox.LoadFromFile(FileName);end;S:=FieldByName('姓名').AsString+'(居民身份证),'+FieldByName('证书编码').AsString+',与原件一致。';GR1:=GridppReport8.AddParameter('说明1',grptString);GridppReport8.ParameterByName('说明1').AsString:=S;end;
end;

      三、分析原因

      1、从原代码看。原则上是无错误的。都能单独执行,无错误;

      2、执行打印代码,再执行读取 sName:=ClientDataSet1.FieldByName('姓名').AsString;

      3、地址的冲突,主要是引用时,地址的紊乱,造成这个结果的一个主要原因,就是VCL参数相同,引起的,如设置局部变量FileName,但是在VCL是,往往多个子参数是FileName,因此,顺着这个思路,在出现错误代码开始,向前推,检查代码。试着变化代码,测试是否出错。

      将打印代码中的局部变量FileName,改成要sFileMane。问题解决。

     四、思考

     在使用参数时,不要和Delphi的VCL使用的参数、变量、属性名称一致,在使用与VCL常用的参数、变量、属性名称相似时,要通过添加前缀或后缀的方法,改变名称,如: sFileName 或 FileName_1。养成良好习惯,可以避免一些,不必要的麻烦和出错。

      这里,关键是参数地址的冲突,在Delphi中,自身使用的一些参数名称上的冲突,时常出现。这些,往往是Delphi编译时的不严谨造成的,但作为编程者,应当规避。

这篇关于Project A.exe raised exception class EAccessViolation 项目引发异常类EAccessViolation,“模块‘ 地址访问违规”的纠错的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/796499

相关文章

Python的time模块一些常用功能(各种与时间相关的函数)

《Python的time模块一些常用功能(各种与时间相关的函数)》Python的time模块提供了各种与时间相关的函数,包括获取当前时间、处理时间间隔、执行时间测量等,:本文主要介绍Python的... 目录1. 获取当前时间2. 时间格式化3. 延时执行4. 时间戳运算5. 计算代码执行时间6. 转换为指

关于MongoDB图片URL存储异常问题以及解决

《关于MongoDB图片URL存储异常问题以及解决》:本文主要介绍关于MongoDB图片URL存储异常问题以及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录MongoDB图片URL存储异常问题项目场景问题描述原因分析解决方案预防措施js总结MongoDB图

SpringBoot项目中报错The field screenShot exceeds its maximum permitted size of 1048576 bytes.的问题及解决

《SpringBoot项目中报错ThefieldscreenShotexceedsitsmaximumpermittedsizeof1048576bytes.的问题及解决》这篇文章... 目录项目场景问题描述原因分析解决方案总结项目场景javascript提示:项目相关背景:项目场景:基于Spring

解决Maven项目idea找不到本地仓库jar包问题以及使用mvn install:install-file

《解决Maven项目idea找不到本地仓库jar包问题以及使用mvninstall:install-file》:本文主要介绍解决Maven项目idea找不到本地仓库jar包问题以及使用mvnin... 目录Maven项目idea找不到本地仓库jar包以及使用mvn install:install-file基

一文详解Java异常处理你都了解哪些知识

《一文详解Java异常处理你都了解哪些知识》:本文主要介绍Java异常处理的相关资料,包括异常的分类、捕获和处理异常的语法、常见的异常类型以及自定义异常的实现,文中通过代码介绍的非常详细,需要的朋... 目录前言一、什么是异常二、异常的分类2.1 受检异常2.2 非受检异常三、异常处理的语法3.1 try-

Python正则表达式语法及re模块中的常用函数详解

《Python正则表达式语法及re模块中的常用函数详解》这篇文章主要给大家介绍了关于Python正则表达式语法及re模块中常用函数的相关资料,正则表达式是一种强大的字符串处理工具,可以用于匹配、切分、... 目录概念、作用和步骤语法re模块中的常用函数总结 概念、作用和步骤概念: 本身也是一个字符串,其中

Python中的getopt模块用法小结

《Python中的getopt模块用法小结》getopt.getopt()函数是Python中用于解析命令行参数的标准库函数,该函数可以从命令行中提取选项和参数,并对它们进行处理,本文详细介绍了Pyt... 目录getopt模块介绍getopt.getopt函数的介绍getopt模块的常用用法getopt模

usb接口驱动异常问题常用解决方案

《usb接口驱动异常问题常用解决方案》当遇到USB接口驱动异常时,可以通过多种方法来解决,其中主要就包括重装USB控制器、禁用USB选择性暂停设置、更新或安装新的主板驱动等... usb接口驱动异常怎么办,USB接口驱动异常是常见问题,通常由驱动损坏、系统更新冲突、硬件故障或电源管理设置导致。以下是常用解决

springboot项目如何开启https服务

《springboot项目如何开启https服务》:本文主要介绍springboot项目如何开启https服务方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录springboot项目开启https服务1. 生成SSL证书密钥库使用keytool生成自签名证书将

将Java程序打包成EXE文件的实现方式

《将Java程序打包成EXE文件的实现方式》:本文主要介绍将Java程序打包成EXE文件的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录如何将Java程序编程打包成EXE文件1.准备Java程序2.生成JAR包3.选择并安装打包工具4.配置Launch4