用DBGRID时候遇到的麻烦~(50分)

  • 主题发起人 代码雪儿
  • 开始时间

代码雪儿

Unregistered / Unconfirmed
GUEST, unregistred user!
DbGrid显示出数据时候:(Query连接数据库)
·我想点击其中一行,打开另一个窗口显示这行的数据。可是DbGrid没有行号。
我query.moveby(i),我的i想取dbgrid的行号,取不成
·我表中一字段内容为数字,这数字代表某一个意义。我不能显示数字,必须显示意义
所以我想加一函数,但不知道如何加。
 
我们设计的数据库都是有自增编号的,取自增编号还不会重复
你的应该也有唯一标志吧
 
直接用 query.fieldbyName('id').asstring 取的就是当前行的值!
 
是啊,同楼上说的。
直接用Query1.FieldByName('').AsString就行了。
 
问题一,直接用 yourQry.fieldbyname('xx').asstring就可以引用了,不用重新查找点击的记录
问题二,这个问题我也遇见过,最后使用视图(View)解决,我用的是ms sql 7,view创建如下
CREATE VIEW dbo.ViewOrder
AS
SELECT OrderBucks, OrderTime, PerDays, NextDelvDate,
CONVERT(char(2),DelvTime / 60) + ':' + CONVERT(char(2), DelvTime % 60) AS strDelvTime,
FROM TabOrder
实现了把DelvTime由整数转(今天第几分钟)化成时间格式
祝好运![:)]
 
to willxue:
CONVERT函数可以用在SQL语句中,我想自己写个函数来实现,可是不行呀~~~
说是不是Built-in函数
 
建立视图关联,建立视图b为数字与意义的对应表
select a.字段1,a.字段2,b.意义 from a left join b on a.数字=b.数字
或者重载dbgrid的重画
 
To xxhadsg:
· 没有对应的意义表呀
· 怎么重载dbgrid的重画?
 
这个很容易啊
 
To 唐佐平
怎么容易了?您老人家说说呀~~
 
用 Query.RecNo 不就行了吗?
 
关注唐大侠的方法
 
>>我表中一字段内容为数字,这数字代表某一个意义。我不能显示数字,必须显示意义
所以我想加一函数,但不知道如何加。

可以在 Field.OnGetText 事件中处理。
 
获得行号:query.recno
设置字段:在字段的ongettext事件中处理:
if sender.asstring='y' then
text:='y:己审核'
else
text:='n:未审核';
在onsettext中做相反的处理即可
 
多人接受答案了。
 
顶部