一个很菜的问题,关于tquery的 做一动态查询,在控件中的sql属性中写sql语句,动态的部分采用params的方法,在程序中将params赋值如query1.params[0]:=combobox1.text;但open后什么都没查,我感觉是值没赋进去。如果是本地数据库好象可以,但是我是连远端的oracle服务器,这是怎么回事? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果是本地数据库好象可以//什么是好象?行还是不行?把你的sql语句贴出来。 我是用delphi连oracle数据库,在query的sql属性中写如:select avg(sxchb) HB,avg(sxcplt) PLT,avg(sxcwbc) WBC,avg(snk) NK,avg(scd3) CD3,avg(scd4) CD4,avg(scd8) CD8,avg(salt) ALT ,avg(sast) AST ,avg(srgt) RGT,avg(sakp) AKP, avg(stbil) TBIL,avg(sdbil) DBIL,avg(stba) TBA,avg(sa) A,avg(sg) G,avg(sua) UA,avg(sbun) BUN,avg(scr) CR,avg(scho) CHO,avg(scea) CEA,avg(ssf) SF,avg(sldh) LDH,avg(sb2mg) b2mg,avg(safp) AFP,avg(sca125) CA125,avg(sca199) CA199,avg(sca50) CA50from mpmsewhere scstate ='前' and pdiag = :pdiag and pstage = :pstage在程序中将:pdiag和:pstage赋值如下:close;unprepare;params[0].asstring:=diagcobx.text;params[1].asstring:=stagecobx.text;prepare;open; 好像应该是query1.Parameters.ParamByName(':pstage').Value:=diagcobx.text;至少在ADOzho 不行,是不是delphi的一个bug,我是根据帮助写的 好像应该是query1.Parameters.ParamByName('pstage').Value:=diagcobx.text; 不行,我用的是BDE,查询结果用dbtext控件显示 query1.Params.ParamByName('pdiag').AsString:=diagcobx.text;注意是pdiag 没有‘:’啊 ,呵呵 Params query1.ParamByName('pdiag').AsString:=trim(diagcobx.text);看看可以吧, 除了query1.ParamByName('pdiag').AsString:=trim(diagcobx.text);还要 Query1.ParamCheck:=True;(默认值为true)如果楼主不小心设成了False,那肯定是没有结果了。 还有,你的远端服务器有没有数据呀?如果不报错,并且open 后不见数据,那就要查查远程服务器改表到底是不是空表 远端数据库有数据,上面所有的方法都试过了,若不用参数的方法可以动态查询,是不是个bug delphi在这上面不会有问题.肯定是程序和数据的问题.试一试数据库,看数据库里字符串是不是有前后空格 用DBEXPRESS吧,BDE现在快淘汰。哦? 建议你改用ADO,别用BDE了,ado的ADOQuery控件不会有那么多问题 晕!数据库登录失败!怎么回事啊? 大家帮帮忙啊,是个Idhttp发送内容给ASP网页的问题! printer打印问题,不知道是软件还是硬件? 讨论讨论报表 灰度图的访问!!! 不知道有谁能解决这个问题! 关于生成曲线 delphi6.0 安装包的制作 在线等 简单的问题,请教各位高手!!! 请问如何改变窗体的标题栏的颜色?多谢 关于字符串函数 >>>>>如何让计算机响笛?
把你的sql语句贴出来。
select avg(sxchb) HB,avg(sxcplt) PLT,avg(sxcwbc) WBC,avg(snk) NK,
avg(scd3) CD3,avg(scd4) CD4,avg(scd8) CD8,avg(salt) ALT ,
avg(sast) AST ,avg(srgt) RGT,avg(sakp) AKP, avg(stbil) TBIL,
avg(sdbil) DBIL,avg(stba) TBA,avg(sa) A,avg(sg) G,avg(sua) UA,avg(sbun) BUN,
avg(scr) CR,avg(scho) CHO,avg(scea) CEA,avg(ssf) SF,avg(sldh) LDH,
avg(sb2mg) b2mg,avg(safp) AFP,avg(sca125) CA125,avg(sca199) CA199,
avg(sca50) CA50
from mpmse
where scstate ='前' and pdiag = :pdiag and pstage = :pstage在程序中将:pdiag和:pstage赋值如下:
close;
unprepare;
params[0].asstring:=diagcobx.text;
params[1].asstring:=stagecobx.text;
prepare;
open;
query1.Parameters.ParamByName(':pstage').Value:=diagcobx.text;至少在ADO
zho
query1.Parameters.ParamByName('pstage').Value:=diagcobx.text;
注意是pdiag 没有‘:’啊 ,呵呵 Params
看看可以吧,
query1.ParamByName('pdiag').AsString:=trim(diagcobx.text);
还要
Query1.ParamCheck:=True;(默认值为true)
如果楼主不小心设成了False,那肯定是没有结果了。