可以TDATASET及TDATASOURCE两级控制
解决方案 »
- Delphi2010 SPComm 怎么总是发送数据失败?求高手指点
- 关于程序放如启动的问题
- 100分,求一个简单网络通信的例子
- 如何在程序里禁用网卡
- 如何在用idftpserver做的服务器中限制传输速度?
- 用delphi作和硬件连系多的程序的朋友请进!
- 关于component中的font属性
- 菜鸟之识友---觅狐朋狗友(求Delphi多媒休开发类爱好者)
- 谈谈你队“面向对象=对象+类+继承+通信”的看法
- 为什么在网页用<object>可以指定的属性,在delphi里生成的接口文件中找不到?
- 谁知道如何在程序中调出ADO控件的设置ConnectionString的窗体。
- 高手帮忙,为什么不能insert/delete?先谢了。
可以TDATASET及Tdbgrid.columns两级控制
呵可
可以TDATASET及Tdbgrid.columns两级控制
.能详细介绍一下吗?我用了可没有用好~!
for i:= 0 to dm1.Qry.fieldcount- 1 do
begin
if (FieldByName('sjx').asstring='xxx') then
grid.Columns[i].Visible:=false;
end;或者如果从query直接用sql取回数据的话,可以在select中不选择不想显示的字段
2.用Query select 你要的字段
不让用户可见,但实际编辑时还是要往里填充值,如果是这种情况,还是必须要把所有表字段都要select过来关于数据方面应用,我建议使用动态绑定的方法,这样在修改表结构后也不用重新编辑TDataSet里的fields属性和重新编绎
我的做法是建立一数据字典,把所有的表字段、中文显示label,visible属性等信息保存起来,等打开数据表时再动态生成TField,从这个字典里捉取内容去动态设置TField字段
这样子就没必要一个个DataSet去辛苦地手工设置TField属性,对于大项目来说,能提高效率以上是个人看法,抛砖引玉,欢迎大家交流,
字段级的权限是什么意思?
你的动态绑定法请详细说说好吗?
不让用户可见,但实际编辑时还是要往里填充值,如果是这种情况,还是必须要把所有表字段都要select过来
简单一点说,就是先设计一个数据表,我们姑且称之为表字典,数据表里保存有数据库里其它所有表的表名、字段名、字段类型、size、显示标题,是否可视,是否readonly等信息
在开发时只要指定SQL语句
select * from tblname 或 select fld1,fld2,fld3... 时
先从这个数据表里找到fld对应的记录,然后在TDataSet里对应生成
TStringField,TFloatField....等字段,把如上信息赋到TField里
再把TDataSet的active=true这样子修改了数据库后,只要相应修改表字典里的信息就行了,而且想让某些列对用户不可见,
只要有一个工具来字义表字典里的visible属性就行了,比较灵活不过这样的话,所有表里所有字段名最好不要有相重,推荐表字段的命名规则为 表名+'_'+字段名,这样就不会有相重的字段名了