以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  怎么获得数据表的列定义  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=59319)

--  作者:arthurshoe
--  发布时间:2014/11/2 0:50:00
--  怎么获得数据表的列定义
怎么获得数据表的列定义,如列的类型,是不是允许为空等。。。
[此贴子已经被作者于2014-11-2 0:50:59编辑过]

--  作者:arthurshoe
--  发布时间:2014/11/2 1:23:00
--  
发现foxtable里面只有_identify 的 AllowDBNull是False,其他的都是True?还有数据类型是怎么获得了?
--  作者:有点甜
--  发布时间:2014/11/2 9:27:00
--  

For Each dc As DataCol In DataTables("表A").DataCols
    output.show(dc.DataType.name)
Next


--  作者:有点甜
--  发布时间:2014/11/2 9:31:00
--  
For Each dc As object In DataTables("表A").basetable.Columns
    \'If DataTables("表A").DataCols.Contains(dc.ColumnName)
        output.show(dc.AllowDBNull & "  " & dc.Datatype.name)
    \'End If
Next

--  作者:arthurshoe
--  发布时间:2014/11/2 10:44:00
--  
也找到了上面的数据,关键是 foxtable 里面AllowDBNull 不是后台数据库的真正定义,只有_identify不能为空,其他的字段都是允许为空的。。
可能和Addnew相关吧,每次新增记录,都产生一条空记录,但是这是_identify已经有值了。。
能获得后台数据库的真正定义(能不能为空,定义长度等。。。)吗?
[此贴子已经被作者于2014-11-2 10:45:19编辑过]

--  作者:有点甜
--  发布时间:2014/11/2 10:46:00
--  

 不理解你什么意思,就是直接获取后台的啊,你设置成立能不能空,就直接获取啊


--  作者:arthurshoe
--  发布时间:2014/11/2 10:56:00
--  
我测试过。。。foxtable定义表结构时是没有AllowNull的选项了,数据库设置不能为空,但是AllowDBNull还是True,只有_identify的AllowDBNull才是False

[此贴子已经被作者于2014-11-2 11:03:48编辑过]

--  作者:有点甜
--  发布时间:2014/11/2 11:07:00
--  

 哦,不是直接获取后台表格的。

 

 如果要获取后台表格结构,就必须用sql语句获取,具体语法你可以百度一下。


--  作者:arthurshoe
--  发布时间:2014/11/2 12:32:00
--  
找到了。。。谢谢
SELECT type_Name(col.xtype) "TYPE", col.length, col.IsNullable, * from [数据库名称].dbo.syscolumns col, [数据库名称].dbo.sysobjects tab 
where col.id =tab.id And tab.name=\'表名\'