如何将新字段/列添加到现有的 xBase 文件/表中



我正在开发一个遗留的桌面应用程序。它是使用阿拉斯加软件的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 ,http://www.alaska-software.com/support/kbase-old.cxp 没有任何运气。所有记录的内容都是关于从头开始创建一个新的数据库文件。甚至可以修改数据库文件结构吗?

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 我们用来打开表,将结构复制到新表中:

使用数据库文件复制到临时文件

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

然后使用 temp 文件创建一个新的 db 文件,并将记录从旧 db 附加到其中:

从临时文件创建新文件使用新文件从数据库文件追加

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

最新更新