以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  如何获取外部表中的列标题?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=58870)

--  作者:万通
--  发布时间:2014/10/25 14:51:00
--  如何获取外部表中的列标题?
大家好,请教一下:
1、创建数据源,连接到项目之外的新的数据库;
2、创建外部表;
3、在狐表中显示的列,都是列名称;
  问题:在创建外部表时,如何把列标题也带进来,在狐表中显示出来的是列标题,而不要是列名称?

附:创建外部表的代码
Dim lst As List(Of String)
lst = Connections(conn).GetTableNames
Dim q As new OuterTableBuilder
q.ConnectionName = conn
For Each nm As String In lst
    q.TableName = nm
    q.SelectString = "Select * From {" & nm &"} where [_identify] Is null"
    q.Build
Next

--  作者:狐狸爸爸
--  发布时间:2014/10/25 15:13:00
--  

这个没有办法获取,因为列标题存储在项目文件中,而不是数据库中,只有在加载外部表的时候,才从项目文件中取相关设置。

 


--  作者:万通
--  发布时间:2014/10/25 15:59:00
--  
目前已制作好的功能:
一、项目的所有功能,都已制作完成(制作时,启动的也是外部数据源ACCESS);
    备注:1、表的设计完成; 2、窗口的设计完成;3、所有的关联及所有事件的代码都已完成;4、项目运行时,一切都OK;
二、打开MSSQL数据管理器并登陆,将ACCESS中的数据表及数据,导入到MSSQL中新建立的数据库中,并进行主键等的再设置(详细步骤略)。
三、在自定义的登陆窗口中,这时就可以选择使用不同位置或不同类型的一个数据源(同结构)了。
     备注:当选择某个位置的数据库时,
            1、进行数据库的判断,是否与项目设计的数据库结构相同;
            2、点确定按钮时,将所有的表切换到新的数据源;
截止目前,上面所有的功能,都一切运行正常;

  缺点:在有多台客户端运行时,如果某个表要增删列的情况下,则每个客户端的原数据库的结构都要调整;
           要不然,表从旧数据源切换到新数据源时,会出错的

我的一个构想:

四、打开上述项目,在菜单铵钮中,点删除表,删除所有的表; 
五、新增一张表A,(作为修改窗口时备用,因为后续创建的临时表,是不能再修改已设计好的窗口等等的)
六、修改登出窗口中的登陆新数据源按钮的代码:在创建外部表的时候,把新数据源中的所有表加进来;

 优点:每个运行的客户端,在某个表,有增删列情况下,无任何影响;

现在,唯一遗憾的是:在项目中显示出来的列,都是列名称,而不是列标题;

想要的是:创建外部表后,如何把列标题也带进来,在项目中显示出来的是列标题,而不要是列名称?

[此贴子已经被作者于2014-10-25 16:09:25编辑过]

--  作者:Bin
--  发布时间:2014/10/25 16:09:00
--  
运行的项目,不应该还去修改数据源.  如果要修改,说明你设计不合理.
--  作者:万通
--  发布时间:2014/10/25 16:13:00
--  
呵呵,客户说,他们后期要能在表中,自己增加所需要的列。现在有一个客户(他们是化工企业,在测量某个新试剂时,他们现在也不可能知道要测试哪些值),确实需要这样的功能。这样就会很麻烦
--  作者:Bin
--  发布时间:2014/10/25 16:16:00
--  
你这个是设计不合理

应该怎讲一个测试值表.

列为

试剂名称   试剂需求测试值

--  作者:万通
--  发布时间:2014/10/25 16:18:00
--  
关键就是每个新增的试剂,测量值的名称,都不一样。
--  作者:狐狸爸爸
--  发布时间:2014/10/25 16:21:00
--  

不要用系统自带的列标题功能。

 

你可以设计个表,包括三列,表名、列名、标题。

然后设计个窗口,给用户定义列标题,将用户自定义的标题保存在这个表中

然后在表生成后,从这个表提取列标题:

http://www.foxtable.com/help/topics/1275.htm