0

熟悉 COBOL 和那个时代的语言的人可能还记得写过这种风格的代码

While records exist in table A
   Read a record from table A
   If some condition
      Read records in table B until match found
      If some condition in record B
         Read a record in table C
         repeat ad nauseum

我们公司刚刚开始讨论将我们的 COBOL 代码库更新为更现代的东西,如果我们可以继续使用记录级访问,任何转换都会容易得多,至少在过渡期间是这样。用一种新语言重写所有内容并将所有内容转换为 SQL 可能需要承担的工作量太大。

是否有任何现代语言/数据库组合可以让我们对数据进行记录级访问?

4

1 回答 1

0

答案取决于您的具体情况。大多数现代语言都应该提供某种形式的记录级访问。这是 Python 中的一个示例,假设数据文件是 Cobol 所说的“组织行顺序”。请注意,语法与您的示例没有太大不同。根据数据文件的结构,您可能需要使用类似 tableB.seek(0) 的东西在文件开头重新开始搜索。

tableA = open('tableA.txt', 'r')
tableB = open('tableB.txt', 'r')
tableC = open('tableC.txt', 'r')

for rowA in tableA:
    if some_Condition():
        for rowB in tableB:
            if rowA_rowB_match():
                if some_condition_in_record_B():
                    for rowC in tableC:
                        repeat ad nauseum
tableA.close()
tableB.close()
tableC.close()

def some_Condition():
    if x:
        return True
    else:
        return False

etc.
于 2012-08-29T23:46:17.047 回答