以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 怎样用表动态生成数据库结构? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=136565) |
-- 作者:xongyijd -- 发布时间:2019/6/16 9:09:00 -- 怎样用表动态生成数据库结构? 如题,想用表生成外部数据库结构,都不行?还有打开以前开发文件,代码编辑器代码总是显示不全,没有进入编辑器预览是全的,是怎么回事?重新复制都不行 以下是我写的: Dim Builder As New ADOXBuilder("sjk") Builder.Open() Dim tbl As ADOXTable = Builder.NewTable("订单") For Each dr As DataRow In DataTables("表结构库").DataRows tbl.AddColumn(dr("列名称"), dr("数据类型")) Next Builder.AddTable(tbl,True,True) Builder.Close() syscmd.Project.Open(ProjectFile) 或者: Dim Builder As New ADOXBuilder("sjk") Builder.Open() Dim tbl As ADOXTable = Builder.NewTable("订单") For Each dr As String() In DataTables("表结构库").GetValues("列名称|数据类型|长度") tbl.AddColumn(dr(0),dr(1),dr(2)) Next Builder.AddTable(tbl,True,True) Builder.Close() syscmd.Project.Open(ProjectFile) |
-- 作者:nxhylczh -- 发布时间:2019/6/16 9:22:00 -- 表里面的数据类型错 改为 ADOXType.String 建议代码这样写 For Each dr As DataRow DataTables("表结构库").dataRows Select Case dr("列类型") Case "字符型" tbl.AddColumn(dr("列名称") , ADOXType.String, 255) \'字符型全部设置成255 Case "日期时间型" tbl.AddColumn(dr("列名称") , ADOXType.DateTime) Case "整数型" tbl.AddColumn(dr("列名称") , ADOXType.Integer) Case "逻辑型"
end select next Builder.AddTable(tbl, True, True) Builder.Close() |
-- 作者:xongyijd -- 发布时间:2019/6/16 9:56:00 -- 这个列类型就不能从表中提取阈值? |
-- 作者:nxhylczh -- 发布时间:2019/6/16 13:03:00 -- 当然可以 |
-- 作者:xongyijd -- 发布时间:2019/6/17 7:12:00 -- 那怎么引用? 在tbl.AddColumn(dr("列名称"), dr("数据类型"))
中用dr(”数据类型”)显示数据转换无效,怎么写? |
-- 作者:有点甜 -- 发布时间:2019/6/17 9:03:00 -- 以下是引用xongyijd在2019/6/17 7:12:00的发言:
那怎么引用? 在tbl.AddColumn(dr("列名称"), dr("数据类型"))
中用dr(”数据类型”)显示数据转换无效,怎么写?
不可以直接取,必须向这样处理
For Each dr As DataRow DataTables("表结构库").dataRows
Select Case dr("数据类型")
Case "字符型"
tbl.AddColumn(dr("列名称") , ADOXType.String, 255) \'字符型全部设置成255
Case "日期时间型"
tbl.AddColumn(dr("列名称") , ADOXType.DateTime)
Case "整数型"
tbl.AddColumn(dr("列名称") , ADOXType.Integer)
Case "逻辑型"
end select
next
Builder.AddTable(tbl, True, True)
Builder.Close() |