我想检查字段“number_field”中的记录值是否唯一,因此我在 number_field 中查找具有相同值的记录。我使用 Lookup 方法,因为我正在编辑记录:
id := SomeTable.Lookup('DOCUMENT_NUMBER', CurrentDocNumber, 'ID');
当然,在某些情况下它会给我当前的记录 ID。如何跳过编辑记录?
编辑:我不想禁止将具有相同编号的文档保存到数据库 - 我只是想通知用户他所写的编号已经在系统上,并让他决定要做什么
Edit2:我仅在加载的数据中操作 - 无数据库
最佳答案
您可以使用 TQuery 并检查数据库中是否有该记录:
从 my_table 中选择 count(*),其中 DOCUMENT_NUMBER=CurrentDocNumber
编辑:
使用 TDataSet 也可以完成同样的操作。您可以select count
或select *
来测试RecordCount > 0
编辑2:
公平地说:
请注意,如果是这种情况我仅在加载的数据中操作 - 无数据库
(这是您接受我的答案后的更新),那么我的解决方案将不起作用,因为记录尚未发布到实时数据库。尽管如此,如果有超过 1 个客户端连接并写入数据库,您必须使用此查询。
关于delphi - 检查记录字段是否唯一(DBTables.TBDEDataSet.Lookup 方法),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8741265/