Foxtable(狐表)用户栏目专家坐堂 → 一键定向


  共有7874人关注过本帖树形打印复制链接

主题:一键定向

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


加好友 发短信
等级:三尾狐 帖子:760 积分:4714 威望:0 精华:0 注册:2011/12/17 18:37:00
一键定向  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
lujiafang72
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:63 积分:803 威望:0 精华:0 注册:2011/8/1 15:42:00
  发帖心情 Post By:2012/6/7 21:45:00 [只看该作者]

用户已被锁定

 回到顶部
帅哥哟,离线,有人找我吗?
blackzhu
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57584 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2012/6/8 7:36:00 [只看该作者]

值得给个精华!

 回到顶部
帅哥哟,离线,有人找我吗?
lihe60
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6835 积分:43243 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2012/6/8 7:57:00 [只看该作者]

执行行了一下代码,没有什么反应。

 


 回到顶部
帅哥哟,离线,有人找我吗?
lihe60
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6835 积分:43243 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2012/6/8 7:58:00 [只看该作者]

我还真的希望有个一键重定向和解除重定向的功能。

 回到顶部
帅哥哟,离线,有人找我吗?
blackzhu
  6楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57584 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2012/6/8 8:28:00 [只看该作者]

不可能的,测试过了,后台直接可以定向的.前台看不见的.你要做两个数据源  A和B  A是原数据源  B是一个新的数据源,没有任何东西的.

 回到顶部
帅哥哟,离线,有人找我吗?
lihe60
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6835 积分:43243 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2012/6/8 8:33:00 [只看该作者]

我误解了,我是把内部表定向到外部表。

 回到顶部
帅哥哟,离线,有人找我吗?
blackzhu
  8楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57584 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By: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
  9楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57584 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By: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
  10楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57584 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By: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)


 


 回到顶部
总数 13 1 2 下一页