Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
动态创建表和列
ADOXBuilder用于动态创建表和列。
ADOXBuilder对内部数据源、以及Access和SQL Server格式的外部数据源有效,对于Oracle格式的外部数据源无效。
动态增加列
在命令窗口执行下面的代码:
Dim
Builder As New ADOXBuilder
执行后重新打开项目,会发现表A已经增加了上述列。
ADOXType的可选值包括:
String: 字符型
DateTime:日期时间型
Boolean: 逻辑型
Text: 备注型
Integer: 整数型
Long: 长整数型,注意内部表和Access数据源不支持此类型
Short: 短整数型
Byte: 微整数型
Double: 双精度小数型
Single: 单精度小数型
Decimal 高精度小数型
动态删除列
在命令窗口执行下面的代码:
Dim
Builder As New ADOXBuilder
执行后重新打开项目,会发现表A的日期和产品列已经被删除。
动态增加表
在命令窗口执行下面的代码:
Dim Builder As New ADOXBuilder
Dim tbl As ADOXTable
Builder.Open()
tbl = Builder.NewTable("订单") '创建表
With tbl
.AddColumn("日期" ,ADOXType.DateTime)
.AddColumn("产品" ,ADOXType.String, 12)
.AddColumn("客户" ,ADOXType.String, 20)
.AddColumn("数量" ,ADOXType.Integer)
.AddColumn("备注" ,ADOXType.Text)
End With
Builder.AddTable(tbl) '增加表
Builder.Close()
执行后重新打开项目,会发现多另一个订单表。
增加表是分步的,首先用NewTable方法创建表,最后用AddTable将创建的表增加到Builder中。
动态删除表
执行下面的代码,可以删除表A和表B:
Dim
Builder As New ADOXBuilder
执行上述代码后,同样应该重新打开项目。
使用外部数据源
前面的代码都是针对内部数据源的,如果要为外部数据源动态创建表和列,只需在定义ADOXBuilder的时候,指定数据源名称即可:
Dim Builder As New ADOXBuilder("数据源名称")
例如在名为nwnd的外部数据源中创建一个订单表:
Dim Builder As New ADOXBuilder("nwnd") '要指定数据源名称
Dim tbl As ADOXTable
Builder.Open()
tbl = Builder.NewTable("订单") '创建表
With tbl
.AddColumn("日期" ,ADOXType.DateTime)
.AddColumn("产品" ,ADOXType.String, 12)
.AddColumn("客户" ,ADOXType.String, 20)
.AddColumn("数量" ,ADOXType.Integer)
.AddColumn("备注" ,ADOXType.Text)
End With
Builder.AddTable(tbl) '增加表
Builder.Close()
重新打开项目的代码
前面已经提到,动态创建的表和列之后,都必须重新打开项目。
可以使用下面的代码重新打开当前项目:
Syscmd.Project.Open(ProjectFile)
用代码设置。