Foxtable(狐表)用户栏目专家坐堂 → 复制表结构的通用代码


  共有12907人关注过本帖平板打印复制链接

主题:复制表结构的通用代码

帅哥哟,离线,有人找我吗?
狐狸爸爸
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
复制表结构的通用代码  发帖心情 Post By:2011/4/11 7:58:00 [只看该作者]

这是复制表结构的通用代码,如果是外部数据源,记得给ADOXTable指定数据源名称。

一些类型是没有介绍过的,例如Data.DataColumn和DataType,大家无需理会,直接套用代码即可:

 

Dim Builder As New ADOXBuilder
Dim tbl As ADOXTable
Builder.Open()
tbl = Builder.NewTable("新表名称") '创建表
With tbl
    For Each dc As Data.DataColumn In DataTables("订单").baseTable.Columns
        If DataTables("旧表名称").DataCols.Contains(dc.ColumnName)  = False Then
            Continue For
        End If
        If dc.DataType Is Gettype(String)
            If dc.maxlength > 0 And dc.MaxLength < 256 Then
                tbl.AddColumn(dc.ColumnName, ADOXType.String, dc.maxlength)
            Else
                tbl.AddColumn(dc.ColumnName, ADOXType.text)
            End If
        ElseIf dc.datatype Is Gettype(Date) Then
            tbl.AddColumn(dc.ColumnName, ADOXType.DateTime)
        ElseIf dc.datatype Is Gettype(Boolean) Then
            tbl.AddColumn(dc.ColumnName, ADOXType.Boolean)
        ElseIf dc.datatype Is Gettype(Integer) Then
            tbl.AddColumn(dc.ColumnName, ADOXType.Integer)
        ElseIf dc.datatype Is Gettype(Long) Then
            tbl.AddColumn(dc.ColumnName, ADOXType.Long)
        ElseIf dc.datatype Is Gettype(Short) Then
            tbl.AddColumn(dc.ColumnName, ADOXType.Short)
        ElseIf dc.datatype Is Gettype(Byte) Then
            tbl.AddColumn(dc.ColumnName, ADOXType.Byte)
        ElseIf dc.datatype Is Gettype(Double) Then
            tbl.AddColumn(dc.ColumnName, ADOXType.Double)
        ElseIf dc.datatype Is Gettype(Single) Then
            tbl.AddColumn(dc.ColumnName, ADOXType.Single)
        ElseIf dc.datatype Is Gettype(Decimal) Then
            tbl.AddColumn(dc.ColumnName, ADOXType.Decimal)
        End If
    Next
End With
Builder.AddTable(tbl) '增加表
Builder.Close()
MessageBox.show("生成新表成功,将重新打开项目")
syscmd.project.Open(ProjectFile)

[此贴子已经被作者于2011-4-11 7:59:25编辑过]

[本帖被加为精华]
 回到顶部
总数 15 1 2 下一页