以文本方式查看主题
- Foxtable(狐表) (http://foxtable.com/bbs/index.asp)
-- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2)
---- 一键定向 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=20410)
|
-- 作者:jianjingmaoyi
-- 发布时间:2012/6/7 21:27:00
-- 一键定向
开发版发布后是不能重新定向的,虽说数据源已经放开,但是定向功能不能放开也是一个遗憾,以下的代码可以将外部数据源的表重新定向到新数据源:
外部到外部的,我重新给.这个是正确的代码.
Dim Builder As New ADOXBuilder("BB") \'要指定数据源名称 Dim tbl As ADOXTable Builder.Open() Dim cmd As New SQLCommand Dim dt As DataTable Dim lst As List(Of String) lst = Connections("AA").GetTableNames For Each nm As String In lst cmd.CommandText = "SELECT * From {" & nm & " } Where [_Identify] Is Null" cmd.C dt = cmd.ExecuteReader() tbl = Builder.NewTable(nm) \'创建表 For Each dc As DataCol In dt.DataCols With tbl Select Case dc.DataType.Name Case "String" .AddColumn(dc.Name ,ADOXType.String,100) Case "DateTime" .AddColumn(dc.Name ,ADOXType.DateTime) Case "Boolean" .AddColumn(dc.Name ,ADOXType.Boolean) Case "Double" .AddColumn(dc.Name ,ADOXType.Double) Case "Text" .AddColumn(dc.Name ,ADOXType.Text) Case "Integer" .AddColumn(dc.Name ,ADOXType.Integer) Case "Short" .AddColumn(dc.Name ,ADOXType.Short) Case "Byte" .AddColumn(dc.Name ,ADOXType.Byte) Case "Single" .AddColumn(dc.Name ,ADOXType.Single) Case "Decimal" .AddColumn(dc.Name ,ADOXType.Decimal) End Select End With Next Builder.AddTable(tbl,True,True) \'增加表 Next Builder.Close() Syscmd.Project.Open(ProjectFile)
[此贴子已经被作者于2012-6-8 13:41:50编辑过]
|
-- 作者:blackzhu
-- 发布时间:2012/6/8 7:36:00
--
值得给个精华!
|
-- 作者:lihe60
-- 发布时间:2012/6/8 7:57:00
--
执行行了一下代码,没有什么反应。
|
-- 作者:lihe60
-- 发布时间:2012/6/8 7:58:00
--
我还真的希望有个一键重定向和解除重定向的功能。
|
-- 作者:blackzhu
-- 发布时间:2012/6/8 8:28:00
--
不可能的,测试过了,后台直接可以定向的.前台看不见的.你要做两个数据源 A和B A是原数据源 B是一个新的数据源,没有任何东西的.
|
-- 作者:lihe60
-- 发布时间:2012/6/8 8:33:00
--
我误解了,我是把内部表定向到外部表。
|
-- 作者:blackzhu
-- 发布时间:2012/6/8 8:59:00
--
再发一个内部表定向到外部表的代码:
Dim Builder As New ADOXBuilder("服务器") \'要指定数据源名称 Dim tbl As ADOXTable Builder.Open() For Each dt As DataTable In DataTables tbl = Builder.NewTable(dt.Name) 创建表 For Each dc As DataCol In DataTables(dt.Name).DataCols With tbl Select Case dc.DataType.Name Case "String" .AddColumn(dc.Name ,ADOXType.String,100) Case "DateTime" .AddColumn(dc.Name ,ADOXType.DateTime) Case "Boolean" .AddColumn(dc.Name ,ADOXType.Boolean) Case "Double" .AddColumn(dc.Name ,ADOXType.Double) Case "Text" .AddColumn(dc.Name ,ADOXType.Text) Case "Integer" .AddColumn(dc.Name ,ADOXType.Integer) Case "Short" .AddColumn(dc.Name ,ADOXType.Short) Case "Byte" .AddColumn(dc.Name ,ADOXType.Byte) Case "Single" .AddColumn(dc.Name ,ADOXType.Single) Case "Decimal" .AddColumn(dc.Name ,ADOXType.Decimal) End Select End With Next Builder.AddTable(tbl,True,True) \'增加表 Next Builder.Close() Syscmd.Project.Open(ProjectFile)
|
-- 作者:blackzhu
-- 发布时间:2012/6/8 10:53:00
--
老大,外部表转内部表:
Dim Builder As New ADOXBuilder Dim tbl As ADOXTable Builder.Open() Dim lst As List(Of String) lst = Connections("BB").GetTableNames For Each nm As String In lst tbl = Builder.NewTable(nm) For Each dc As DataCol In DataTables(nm).DataCols
这儿的nm是字符串,不是表,这个地方应该怎么改才行?
|
-- 作者:blackzhu
-- 发布时间:2012/6/8 13:09:00
--
哈哈,外部表转入内部的一键定向的代码也做出来了:
Dim Builder As New ADOXBuilder Dim tbl As ADOXTable Builder.Open() Dim cmd As New SQLCommand Dim dt As DataTable Dim lst As List(Of String) lst = Connections("BB").GetTableNames For Each nm As String In lst cmd.CommandText = "SELECT * From {" & nm & " } Where [_Identify] Is Null" cmd.C dt = cmd.ExecuteReader() tbl = Builder.NewTable(nm) \'创建表 For Each dc As DataCol In dt.DataCols With tbl Select Case dc.DataType.Name Case "String" .AddColumn(dc.Name ,ADOXType.String,100) Case "DateTime" .AddColumn(dc.Name ,ADOXType.DateTime) Case "Boolean" .AddColumn(dc.Name ,ADOXType.Boolean) Case "Double" .AddColumn(dc.Name ,ADOXType.Double) Case "Text" .AddColumn(dc.Name ,ADOXType.Text) Case "Integer" .AddColumn(dc.Name ,ADOXType.Integer) Case "Short" .AddColumn(dc.Name ,ADOXType.Short) Case "Byte" .AddColumn(dc.Name ,ADOXType.Byte) Case "Single" .AddColumn(dc.Name ,ADOXType.Single) Case "Decimal" .AddColumn(dc.Name ,ADOXType.Decimal) End Select End With Next Builder.AddTable(tbl,True,True) \'增加表 Next Builder.Close() Syscmd.Project.Open(ProjectFile)
|
-- 作者:狐来狐去
-- 发布时间:2012/6/8 13:25:00
--
师傅厉害~~~~~~~~~~
|