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

时间:2019-01-25 13:29:44

标签: xbase clipper

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

我看过 https://harbour.github.io/doc/http://www.ousob.com/ng/clguide/index.phphttps://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

1 个答案:

答案 0 :(得分:1)

过去,我们使用dBase或Clipper打开表,将结构复制到新表中:

使用dbFile 扩展到tempFile的复制结构

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

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

从tempFile创建newFile 使用newFile 从dbFile追加

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