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 に答える