Foxtable(狐表)用户栏目专家坐堂 → 表结构


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

主题:表结构

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


加好友 发短信
等级:童狐 帖子:248 积分:1985 威望:0 精华:0 注册:2014/5/13 10:53:00
表结构  发帖心情 Post By:2014/6/11 17:29:00 [只看该作者]

在表A中,有两个列,第一列名为“表”,用来存储所有表的名称,第二列名为“结构”,用于存储所有表的结构(列名和列宽)。用width方法来做。怎么写呢?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/11 17:31:00 [只看该作者]

 什么意思?


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


加好友 发短信
等级:童狐 帖子:248 积分:1985 威望:0 精华:0 注册:2014/5/13 10:53:00
  发帖心情 Post By:2014/6/11 21:14:00 [只看该作者]

看截图

图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看
表结构里的结构列都是前面表里的列名和列宽,用width方法,不用GetColVisibleWidth。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/11 21:17:00 [只看该作者]

 那你想问什么?如何获取各个表的列名和列宽?

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


加好友 发短信
等级:童狐 帖子:248 积分:1985 威望:0 精华:0 注册:2014/5/13 10:53:00
  发帖心情 Post By:2014/6/11 21:19:00 [只看该作者]

是的。在命令窗口里,我目前只能取出各个表中的一列,不能取得所有列。如果用GetColVisibleWidth方法我会,但是用width不知道怎么写。

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


加好友 发短信
等级:童狐 帖子:248 积分:1985 威望:0 精华:0 注册:2014/5/13 10:53:00
  发帖心情 Post By:2014/6/11 21:23:00 [只看该作者]

下面这个代码,你看一下怎么样才能完善达到那种效果。
Dim dr As Row
For Each tb As Table In Tables
    If tb.name <> "表结构" Then
        Dim a As DataRow = DataTables("表结构").Find("表 = '" & tb.name & "'")
        If a IsNot Nothing Then
            For Each co As Col In Tables(a("表")).Cols
                Dim na As String = co.Name
                Dim jg As String = co.Width
                
                a("结构") = na &"|"& jg
                a.save
            Next
        Else
            dr = Tables("表结构").AddNew
            dr("表") = tb.name
            For Each co As Col In Tables(dr("表")).Cols
                Dim na As String = co.Name
                Dim jg As String = co.Width
                dr("结构") = na &"|"& jg
                dr.save
            Next
        End If
    End If
Next


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/11 21:23:00 [只看该作者]

如下

 

Dim str As String = ""
For Each c As Col In Tables("表A").Cols
    str &= c.Name & "|" & iif(c.Width = -1, 20, c.Width) & "|"
Next
msgbox(str.TrimEnd("|"))


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/11 21:27:00 [只看该作者]

 如下

 

For Each t As Table In Tables
    Dim fdr As DataRow = DataTables("表结构").Find("表 = '" & t.Name & "'")
    If fdr Is Nothing Then
        fdr = DataTables("表结构").AddNew
        fdr("表") = t.Name
    End If
    Dim str As String = ""
    For Each c As Col In Tables("表A").Cols
        str &= c.Name & "|" & iif(c.Width = -1, 20, c.Width) & "|"
    Next
    fdr("结构") = str.TrimEnd("|")
Next


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


加好友 发短信
等级:童狐 帖子:248 积分:1985 威望:0 精华:0 注册:2014/5/13 10:53:00
  发帖心情 Post By:2014/6/11 21:36:00 [只看该作者]

谢谢!

 回到顶部