guang2356447 发表于 2007-11-1 11:13

sql问题

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;<BR><BR>我是想把字段kh_clqk为0的都  显示成 未处理    <BR>大家看看  怎么改  我这个运行错误<BR><BR>0在sybase数据库的类型为float

sky_yang_sky 发表于 2007-11-1 13:40

(case when kh_clqk=0 then '未处理' else convert(varchar,kh_clqk) end)as kh_clqk

xu2000 发表于 2007-11-2 16:20

楼上的方法适合Sql Server,万全的办法是在字段中的OnGetText中判断一下。

guang2356447 发表于 2007-11-2 16:37

那怎么判断啊<BR><BR>帮忙写下啊

xu2000 发表于 2007-11-2 18:19

<P>你得先把数据库中的TField类型加入到程序中,对应字段的TField的事件页中就有OnGetText事件。<BR><BR>在这个事件中写入判断代码。<BR></P>

guang2356447 发表于 2007-11-7 16:25

哎  还没解决那  <BR>郁闷啊

jiushiwo 发表于 2007-11-8 13:15

hao好久没来灌灌了<BR><BR><BR>

guang2356447 发表于 2007-11-8 18:04

<P>你的头像太牛拉</P>

guang2356447 发表于 2007-11-8 22:54

<P>我的数据库是sybase<BR>谁能帮解决下</P>

guang2356447 发表于 2007-11-8 23:37

经过实验<BR>(case when kh_clqk=0 then '未处理' else convert(varchar,kh_clqk) end)as kh_clqk<BR>这个是正确的  感谢sky_yang_sky    谢谢各位参与<BR><BR>只不过这条语句在delphi中行不通   在sybase中调试成功<BR><BR>原因是<BR>(case when kh_clqk=0 then '未处理' else convert(varchar,kh_clqk) end)as kh_clqk<BR>要把as kh_clqk改改<BR>(case when kh_clqk=0 then '未处理' else convert(varchar,kh_clqk) end)as aa<BR><BR>在调用的时候  <BR>edit1.text:=adoquery1.fieldvluce['aa'];

页: [1]

编程论坛