递归数据库查看

时间:2019-04-04 09:10:13

标签: visual-foxpro

我有这种情况。从表开始,我必须检查所有与键匹配的记录。如果找到记录,则必须使用第一个表中的键检查另一个表,依此类推,在五个级别上少花点功夫。有一种方法可以递归地执行此操作,还是我必须“手动”编写所有代码?我使用的语言是Visual Fox Pro。如果这不可能,那么是否至少可以使用递归来填充树状视图?

3 个答案:

答案 0 :(得分:0)

您可以设置表之间的关系。例如:

USE table_1.dbf IN 0 SHARED
USE table_2.dbf IN 0 SHARED
SET ORDER TO TAG key_field OF table_2.cdx IN table_2
SET RELATION TO key_field INTO table_2 ADDITIVE IN table_1

前两个命令打开table_1和table_2。然后,您必须设置table_2的顺序/索引。如果您没有关键字段的索引,那么它将无法正常工作。最后一条命令在键字段上设置两个表之间的关系。

从这里您可以浏览表,并且table_2的记录将根据table_1的键字段进行过滤。希望这会有所帮助。

答案 1 :(得分:0)

如果表具有类似的结构,或者您只需要查看几个字段,则可以编写一个递归例程,该例程接收表的名称,要检查的键以及可能需要作为参数检查的字段。我想最棘手的部分是知道要传递给下一个呼叫的内容。

我认为我至少在不了解某些表结构的情况下也无法提供更多建议。

答案 2 :(得分:0)

很抱歉回答得这么晚,但是问题当然是递归并不是一个可行的解决方案,因为我不得不在多个表中进行搜索。因此,我通过在所需的表中进行简单的两级搜索来解决该问题。

非常感谢您的帮助,对于如此晚的答复,我们再次表示歉意。