使用一个 .dbf 中的数据作为另一个 .dbf 的搜索字符串

Use data from one .dbf as search string for another one

抱歉,我什至不知道用什么词来问这个问题。请注意,我不是官方技术支持人员,也没有编写任何有问题的程序。我是那种在等待官方技术支持公司处理完所有 "Have you turned it off and on again" 票之后才尝试解决问题的人。

我们商店的主程序将所有患者数据存储在一大堆 .DBF 中。我想为所有没有记录出生日期 (pbirthdate) 的患者删除一个名为 IHI (Ihino) 的值。

不幸的是,存储大部分患者数据(包括 pbirthdate)的 patient.dbf 与存储 IHI 值的 patient.dbf 不同(HIPatientExt.dbf 中的 Ihino)。他们之间有一个共同的价值观。 patient.dbf 有一个名为 pnumber 的值,它对应于 HIPatientExt.dbf 中的 ihipatno 值(即这些数字指的是同一个患者)。

我可以访问数据库命令输入。因此,使用它,有没有一种方法可以通过使用另一个数据库中的数据进行搜索来 clear/replace 一个 dbf 中的值。我知道这可能措辞不当。换句话说,假设它们在同一个 .dbf 中,我 运行 的命令将是

repl Ihino with "" for empty(pbirthdate)

我认为它可能涉及输出所涉及的 pnumbers 的列表。我已经使用 copy to 制作了一个大的 .txt 文件,其中包含所有 pbirthdate 为空的患者的 pnumbers。但我不知道如何将这个庞大的列表用作 repl 命令的一部分。如果可能的话。

对于这个问题的空洞性质,我们深表歉意。我刚刚按照我需要的方式学习了 VFP9 命令。由于大多数 VFP 教程可能都是写在石板上的,我希望这里有人知道如何完成我正在尝试做的事情。

此致

龙虾

VFP 支持 SQL 查询、更新、添加和删除数据的命令。根据您提供的 table 和列名,我认为这样的事情应该可行。

UPDATE ;
    HIPatientExt ;  && Table to Update
SET ;
    HIPatientExt.Ihino = '' ;  && Column(s) to Update
FROM ;
    Patient, ;  && List of Tables
    HIPatientExt ;
WHERE ;
    HIPatientExt.ihipatno = Patient.pnumber ;  && How to Relate Tables
    AND EMPTY(Patient.pbirthdate)  && Filter

只需设置一个关系即可:

close all
select 2
use Patient
index on pnumber to temp
select 1
use HIPatientExt
set relation to pnumber into patient
repl Ihino with "" for empty(patient.pbirthdate)