我需要在VB6中使用DAO将一些列添加到FoxPro 2.6 DBF文件中。
如果数据在.MDB文件中,我知道这可行。这是我用于.MDB的代码片段:
Set tdfCoParms = mDBParms.TableDefs(CoParms)
tdfCoParms.Fields.Append tdfCoParms.CreateField("CoName", dbText, 30)
我不确定这是否适用于FoxPro。 (我还没试过)
这可能吗?有一种可能的选择 - 我知道它可以工作,但这不太方便 - 从一个正确结构的空表开始,然后使用SELECT的INSERT从现有的填充文件中复制记录。 / p>
答案 0 :(得分:0)
谢谢你@wqw,因为你的解决方案当然有效。
这是我的第一个选择,有效:
Dim dbsWork As Database
Dim qrd As DAO.QueryDef
Dim szSqlString As String
Set dbsWork = OpenDatabase(szWorkDir, False, False, "FoxPro 2.5")
Dim szFieldList As String
szFieldList = "field1, field2, field3"
szSqlString = "INSERT INTO test SELECT " & szFieldList & " FROM link"
Set qrd = dbsWork.CreateQueryDef("", szSqlString)
qrd.Execute
Set qrd = Nothing
Set dbsWork = Nothing
But the following based on @wqw's suggestion is much better, as no predefined file is required
Private Sub Test1()
Dim dbsWork As Database
Dim qrd As DAO.QueryDef
Dim szSqlString As String
Set dbsWork = OpenDatabase(MyDataBasPath, False, False, "FoxPro 2.5")
Dim szFieldList As String
szSqlString = "ALTER TABLE work.dbf ADD COLUMN fred VARCHAR(30)"
Set qrd = dbsWork.CreateQueryDef("", szSqlString)
qrd.Execute
Set qrd = Nothing
Set dbsWork = Nothing
End Sub