tadoQuery同名参数赋值问题

xuejie09242 2009-09-28 05:34:25
如Sql语句:
select * from a join b on a.id=b.id
where a.date>:Date and b.Date>:Date

两个参数重名,用paramByName赋值只能给其中的一个赋值,请问有什么方法可以赋一值。

因为程序中的参数个数是不一定的,所以不能通过索引+名字的方式遍历参数。
...全文
132 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
火龙岛主 2009-09-29
  • 打赏
  • 举报
回复
参数列表是可以自动获取的!
风之谷 2009-09-29
  • 打赏
  • 举报
回复
params[0].value:=xxx

params[1].value:=xxxx

这样就可以区分了啊
starluck 2009-09-29
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 xuejie09242 的回复:]
Delphi中参数真不太好用,唉!
[/Quote]

你自动生成的工具不够好.

如果三层的话必须用参数,那你手工写下这段SQL吧
xuejie09242 2009-09-29
  • 打赏
  • 举报
回复
Delphi中参数真不太好用,唉!
xuejie09242 2009-09-29
  • 打赏
  • 举报
回复
不能一次得到全部语句,条件是在语句的多个部分,所以不能用边加条件边赋值的方法。
xuejie09242 2009-09-29
  • 打赏
  • 举报
回复
是可以。我的查询可能是这样的
select ... from
where di_time<=:date ....
union
select ... from ...
where di_time<=:date and ...

不能一项项地加参数。条件是不固定的,
也可能只有一个select
我想用参数来完成,但通过参数名赋值,只有第一个参数赋值了。

通过循环判断参数的名称,太笨了。大家有没有好的方法?
风之谷 2009-09-29
  • 打赏
  • 举报
回复

做下修改啊

query1.Params.Items[0].value:=123;
query1.Params.Items[1].value:=234;

这样就可以
jinhx 2009-09-28
  • 打赏
  • 举报
回复
不用参数,直接把值带到语句里
kaikai_kk 2009-09-28
  • 打赏
  • 举报
回复
这样可以
sql.add('where a.date>:Date');
Parameters.ParamByName('Date').vaule:='...';
sql.add('b.date>:Date');
Parameters.ParamByName('Date').vaule:='...';
de410 2009-09-28
  • 打赏
  • 举报
回复
没有什么好办法的~必须区分开来~
xuejie09242 2009-09-28
  • 打赏
  • 举报
回复
语句是动态生成的,事先不知道有多少个同名参数的。有没别的办法?
wintergoes 2009-09-28
  • 打赏
  • 举报
回复
a.data>: aData and b.Date>:bDate
把参数名区别开不就行了

2,497

社区成员

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

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