sql语句在程序中实现的结果和在查询分析器中的结果不一样,高手指教

koukouquan 2004-01-31 09:01:10
我用DELPHI6编写一个数据库应用程序
写好SQL语句后在查询分析器中测试没有问题后
将其放入QUERY控件中结果程序获得参数后得到的结果和在查询分析器中的不同
具体情况如下:
sql是:select inv80101.docno,
inv80101.docseq,
inv80101.part,
inv10100.description,
inv10100.specification ,
inv80101.txqty,
inv80101.dept ,
inv80101.ivcdate ,
inv10115.emplno
from inv80101
left outer join inv10100 on inv10100.part=inv80101.part
left outer join inv10115 on inv10115.part=inv80101.part
where (inv80101.docno>=:p1 and inv80101.docno<=:p2)
程序中获得参数值的代码是:
if trim(EDIT1.Text)=''then
qrylingliao.PARAMBYNAME('p1').AsString:='%'
else
qrylingliao.PARAMBYNAME('p1').AsString:=TRIM(Edit1.Text)+'%';
if trim(EDIT2.Text)=''then
qrylingliao.PARAMBYNAME('p2').AsString:='%'
else
qrylingliao.PARAMBYNAME('p2').AsString:=TRIM(Edit2.Text)+'%';
出现问题:
当我在查询分析器中查询时可以得到p1-p2所有数据
把语句放入程序后只能得到 p1下一个-p2的数据,将p1排除在外了
请问大家我应该如何解决这个问题
谢谢
...全文
176 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
koukouquan 2004-01-31
  • 打赏
  • 举报
回复
在线等待,问怎么给回复人分数
koukouquan 2004-01-31
  • 打赏
  • 举报
回复
谢谢大家啊,我已经发现是qrylingliao.PARAMBYNAME('p1').AsString:=TRIM(Edit1.Text)+'%';中的这个通配符的问题,再请问怎么给回复者分数啊?
licun8223 2004-01-31
  • 打赏
  • 举报
回复
先ShowMessage看一下P1和P2的值是否正确,如正确应该就没什么问题了
licun8223 2004-01-31
  • 打赏
  • 举报
回复
楼上的方法应该可以试一下
koukouquan 2004-01-31
  • 打赏
  • 举报
回复
我在查询分析器中付给变量值没有问题啊
linjie208 2004-01-31
  • 打赏
  • 举报
回复
where (inv80101.docno>=:p1 and inv80101.docno<=:p2)
有问题,先将参数赋给变量看看
koukouquan 2004-01-31
  • 打赏
  • 举报
回复
我用DELPHI6编写一个数据库应用程序
写好SQL语句后在查询分析器中测试没有问题后
将其放入QUERY控件中结果程序获得参数后得到的结果和在查询分析器中的不同
where (inv80101.docno>=:p1 and inv80101.docno<=:p2)
出现问题:
当我在查询分析器中查询时可以得到p1-p2所有数据
把语句放入程序后只能得到 p1下一个-p2的数据,将p1排除在外
fxjpost 2004-01-31
  • 打赏
  • 举报
回复
太長了,難看
koukouquan 2004-01-31
  • 打赏
  • 举报
回复
多谢这两位朋友的帮助

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧