急、急、急、急、急、急请大家帮个忙

zjqwhy 2003-08-21 05:36:23

select * from Product
where Product.parent in (:parent)

query->Parameters->ParamByName("parent")->Value = sql

这个sql的内容应该怎么写?
...全文
51 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ldkkkkk 2003-08-22
  • 打赏
  • 举报
回复
select * from Product
where Product.parent in (:parent)
再加一个ComboBox1
然后:query->close;
query->sql->clear;
query->sql->add("select parent from table");
try
{
query->open;
while(!query->Eof)
{
ComboBox1->Items->add(query->fieldbyname("parent")->AsString;
query->next();
}
}
catch(...)
{
return;
}
query->Parameters->ParamByName("parent")->AsString = ComboBox1->Text;
这样就可以了。

ldkkkkk 2003-08-22
  • 打赏
  • 举报
回复
非用参数不可吗?把(:parent)用(select parent from table) 代替就可以了table 是另一个表的表名。
zjqwhy 2003-08-22
  • 打赏
  • 举报
回复
我的意思是:sql= "\"aaa\",\"bbb\",\"ccc\"";
这样查询不到数据库表里的aaa、bbb、ccc的数据。
但是sql = "aaa" 就可以查的到aaa的数据。
我问的是我上面SQL的语句应该怎么写。
xizhouhawk 2003-08-21
  • 打赏
  • 举报
回复
select * from Product where Product.parent in (:parent)
query->Parameters->ParamByName("parent")->Value = sql

/____________________

:parent中的parent只能用常量或变量。
如果你想parent的结果也是查询的话,那你只能线通过TQuery将查询结果保存到变量当中来。
还有我不明白你为什么不利用TQuery的datasource属性呢,这个属性自动提供了你要的功能。
annkie 2003-08-21
  • 打赏
  • 举报
回复
没有这样用过,没有带子查询带入参数过。
我会使用上面的方法,其实也是使用参数了,只不过现在是我们自己构造sql,而不是由
bcb来生成了。
zjqwhy 2003-08-21
  • 打赏
  • 举报
回复
用参数有什么办法?
annkie 2003-08-21
  • 打赏
  • 举报
回复
可以构造sql语句而不使用参数。
比如:
AnsiString sql ="select * from Product where Product.parent in (";
sql += Edit1->Text.Trim() + " )";
zjqwhy 2003-08-21
  • 打赏
  • 举报
回复
sql = "aa"
这样可以的
但要查多个数据时我试了就是不行。

1,178

社区成员

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

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