注册 登录
编程论坛 Delphi论坛

sql问题

guang2356447 发布于 2007-11-01 11:13, 1037 次点击
adoquery1.SQL.Text:='select (case when kh_clqk=0 then 未处理 end)as kh_clqk,kh_rq,kh_tsyy,kh_tsdw,kh_ywzl,kh_zrqf,kh_name,kh_dh,kh_slr from khts;

我是想把字段kh_clqk为0的都 显示成 未处理
大家看看 怎么改 我这个运行错误

0在sybase数据库的类型为float
9 回复
#2
sky_yang_sky2007-11-01 13:40
(case when kh_clqk=0 then '未处理' else convert(varchar,kh_clqk) end)as kh_clqk
#3
xu20002007-11-02 16:20
楼上的方法适合Sql Server,万全的办法是在字段中的OnGetText中判断一下。
#4
guang23564472007-11-02 16:37
那怎么判断啊

帮忙写下啊
#5
xu20002007-11-02 18:19

你得先把数据库中的TField类型加入到程序中,对应字段的TField的事件页中就有OnGetText事件。

在这个事件中写入判断代码。

#6
guang23564472007-11-07 16:25
哎 还没解决那
郁闷啊
#7
jiushiwo2007-11-08 13:15
hao好久没来灌灌了


#8
guang23564472007-11-08 18:04

你的头像太牛拉

#9
guang23564472007-11-08 22:54

我的数据库是sybase
谁能帮解决下

#10
guang23564472007-11-08 23:37
经过实验
(case when kh_clqk=0 then '未处理' else convert(varchar,kh_clqk) end)as kh_clqk
这个是正确的 感谢sky_yang_sky 谢谢各位参与

只不过这条语句在delphi中行不通 在sybase中调试成功

原因是
(case when kh_clqk=0 then '未处理' else convert(varchar,kh_clqk) end)as kh_clqk
要把as kh_clqk改改
(case when kh_clqk=0 then '未处理' else convert(varchar,kh_clqk) end)as aa

在调用的时候
edit1.text:=adoquery1.fieldvluce['aa'];
1