delphi - 检查记录字段是否唯一(DBTables.TBDEDataSet.Lookup 方法)

标签 delphi delphi-xe2

我想检查字段“number_field”中的记录值是否唯一,因此我在 number_field 中查找具有相同值的记录。我使用 Lookup 方法,因为我正在编辑记录:

id := SomeTable.Lookup('DOCUMENT_NUMBER', CurrentDocNumber, 'ID');

当然,在某些情况下它会给我当前的记录 ID。如何跳过编辑记录?

编辑:我不想禁止将具有相同编号的文档保存到数据库 - 我只是想通知用户他所写的编号已经在系统上,并让他决定要做什么

Edit2:我仅在加载的数据中操作 - 无数据库

最佳答案

您可以使用 TQuery 并检查数据库中是否有该记录:

从 my_table 中选择 count(*),其中 DOCUMENT_NUMBER=CurrentDocNumber

编辑: 使用 TDataSet 也可以完成同样的操作。您可以select countselect * 来测试RecordCount > 0

编辑2: 公平地说: 请注意,如果是这种情况我仅在加载的数据中操作 - 无数据库(这是您接受我的答案后的更新),那么我的解决方案将不起作用,因为记录尚未发布到实时数据库。尽管如此,如果有超过 1 个客户端连接并写入数据库,您必须使用此查询。

关于delphi - 检查记录字段是否唯一(DBTables.TBDEDataSet.Lookup 方法),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8741265/

相关文章:

delphi - Delphi中使用Frames进行GUI信息隐藏

Delphi - CompareStr 和 CompareString 之间的差异

delphi - zip 文件/文件夹的第三方组件

delphi - 为什么不显示输出?

delphi - 如何在 Delphi 2006 的设计时本地化 Developer Express VCL 组件?

Delphi if else if else 语句不起作用 "Type of expression must be BOOLEAN"

delphi - ZDecompressStream() 导致内存泄漏

multithreading - Delphi并行编程-多线程速度慢

ios - Delphi XE2 应用程序在 IPAD 上没有响应

delphi - Delphi 中模块化编程的最佳方法