我想实现在delphi的TDBGrid里面,在显示列的时候,若数据库中定义某字段必须有值(或称为必填字段),则将该字段的标题在窗口上加粗;发现有个TFieldDef,required属性貌似是这个,但是结果不行,全部是false;
不使用AdoX能实现吗?就delphi自带的组件属性里? 另,我想获取字段的默认值,在插入新记录时可以把默认值给显示到TDBGrid里面。网上有人说只要数据库中有默认值会自动显示,但我的没有显示,我的TDataSource的AutoEdit是false。谢谢大家帮忙!
不使用AdoX能实现吗?就delphi自带的组件属性里? 另,我想获取字段的默认值,在插入新记录时可以把默认值给显示到TDBGrid里面。网上有人说只要数据库中有默认值会自动显示,但我的没有显示,我的TDataSource的AutoEdit是false。谢谢大家帮忙!
解决方案 »
- 发送封包的问题
- 用fastreport的frxPreview控件预览报表时,出现发生下列的错误:List index out of bounds (-1)Stack overflow
- 关于如何控制对ListView的列进行修改!
- 那里有可以绑定两个以上字段得combobox控件,就像asp.net里面dropdownlist控件一样
- 从TCustomcontrol继承的控件怎样才能获得焦点
- delphi7的Idtcpserver与Idtcpclient 的问题,请各位高手进来发表高见
- zswang(伴水)(* 嘻 *) 请进来!
- 请教:运行corba 程序时出现无法找到VPORT_BR.DLL,是什么原因?
- ACCESS中怎么判断空值?用(SQL语句)
- 简单问题--如何获取已修改的字段?(20分奉上)
- INSERT INTO 语句语法问题
- 如何简短SQL语句,
直接通过TField或是TFieldDef或是TDataSet的属性、方法,没法实现吗?
from
( select d.[name] as TabNm,cast(1 as bit) as NeedUpd, cast(1 as bit) as NeedIns,
a.colid as Ord_ID,a.name as ColName,
cast(case when (SELECT count(*) FROM sysobjects
WHERE (name in
(SELECT name FROM sysindexes WHERE (id = a.id) AND (indid in
(SELECT indid FROM sysindexkeys WHERE (id = a.id) AND (colid in
(SELECT colid FROM syscolumns WHERE (id = a.id) AND (name = a.name)))))))
AND (xtype = 'PK'))>0 then 1 else 0 end as bit) as IsKey,
b.[name] as ColType, case when b.[name]='nvarchar' then a.length/2 else case when b.[name]='numeric' then a.length*2 else a.length end end as ColLen,
COLUMNPROPERTY(a.id,a.name,'PRECISION') as ColWidth,
case when isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0) >= Isnull(b.Scale,0) then
isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0) - Isnull(b.Scale,0)
else isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0) end as ColScale,
cast(a.isnullable as bit) as CanNull, isnull(e.text,'') as DefaultValue,
cast('' as varchar(50)) as CntNullValue,cast('' as varchar(50)) as MapColumn,cast('' as varchar(50)) as MapExpr,
cast(COLUMNPROPERTY( a.id,a.name,'IsIdentity') as bit) as IsIdentity,
cast(COLUMNPROPERTY( a.id,a.name,'IsComputed') as bit) as IsComputed,
cast(COLUMNPROPERTY( a.id,a.name,'IsRowGuidCol') as bit) as IsRowGuidCol,
cast(0 as bit) as noParame,
cast(g.[value] as varchar(255)) as Re
FROM syscolumns a
inner join sysobjects d on a.id=d.id and d.type in('U','V')
left join systypes b on a.xtype=b.xusertype
left join syscomments e on a.cdefault=e.id
left join sysproperties g on a.id=g.id AND a.colid = g.smallid
) v
order by TabNm,Ord_ID-------------------------------------------------------------------------------------------------------------
SQL 2005用的:SELECT top 100 percent *
from
( select d.[name] as TabNm,cast(1 as bit) as NeedUpd, cast(1 as bit) as NeedIns,
a.colid as Ord_ID,a.name as ColName,
cast(case when (SELECT count(*) FROM sysobjects
WHERE (name in
(SELECT name FROM sysindexes WHERE (id = a.id) AND (indid in
(SELECT indid FROM sysindexkeys WHERE (id = a.id) AND (colid in
(SELECT colid FROM syscolumns WHERE (id = a.id) AND (name = a.name)))))))
AND (xtype = 'PK'))>0 then 1 else 0 end as bit) as IsKey,
b.[name] as ColType, a.length as ColLen,
COLUMNPROPERTY(a.id,a.name,'PRECISION') as ColWidth,
case when isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0) >= Isnull(b.Scale,0) then
isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0) - Isnull(b.Scale,0)
else isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0) end as ColScale,
cast(a.isnullable as bit) as CanNull, isnull(e.text,'') as DefaultValue,
cast('' as varchar(50)) as CntNullValue,cast('' as varchar(50)) as MapColumn,cast('' as varchar(50)) as MapExpr,
cast(COLUMNPROPERTY( a.id,a.name,'IsIdentity') as bit) as IsIdentity,
cast(COLUMNPROPERTY( a.id,a.name,'IsComputed') as bit) as IsComputed,
cast(COLUMNPROPERTY( a.id,a.name,'IsRowGuidCol') as bit) as IsRowGuidCol,
cast(0 as bit) as noParame,cast(g.[value] as nvarchar(255)) as Re
FROM syscolumns a
inner join sysobjects d on a.id=d.id and d.type in('U','V')
left join systypes b on a.xtype=b.xusertype
left join 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
) v
order by TabNm,Ord_ID
但是我现在用的都是ADO系统组件,不太想再改到dbExpress
看样子得要动用openschema了