以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  这个错误是哪里而来?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=158414)

--  作者:blackzhu
--  发布时间:2020/11/19 11:23:00
--  这个错误是哪里而来?
Dim dr As DataRow
If Vars("GUID") <> "" Then
    dr = DataTables("实体表").Find("GUID=\'" & Vars("GUID") & "\'")
    If dr IsNot Nothing Then
        Dim Builder As New ADOXBuilder("服务器")
        Builder.Open() \'打开ADOXBuilder
        With Builder.Tables(dr("表名"))
            .DeleteColumn(dr("列名"))
        End With
        Builder.Close() \'关闭ADOXBuilder
        dr.Delete()
    End If
End If
If  DataTables("实体表").HasChanges Then
    DataTables("实体表").Save()
    MessageBox.Show("已经删除该列")
End If
Syscmd.Project.Open(ProjectFile)



我用动态修改表结构的方法,来删除和新增列, 执行成功,但是每次Syscmd.Project.Open(ProjectFile)后 报了一个错误:

此行已从表中移除并且没有任何数据。BeginEdit() 将允许在此行中创建新数据

这个是怎么回事呢?

--  作者:有点蓝
--  发布时间:2020/11/19 11:40:00
--  
代码在按钮里?

加一句
……
End If
e.cancel = true
Syscmd.Project.Open(ProjectFile)

--  作者:blackzhu
--  发布时间:2020/11/19 11:40:00
--  
奇怪了,重启项目就报错,但是关闭后打开是不会有任何问题
--  作者:有点蓝
--  发布时间:2020/11/19 11:52:00
--  
foxtable更新到最新版,如果还有问题上传实例说明
--  作者:逛逛
--  发布时间:2020/11/19 12:16:00
--  
重启前加个Syscmd.Project.Save()试试
--  作者:blackzhu
--  发布时间:2020/11/19 12:29:00
--  
啥都不好使,算了,就用关闭手工打开的方法吧