首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在TDBGrid中停止自动编辑

在TDBGrid中停止自动编辑
EN

Stack Overflow用户
提问于 2016-05-05 16:31:10
回答 1查看 863关注 0票数 0

D5,Zeos6.6,SQLite.

我有srcAccount.AutoEdit = False;

在TDBGrid选项中,所有编辑函数都设置为False。只有选项被设置为真是指示,研磨线和标题。

我有一个表单,上面有几个TDBEdits和一个TDBGrid,上面显示了所有的活期帐户。

当用户单击新帐户的“新建”按钮时

代码语言:javascript
复制
dbedAcct.SetFocus;
tblAccounts.Insert;

如果在单击New按钮后,用户希望滚动以检查帐户名称或碰巧在网格中单击,则会保存新数据并退出插入模式。

我怎样才能阻止这种情况的发生?我需要他们能检查帐户名。

或者,这是D5的一个bug吗?如果是的话,我该如何解决这个问题呢?

我也尝试过使用SMDBGrid,它也做了同样的事情。http://www.scalabium.com/smdbgrid.htm

EN

回答 1

Stack Overflow用户

发布于 2016-05-05 16:39:35

我需要他们能检查帐户名。

如果允许用户对网格进行数据输入,则不能使用相同的网格+数据集。通过尝试同时使用网格进行数据输入和查找,您正在为自己创建这个问题。一个简单的解决方案是使用网格进行查找,并有一个单独的表单(或与网格相同的窗体上的面板)来执行插入,并且这些表单需要连接到不同的dataset实例。

问题是,在数据集插入记录的过程中,不能滚动数据集(因为您需要查找其他记录)。数据集允许滚动所需的dsBrowse状态和插入所需的dsInsert状态是相互排斥的。试图滚动数据集将自动发布挂起的插入,正如您已经找到的。

因此,您实际上需要两个dataset实例,一个用于查找,一个用于插入。如果您使用两个客户端ClientDataSet实例,它可能非常简单,因为您可以使用CDS的数据属性( CDS's data property,cdsLookup.Data := cdsLive.Data)将数据从一个轻松地复制到另一个实例,因此为查找创建一个本地副本非常简单。或者,如果您愿意,可以使用克隆游标-请参阅http://edn.embarcadero.com/article/29416

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

https://stackoverflow.com/questions/37055674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档