以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 请教:外部数据源连接后,如何得到全部的表名称? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=4156) |
-- 作者:reachtone -- 发布时间:2009/9/1 7:09:00 -- 请教:外部数据源连接后,如何得到全部的表名称? 动态创建和切换数据源时,需要用到。请高手指教。。 [此贴子已经被作者于2009-9-1 7:12:35编辑过]
|
-- 作者:qtcks -- 发布时间:2009/9/1 8:05:00 -- 1.获取所有数据库名: (2)、SELECT name FROM sysobjects WHERE type = \'\'U\'\' AND sysstat = \'\'83\'\' 注意:一般情况只需要type = \'\'U\'\',但有时候会有系统表混在其中(不知道什么原因),加上后面一句后就能删除这些系统表了
(2)、SELECT syscolumns.name,systypes.name,syscolumns.isnullable,syscolumns.length FROM syscolumns, systypes WHERE syscolumns.xusertype = systypes.xusertype AND "syscolumns.id = object_id(\'\'tableName\'\') 注意点: 4、得到表中主键所包含的列名: SELECT syscolumns.name FROM syscolumns,sysobjects,sysindexes,sysindexkeys WHERE syscolumns.id = object_id(\'\'tablename\'\') AND sysobjects.xtype = \'\'PK\'\' AND sysobjects.parent_obj = syscolumns.id AND sysindexes.id = syscolumns.id AND sysobjects.name = sysindexes.name AND sysindexkeys.id = syscolumns.id AND sysindexkeys.indid = sysindexes.indid AND syscolumns.colid = sysindexkeys.colid 注意:这是在4张系统表中寻找的,关系比较复杂,大致可以表示为: |
-- 作者:yangming -- 发布时间:2009/9/1 9:23:00 -- 以下是引用qtcks在2009-9-1 8:05:00的发言:
1.获取所有数据库名: (2)、SELECT name FROM sysobjects WHERE type = \'\'U\'\' AND sysstat = \'\'83\'\' 注意:一般情况只需要type = \'\'U\'\',但有时候会有系统表混在其中(不知道什么原因),加上后面一句后就能删除这些系统表了
(2)、SELECT syscolumns.name,systypes.name,syscolumns.isnullable,syscolumns.length FROM syscolumns, systypes WHERE syscolumns.xusertype = systypes.xusertype AND "syscolumns.id = object_id(\'\'tableName\'\') 注意点: 4、得到表中主键所包含的列名: SELECT syscolumns.name FROM syscolumns,sysobjects,sysindexes,sysindexkeys WHERE syscolumns.id = object_id(\'\'tablename\'\') AND sysobjects.xtype = \'\'PK\'\' AND sysobjects.parent_obj = syscolumns.id AND sysindexes.id = syscolumns.id AND sysobjects.name = sysindexes.name AND 注意:这是在4张系统表中寻找的,关系比较复杂,大致可以表示为: 学习,顶! |
-- 作者:reachtone -- 发布时间:2009/9/1 9:24:00 -- 以下是引用hnaysx在2009-9-1 8:13:00的发言:
让老六提供一个根据外部数据源的名称获取其里边的表的名称的方法函数之类的,很简单,因为FOXTABLE本身就有这样的功能,仅仅提供给用户编码而已 希望的就是这样,请老六考虑一下。 |
-- 作者:狐狸爸爸 -- 发布时间:2009/9/1 9:44:00 -- No |
-- 作者:reachtone -- 发布时间:2009/9/1 9:44:00 -- 二楼的方法仅在sql数据库中有效,它是读取的系统表,局限很大。 我需要的是对任意类型的数据库,都可以得到全部的表名称,比如sql、access、excel等等。请老六考虑一下。。 |
-- 作者:reachtone -- 发布时间:2009/9/1 9:49:00 -- 以下是引用狐狸爸爸在2009-9-1 9:44:00的发言:
No 为什么不可以呢?这在数据库系统中很常用的,比如,当导入外部数据库时,对外部数据库的有效性判断等等,都是很有必要的。 [此贴子已经被作者于2009-9-1 9:53:52编辑过]
|
-- 作者:reachtone -- 发布时间:2009/9/1 10:13:00 -- 老六已经答应加了,他就是怕把foxtable搞的太复杂。 先谢谢老六了。。。 |