delphi TAdoQuery组件的close方法可能导致”列名无效“错误

1,故障现象

一次程序运行,出现如下错误:

对应代码如下:

2,故障分析

Query_alert_2的语句在查询分析器中单独执行是正常的。排除语句出错。

如果注解掉Query_alert_1,则错误变为Query_alert_3执行出错:

2019-07-11 09:32:26 Query_alert_1执行完毕

2019-07-11 09:32:27 Query_alert_2执行完毕

2019-07-11 09:32:42 Do_Update_Statis出错:列名 ‘bat_pos1‘ 无效。

如果注解掉Query_alert_1、Query_alert_2,则Query_alert_3执行正常。

可见,出现错误是delphi内数据库组件产生的,与数据库执行无关。

3,故障原因及解决

将执行过程中TADOQuery的close方法改为 “active := False”,如下:

结果多条SQL语句顺序执行正常。

4,总结

网上查询TADOQuery的close方法和设置属性“active := False”有何区别,发现大部分是说,query.close和query.active:=false 意义一样
按ctrl 点击close 会发现 close 就是设置active为false

那为何实际代码执行效果却不一样呢?令人费解。看来坑还是不少的。

原文地址:https://www.cnblogs.com/jackkwok/p/11169008.html

时间: 2024-08-29 21:13:47

delphi TAdoQuery组件的close方法可能导致”列名无效“错误的相关文章

DELPHI控件:DBLookupComboBOX组件的使用方法

在许多数据表中,数据是以代码方式存放的,如在班级编码数据表tB03(表5.5)中,系部字段TB0309采用编码方式存放,系部真实名称则存放在系部编码表TB06.使用代码的好处是,用户可在编码表TB06中改变TB0602字段的系部名称,而不会影响使用该编码的其他数据表(如TB03)的运行6其缺点是当用户输人数据编码时,必须查询编码所表示的含义,如"OO"代表"基础部"."1 O"表示"机械系"等,这给数据录入带来很大的麻烦.最好

Delphi的组件读写机制

Delphi的组件读写机制(一) 一.流式对象(Stream)和读写对象(Filer)的介绍在面向对象程序设计中,对象式数据管理占有很重要的地位.在Delphi中,对对象式数据管理的支持方式是其一大特色. Delphi是一个面向对象的可视化设计与面向对象的语言相结合的集成开发环境.Delphi的核心是组件.组件是对象的一种.Delphi应用程序完全是由组件来构造的,因此开发高性能的Delphi应用程序必然会涉及对象式数据管理技术. 对象式数据管理包括两方面的内容:● 用对象来管理数据● 对各类数

delphi TTreeView组件遍历磁盘目录

TTreeView组件遍历磁盘目录 实例说明 TTreeView组件是一个以分枝结构或者说树状结构显示数据的组件,以该组件显示数据具有较好的等级关系和逻辑层次,并且易于操作.在组件中显示的数据结构与系统中目录的结构非常相似,所以本例使用该组件设计一个磁盘目录查看工具.运行本例,在窗口右边选择目录或路径就可以在TTreeView组件中列出所有选择目录中的子目录和文件.实例运行效果如图1所示. 图1  TTreeView组件遍历磁盘目录 思路与技术 磁盘中的目录结构就像TTreeView组件中显示的

ASM(四) 利用Method 组件动态注入方法逻辑

这篇继续结合例子来深入了解下Method组件动态变更方法字节码的实现.通过前面一篇,知道ClassVisitor 的visitMethod()方法可以返回一个MethodVisitor的实例.那么我们也基本可以知道,同ClassVisitor改变类成员一样,MethodVIsistor如果需要改变方法成员,注入逻辑,也可以通过继承MethodVisitor,来编写一个MethodXXXAdapter来实现对于方法逻辑的注入.通过下面的两个例子来介绍下无状态注入和有状态注入方法逻辑的实现.例子主要

Delphi IdHttp组件+IdHttpServer组件实现文件下载服务

http://blog.csdn.net/xxkku521/article/details/16864759 Delphi IdHttp组件+IdHttpServer组件实现文件下载服务 2013-11-21 18:15 2624人阅读 评论(0) 收藏 举报  分类: DELPHI(10)  版权声明:本文为博主原创文章,未经博主允许不得转载. [delphi] view plain copy uses idhttp,IdHTTPServer; //idhttp组件提交下载请求 procedu

Unity 为自己组件添加公共方法

为什么需要跟你的组件添加公共方法呢? 留一条后路嘛,万一你那天想起要给全部的组件添加一个方法. 此时我只能告诉你慢慢修改吧累死你 子组件:A ,父组件:B继承方式:  A -> B –> MonoBehaviour.  此时你在B中写入方法(简单吧) using UnityEngine; using System.Collections; namespace MyNamespace { public class MyCompoment : MonoBehaviour { //公共方法 } }

用Delphi画圆角Panel的方法(使用CreateRoundRectRgn创造区域,SetWindowRgn显示指定区域)

用Delphi画圆角Panel的方法: procedure TForm1.Button5Click(Sender: TObject);var fhr :Thandle;beginfhr:=CreateRoundRectRgn(0,0,panel1.width,panel1.height,4,4);SetWindowRgn(panel1.handle,fhr,true);end; Panel的BevelInner 及 BevelOuter 最好设成 bvNone http://blog.csdn.

Delphi异常处理的基本原则和方法

一.异常的来源. 在Delphi的应用程序中,下列的情况都比较有可能产生异常.(1)文件处理(2)内存分配(3)Windows资源(4)运行时创建对象和窗体(5)硬件和操作系统冲突 二.异常的处理. (1)try…except…end;在try体内的代码发生异常时,系统将转向except部分进行异常的处理.这是Delphi处理异常的最基本的方式之一. (2)try…finally…end;这种异常处理结构一般用于保护Windows的资源分配等方面,它确保了无论try体内的代码是否发生异常,都需要

如何在cocos2d-x中使用ECS(实体-组件-系统)架构方法开发一个游戏?

引言 在我的博客中,我曾经翻译了几篇关于ECS的文章.这些文章都是来自于Game Development网站.如果你对这个架构方式还不是很了解的话,欢迎阅读理解 组件-实体-系统和实现 组件-实体-系统. 我发现这个架构方式,是在浏览GameDev上的文章的时候了解到的.很久以前,就知道了有这么个架构方法,只是一直没有机会自己实践下.这一次,我就抽空,根据网上对ECS系统的讨论,采用了一种实现方法,来实现一个. 我很喜欢做游戏,所以同样的,还是用游戏实例来实践这个架构方法.我将会采用cocos2