首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Delphi控件中的数据编辑及其底层数据集的更新

Delphi控件中的数据编辑及其底层数据集的更新
EN

Stack Overflow用户
提问于 2014-12-10 02:46:33
回答 2查看 2.2K关注 0票数 0

在embarcadero docwiki中,它说:

在除TDBGrid之外的所有数据控件中,在修改字段时,当您从控件中单击时,修改将被复制到基础数据集。如果在从字段中单击Tab之前按下Esc,则数据控件将放弃修改,字段的值将恢复到进行任何修改之前的值。在Vcl.DBGrids.TDBGrid中,当您移动到另一个记录时,修改将被发布为。

我正在使用TDBGrid (以及其他数据控件),我发现他的更新行为是非常不自然的。我希望在用户点击"ENTER“时进行更新,而不仅仅是当用户”移动到另一个记录“或”从控件中移出Tab“时。

我的问题是我怎么能改变这个?有什么想法吗?

提前谢谢你。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-10 04:35:25

我认为您可能混淆了两件事,即从数据库感知控件(如TDBEdits )转发回相应的dataset TFields对象的更改,以及从字段回发到dataset数据库数据的字段值的更改。

这就是为什么我在一条评论中建议您应该在表单中添加一个TDBNavigator。连接到与您的数据库感知控件相同的DataSource,它将在DataSet处于编辑状态时启用其保存和取消按钮来显示DataSet的状态,就像用户更改其中一个控件的内容时所发生的那样。顺便说一句,只有当DataSource的AutoEdit属性被设置为True时才会发生这种状态变化(默认情况下,它是True,因此很容易忽略正在发生的事情,并且没有意识到如果您愿意的话可以阻止它)。

TDBGrid稍有不同的原因如下:

  • 它后面的TDataSet被设计成有一个逻辑游标,它可以从一个记录移动到另一个记录,但一次只能访问一个记录--关联的TFields包含游标当前所在的记录的数据值。
  • 因此,必须通过滚动dataset游标来填充DBGrid。
  • 通常,DataSet处于dsBrowse状态(参见OLH中的TDataSetState )。当被告知滚动时,如果其当前状态为dsEdit或dsInsert (例如,由于用户在GUI中的操作),它会将对当前记录的任何更改发回数据集,并恢复到dsBrowse状态,以便能够按指示滚动。
  • 这种后滚动行为并不能让用户满意,因为DBGrid“同时”从用户的pov中提供了对多个记录的GUI访问。因为,正如您已经注意到的,用户可能会更改一条记录(通过网格中的就地编辑或通过DBEdits等)并立即移到另一行。事实上,就编辑网格中的位置而言,您的最佳选择通常只是不允许它,因为否则用户可以更改一个记录中的某些内容,然后意外地或有意地单击另一个网格行,后者将上一行中的更改发布到dataset,而不给用户取消它的机会。

海事组织,您不应该让OnExit处理程序、焦点更改事件等来对数据集进行操作--使用它们来防止用户用数据更改(未决)和类似的事情来关闭表单是很好的,但是您应该要求用户执行一个明确的操作来确定是保存还是取消挂起的更改。不尝试直接从OnExit对数据集进行操作的原因之一是,通常有必要在GUI中对用户更改/添加的数据执行数据验证检查,这本身可能需要重点更改,以指导用户进行任何必要的纠正操作。

票数 5
EN

Stack Overflow用户

发布于 2014-12-10 04:30:55

在网格的OnExit中添加一个Post语句?

我也总是在我的OnFormCloseQuery事件中放置一系列Post语句。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27399059

复制
相关文章
openstack swift 的UI客户端
了解一下cloudyberry提供的openstack swift客户端,分为收费版和免费版,主要试用了一下免费版,做的还是蛮精致的,很大程度上方便了我们上传、下载、浏览swift上的文件,非常好用,在这里推荐一下
周小董
2019/03/25
1.4K1
openstack swift 的UI客户端
【openstack】swift
[root@localhost ~]# yum install -y iaas-xiandian
Xiongan-桃子
2023/06/10
3990
【openstack】swift
OpenStack Swift组件介绍
OpenStack Swift是一个分布式对象存储系统,它可以为大规模的数据存储提供高可用性、可扩展性和数据安全性。Swift是OpenStack的一个核心组件,它允许用户将大量的数据存储在云上,并且可以随时访问、检索和管理这些数据。
堕落飞鸟
2023/03/28
2.6K0
如何针对不同的数据需求构建OpenStack存储云
OpenStack的存储组件—Cinder和Swift—让你在你的私有云里构建块和对象的存储系统。Chris Evans对这些技术给出了一些深入的阐述。 在向web规模计算的转型中,虚拟化,x86架构的迁移和DevOps的快速应用这样的关键技术已经转变了整个IT的生态系统。随着部署到IT的系统数量的持续增大,下一个挑战将变成以更有效和高效的方式来编排和管理计算,存储和网络资源,为私有云提供服务。 OpenStack是一个开源的云计算平台项目,最初是由NASA和Rackspace Hosting在2010年联
静一
2018/03/21
2K0
Linux下删除大量文件
➜ test for i in $(seq 1 500000);do echo text >>$i.txt;done
小小科
2019/10/12
9.4K0
杨校老师课堂之云计算私有云OpenStack框架快速搭建
(1)准备一台能够安装OpenStack的实验用计算机,建议使用VMware虚拟机。 (2)该计算机应安装CentOS 7,我这是基于CentOS 7.6版本。 (3)禁用防火墙与SELinux。
杨校
2022/05/11
1.5K0
杨校老师课堂之云计算私有云OpenStack框架快速搭建
【重识云原生】第三章云存储3.4节——OpenStack Swift 对象存储方案
OpenStack Swift 开源项目提供了弹性可伸缩、高可用的分布式对象存储服务,适合存储大规模非结构化数据。本文将深入介绍 Swift 的基本设计原理、对称式的系统架构和 RESTful API。
江中散人_Jun
2022/04/11
3.1K0
【重识云原生】第三章云存储3.4节——OpenStack Swift 对象存储方案
openstack安装(40)
OpenStack对象存储服务(swift) 通过一系列: REST API 一起提供对象存储和恢复服务。在布署对象存储前,你的环境当中必须至少包括认证服务(keystone)。
陈不成i
2021/05/07
4390
OpenStack初学者指南:基础知识
OpenStack? OpenStack 是一个开源云计算平台,可用于构建公共云和私有云。可以编排各种技术组件以提供构建支持任何用例和规模的云服务的能力。 曾几何时,RackSpace进入了云服务行业
神话_Tyrannosaurus
2018/01/02
2K0
OpenStack初学者指南:基础知识
Linux下删除大量文件
Linux下删除大量文件 首先建立50万个文件 ➜ test for i in $(seq 1 500000);do echo text >>$i.txt;done 1. rm ➜ tes
小小科
2018/05/02
14.4K0
Linux下删除大量文件
/var/spool/postfix/maildrop/ 中有大量的文件
今天查看硬盘剩余的容量,发现‘/’目录下占用了大量的空间;可我在这个目录下面没有放什么东西;仔细查看在/var/spool/postfix/maildrop/ 中发现了大量的文件。怎么会有这么多的文件呢,先删除。
双面人
2019/04/10
1.7K0
Linux VPS使用MinIO Client客户端实时同步备份文件
说明:博主很久前介绍过MinIO服务器,一个开源的轻量级对象存储服务,具体查看→传送门,用起来挺不错的,搭建也非常方便,而这里要说的其实是MinIO服务器是的一个客户端MinIO Client,主要的功能就是可以自动监听文件夹,然后实时同步到远程的MinIO服务器,也支持同步到Amazon S3、Google云存储,同样的安装十分简单,我们可以拿来同步备份博客或者其他数据文件。
子润先生
2021/05/28
7K0
云存储硬核技术内幕——(17) 极乐鸟
在上期提到,对象存储作为低成本,接口通用开放,可远程访问的一种新型云存储形式,得到了广泛的应用,而AWS的S3(Simple Storage Service)也成为了对象存储的事实标准。
用户8289326
2022/08/04
4800
云存储硬核技术内幕——(17) 极乐鸟
rsync自动同步_文件实时同步
  rsync(Remote Sync,远程同步)是一款开源的快速增量备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,并保持链接和权限,且采用优化的同步算法,传输前执行压缩,因此非常适用于异地备份、镜像服务器等应用。 支持本地复制,或者与其他 SSH、rsync 主机同步。 官方网站:http://rsync.samba.org
全栈程序员站长
2022/11/04
4.4K0
rsync自动同步_文件实时同步
聊一聊分布式对象存储解决方案
OSS(Object Storage Service)俗称对象存储,主要提供图片、文档、音频、视频等二进制文件的海量存储功能。目前除了公有云提供对象存储服务外,一般私有云比较关心一些开源的分布式对象存储解决方案,本文列举了一些常见的技术方案供参考。
大数据技术架构
2019/08/16
6.9K0
聊一聊分布式对象存储解决方案
文件同步rsync
rsync 远程同步 rsync(remote sync) 备份 完全备份 增量备份(差异备份) rsync 优点: 支持增量备份 选择性保持:符号链接,硬链接,文件属性,权限及时间等。 传输前执行压缩,适合于异地备份,镜像服务器等应用。 使用ssh作为传输端口,sftp,ssh,xshell 。 与scp区别: 当文件数据很大时候: scp 的效率太低,(scp是先统计信息,需要多少空间后,在复制) rsync 边复制,边比较,边统计 基础知识 端口:873 模式: 如果直接使用命令
若与
2018/04/25
3.8K0
文件同步rsync
Python同步文件
最近在做Python开发,研究了技术大牛写的脚本,在他的脚本上做了优化。优化脚本已在做过测试还是挺好用的,如果你觉得不错就直接拿到生产用吧。
py3study
2020/01/06
1K0
swift 基本文件读写
//查找目录 返回数组类型 //DocumentDirectory文档目录 var sp=NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.AllDomainsMask, true)//true代表全路径 if sp.count > 0 { //声明一个路径,创建
用户7108768
2021/10/31
7190
关于文件同步中单向同步和双向同步
文件同步是确保两个或多个位置包含相同的最新文件的过程。如果您从一个位置添加,更改或删除文件,则同步过程将在另一位置添加,更改或删除相应的文件。同步可以是“ 双向 ”或“ 单向 ”。双向同步(又名双向同步或双向同步):
镭速
2023/04/03
2.9K0
rsync快速删除大量小文件
有时候一个文件中有几十万个甚至更多子文件的情况下,就算这个文件不大,可能只有几G的情况下,用rm -rf 仍然很慢,需要等很久,而且占用大量的系统资源。一个比较快速的方法是用rsync同步。
生信编程日常
2020/04/01
3K0

相似问题

为android应用程序编写伪代码

45

android为编写代码错误

23

您能帮忙编写这个汇编语言代码吗?

33

为Android编写"Simon“;难以暂停代码

23

为android应用程序编写代理

10
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文