如何向现有 xBase 文件添加新字段/列/table

How to add a new field / column to an existing xBase file / table

我正在处理旧版桌面应用程序。它是使用 Alaska 软件的 Xbase++ 编写的。我只是想向现有的数据库文件添加一个新字段,但我找不到任何关于如何操作的文档。

我看过 https://harbour.github.io/doc/ , http://www.ousob.com/ng/clguide/index.php , https://en.wikibooks.org/wiki/Clipper_Tutorial:_a_Guide_to_Open_Source_Clipper(s) , http://www.alaska-software.com/support/kbase-old.cxp 运气不好。记录的所有内容都是关于从头开始创建新的 db 文件。甚至可以修改数据库文件结构吗?

cFieldExist := .f.

FOR nField := 1 TO (oDbfMaster:ProType)->( FCount() )
    IF (oDbfMaster:ProType)->( FieldName( nField ) ) == 'newFieldName'
        cFieldExist  := .t.
    ENDIF   
NEXT

IF !cFieldExist  
    //Please help me here, I want to add a the new field 'newFieldName'
ENDIF

以前我们用dBase或者Clipper打开table,复制结构到新的table:

使用数据库文件 复制结构扩展到 tempFile

在新的 table 中,每一行都是原始 table 中的一个字段。您附加一个新字段并填写字段名称、数据类型、字段长度、编号。小数等

然后使用临时文件创建一个新的数据库文件,并将旧数据库中的记录追加到其中:

从临时文件创建新文件 使用新文件 从 dbFile 添加

最后,您需要重命名旧文件,然后将新文件重命名为该名称并重新创建所有索引。