以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  导出数据库各表列名  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=141363)

--  作者:lk15502
--  发布时间:2019/9/27 15:14:00
--  导出数据库各表列名
数据库已经连接,未加载任何表,想导出数据库各表的列名,写入一张表内,请问该如何写sql代码,下面的代码显示错误:不存在“*******”的datatables,各表的名已经导出
For Each r As Row In Tables("表名").Rows
    For Each dc As DataCol In DataTables(r("表名")).DataCols
        r("列标注") = r("列标注") & vbcrlf & dc.name
    Next
Next

--  作者:有点蓝
--  发布时间:2019/9/27 15:29:00
--  
Dim cmd As New SQLCommand
cmd.ConnectionName = "数据源"
Dim 
dt As DataTable
cmd.CommandText = 
"SELECT * From {" & r("表名") & "} Where 1=2"
dt = cmd.ExecuteReader
()
    For Each dc As DataCol In dt.DataCols
        r("列标注") = r("列标注") & vbcrlf & dc.name
    Next

--  作者:lk15502
--  发布时间:2019/9/27 15:50:00
--  
蓝老师,有没有办法把具体的列属性,也导出来?


--  作者:有点蓝
--  发布时间:2019/9/27 16:16:00
--  
什么列属性?
--  作者:lk15502
--  发布时间:2019/9/27 16:40:00
--  
就是在数据库里表各字段的种类?


--  作者:lk15502
--  发布时间:2019/9/27 16:40:00
--  
导出来



--  作者:有点蓝
--  发布时间:2019/9/27 17:18:00
--  
参考:http://www.foxtable.com/webhelp/topics/1356.htm

MaxLength如果是字符列,返回该列允许输入的最大长度,否则返回-1
IsNumeric判断该列是否是数值型
IsString判断该列是否是字符串型
IsDate判断该列是否是日期型
IsBoolean判断该列是否是逻辑型

--  作者:lk15502
--  发布时间:2019/9/27 17:31:00
--  
蓝老师,1下面的代码是在论坛找到的,可以达到我的要求吗?
2代码看不懂,可以解释一下吗?:

如果是Sqlserver就比较好办,可以一次性取出来

------------sqlserver
SELECT 
表名= convert(varchar(50), d.name ),
字段名= convert(varchar(100), a.name),
类型= CONVERT(varchar(50),b.name) + \'(\' + CONVERT(varchar(10),a.length/2) + \')\',
字段说明=convert(varchar(50), isnull(g.[value],\'\')),
必填 = case a.isnullable when 1 then \'否\' else \'是\' end
FROM dbo.syscolumns a
left join dbo.systypes b on a.xusertype=b.xusertype
inner join dbo.sysobjects d on a.id=d.id and d.xtype=\'U\' and d.name<>\'dtproperties\'
left join dbo.syscomments e on a.cdefault=e.id
left join sys.extended_properties g on a.id=g.major_id and a.colid=g.minor_id
left join sys.extended_properties f on d.id=f.major_id and f.minor_id=0
--where d.name =\'WeChatSeeingRules\'
where a.name not in( \'_Identify\',\'_Locked\')
order by d.name

--  作者:lk15502
--  发布时间:2019/9/27 17:31:00
--  
求助获取后台数据表列名 - 专家坐堂 - Foxtable(狐表) - 新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!  http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&replyID=684344&ID=99369&skin=1
--  作者:有点蓝
--  发布时间:2019/9/27 17:41:00
--  
自己测试一下不就知道了