大家看看,真的是怪事,ADO没这个属性,

yangguo_god 2002-10-07 04:42:57
PlayingSongQuery->Active=false;
PlayingSongQuery->SQL->Clear();

AdvanceQuery->Active=false;
AdvanceQuery->SQL->Clear();
AdvanceQuery->SQL->Add("select * from selected order by selecttime asc");
// AdvanceQuery->ParamByName("p1")->AsString=clientname;
AdvanceQuery->Open();
AdvanceQuery->First();
songid=AdvanceQuery->FieldByName("ID")->AsInteger;
chanel=AdvanceQuery->FieldByName("DefaultTrack")->AsInteger;
PlayingSongQuery->SQL->Add("select * from Programs where ID=:p2");
PlayingSongQuery->ParamByName("p2")->AsInteger=songid;//运行到这里竟然出错!

PlayingSongQuery->Open();
出错信息为“ParamByName"is not a member of TADOQuery,然道ADO真的没这个属性,
但是ADO继承的是TParameters类,应该有这个属性的,这是怎么回事了,望打下指点,
...全文
38 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangguo_god 2002-10-07
  • 打赏
  • 举报
回复
多谢,买单
耙子 2002-10-07
  • 打赏
  • 举报
回复
没注意你用了 AsInteger
你用Value就行了,他会根据你后面的数据类型来完成相应的转换,所以你没要在前面指定类型。

比如 songid内容是 ‘123’

PlayingSongQuery->Parameters->ParamByName("p2")->Value
=StrToInt(songid);
他的p2内容是 '123' //注意他有引号,他是字符串

PlayingSongQuery->Parameters->ParamByName("p2")->Value
=songid;
p2内容是 123
yangguo_god 2002-10-07
  • 打赏
  • 举报
回复
我的意思是在前面转换的话,有什么方法吗
qdxby 2002-10-07
  • 打赏
  • 举报
回复
应该在后面转换类型
PlayingSongQuery->Parameters->ParamByName("p2")->Value
=StrToInt(songid);
yangguo_god 2002-10-07
  • 打赏
  • 举报
回复
呵呵,楼上几位老兄,好象还是有点问题,应该是这样,
PlayingSongQuery->Parameters->ParamByName("p2")->Value=songid;

TParameters没有asInteger的方法,那如果要进行类型转换应该怎么做
killedkiss 2002-10-07
  • 打赏
  • 举报
回复
同意
vixkywx 2002-10-07
  • 打赏
  • 举报
回复
应该是
PlayingSongQuery->Paramemters->ParamByName("p2")->AsValue=songid
耙子 2002-10-07
  • 打赏
  • 举报
回复
PlayingSongQuery->Paramemters->ParamByName("p2")->AsInteger=songid

13,822

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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