关于数据库开发

开发数据库应用程序,Delphi是当之无愧的好!我简直是爱死她了
我在Delphi入门与精通上看到一个东东,开始没在意,后来变通一下,嘿嘿……很实用哦
在我现在开发的应用程序中,没一个不用它的,方便快捷……
作用:
   编码->名称解释(转换不受字段长度限制),有很多方法,诸如:用lookupfield或直接用sql或用canvas等,但我用的是tfields的ongettext方法,呵呵……也许有哪位仁兄用过,这里再提提加深一点印象哈
是这样的:
    假设我有一个主表(employee:员工表)和一个编码表(bmzw:职务)
    employee:
       xm-----员工姓名
       zw-----职务
       ……………………
    bmzw:
       bm-----职务编码
       mc-----职务汉字说明
    现在我们要做的是查询所有员工的情况(employee),职务代码(zw)用户肯定读不懂,所以怎样把employee中的zw字段显示成bmzw中bm字段相对应的mc字段内容呢?

我的解决方法是这样的:
//------query1:查询主表      query2:查询编码表
//------button1:查询
//查询编码表
procedure TForm1.FormCreate(Sender: TObject);
begin
  query1.fieldbyname('zw').OnGetText:=Query1zwGetText;//**********//
  query2.close;
  query2.sql.text:='select * from bmzw';
  queyr2.open;
end;
//***释放
procedure TForm1.FormDestroy(Sender: TObject);
begin
  query1.fieldbyname('zw').ongettext:=nil;
end;
//查询主表
procedure TForm1.Button1Click(Sender: TObject);
begin
  query1.close;
  query1.sql.text:='select * from employee';
  query1.open;
end;
//ongetext过程(employee.zw->bmzw.mc)
procedure TForm1.Query1zwGetText(Sender: TField; var Text: String;
  DisplayText: Boolean);
begin
  //此处是关键
  if query2.locate('bm',sender.asstring,[]) then  
    text:=query2.fieldbyname('mc').asstring
  else
    text:=sender.asstring;
end;

暂时就这么多了,赶快试试吧……可能讲的不清楚,过段时间再说,并且把所有的方法都写上
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值