メインコンテンツまでスキップ
バージョン: 20 R7 BETA

REGENERATE MISSING TABLE

REGENERATE MISSING TABLE ( tableName )

引数説明
tableNameText再生成する、失われたテーブルの名称

このコマンドはスレッドセーフではないため、プリエンプティブなコードには使えません。

説明

REGENERATE MISSING TABLE コマンドは tableName引数に渡された名前の失われたテーブルを再構築します。失われたテーブルが再構築されると、ストラクチャエディタにそれらが現れ、データに再びアクセスできるようになります。

失われたテーブルとは、データファイル中にデータがあるにもかかわらず、ストラクチャレベルに存在しないテーブルのことです。新しいGET MISSING TABLE NAMESコマンドを使用して、アプリケーション中に存在するかもしれない失われたテーブルを識別できます。

tableNameで指定されたテーブルがデータベースの失われたテーブルでない場合、コマンドはなにも行いません。

例題

以下のメソッドはデータベース中に存在するかもしれないすべての失われたテーブルを再生成します:

 ARRAY TEXT($arrMissingTables;0)
 GET MISSING TABLE NAMES($arrMissingTables)
 $SizeArray:=Size of array($arrMissingTables)
 If($SizeArray#0)
  // 配列をデータベース中のテーブル名で埋める
    ARRAY TEXT(arrTables;Last table number)
    If(Last table number>0) //テーブルが実際に存在すれば
       For($vlTables;Size of array(arrTables);1;-1)
          If(Is table number valid($vlTables))
             arrTables{$vlTables}:=Table name($vlTables)
          Else
             DELETE FROM ARRAY(arrTables;$vlTables)
          End if
       End for
    End if
    For($i;1;$SizeArray)
       If(Find in array(arrTables;$arrMissingTables{$i})=-1)
          CONFIRM("テーブルを再生しますか: "+$arrMissingTables{$i}+"?")
          If(OK=1)
             REGENERATE MISSING TABLE($arrMissingTables{$i})
          End if
       Else
          ALERT("テーブル"+$arrMissingTables{$i}+" を再生できません。データベース中に同じ名前のテーブルがあります。")
       End if
    End for
 Else
    ALERT("再生するテーブルがありません。")
 End if

参照

GET MISSING TABLE NAMES