Tquery 的问题,请求帮忙(50分)

  • 主题发起人 主题发起人 shanliu
  • 开始时间 开始时间
S

shanliu

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TFrom2.BitBenClick(Sender:Tobject);
begin
if Query1.Active then
Query1.Active :=Flase;
Query1.ParamByName('zdm').AsString :=C_Zd.Text;
Query1.ParamByName('zym').AsString :=C_cc.Text;
Query1.ParamByName('ccm').AsString :=C_Zy.Text;
Query1.ParamByName('nj').AsString :=C_nj.Text;
Query1.Active :=True;
end;
end.

TQuery 中的SQL语句为:
sdlect xsxcb.xh,xsxcb.xm,zddhb.zdm,ccdhb.ccm,zydhb.zyh,xsxcb.nj
from xdxcb
where xsxcb.zdh=zddhb.zdh and xsxcb.cch=ccdhb.cch and xsxcb.zyh=zydhb.zyh
and zddhb.zdm=:zdh and ccdhb.ccm=:ccm and xsxcb.nj=:nj
and zydhb.zyh=:zyh
我在编译时没有错,但是单击BitBen按扭时没有反应!可以看到数据库在查询,但是没有结果
为什么呀?
 
条件够多的,有符合条件的记录吗
 
zddhb,ccdhb,zydhb 怎么没有列在From子句里?
 
我的一个笨法:
先把SQL在PB或 SQLExplorer中测试通过后在把相关条件项换成参数
 
不好意识,是我忘了
TQuery 中的SQL语句为:
sdlect xsxcb.xh,xsxcb.xm,zddhb.zdm,ccdhb.ccm,zydhb.zyh,xsxcb.nj
from xdxcb,zddhb,zydhb,ccdhb
where xsxcb.zdh=zddhb.zdh and xsxcb.cch=ccdhb.cch and xsxcb.zyh=zydhb.zyh
and zddhb.zdm=:zdh and ccdhb.ccm=:ccm and xsxcb.nj=:nj
and zydhb.zyh=:zyh
 
是不是有参数的长度大于对应字段的最大长度
 
1、运行时设个中断,看看是不是你想要的参数

2、把你的sql语句到数据库中执行一边,能不能得到你要的结果

这两件事做了以后,你大概就明白了问题出在哪里!!
 
我的习惯不是这样的
 
begin
Query1.ParamByName('zdm').AsString :=C_Zd.Text;
Query1.ParamByName('zym').AsString :=C_cc.Text;
Query1.ParamByName('ccm').AsString :=C_Zy.Text;
Query1.ParamByName('nj').AsString :=C_nj.Text;
Query1.Open;
end;
 
好好看看你的参数名与sql语句是否是一致的,然后高断点取出sql语句,在
数据库中执行查询语句
 
同意catbrother
 
多人接受答案了。
 
后退
顶部