delphi中使用sql语句加条件引用时值是一个整型变量的问题

SQL为数据库的操作提供了很多方法,结合起delphi,要想按自己的需要得到预想的结果,却要经过SQL测试再到delphi里的语句这样一个过程。

目前我就遇到一个难题:就是在查询语句中使用条件,但条件引用的是一个整型变量(string变量最简单),整型变量却不容易清楚,想到这是遇到的问题,先搞清楚再继续工作。以下是我用的语句(简化了):

var mydata:integer;
……
sql.add(format('select * from stdinfo where grade="%d"',[mydata]));
……

但是不能通过,不知道是哪里来的语句,我是上网看别人的帖子得的。先以为是符号问题,不是这样,我试了几回&和*甚至是^,不对。可能是没有这样的用法,在Q群上,朋友们说是%的引用不对,好像是要sql动态参数传值,而delphi要用:
所以有

sql.add('select * from stdinfo where grade=:p1');
parambyname('p1').asinteger:=mydata;

 利用参数传值,虽然还不太清楚,这个应该试一下吧,但愿一切如意。

经过测试,光是上面的代码也是不对的,应该这样写:

 1 var graden:integer;
 2 begin
 3 graden:=4;//测试用的数据
 4 with adoquery1 do
 5 begin
 6 close;
 7 sql.Clear;
 8 sql.Add('select grade,class,name from stdinfo where grade=:p1');
 9 Parameters.ParamByName('p1').Value:=graden;
10 open;

注意:值得一提的是,SQL语句中条件引用一个变量值时,要用parameters传值,而网上什么asinteger之类的也要视情况而定,我用的paramByname就没有.asinteger的选项,这点可能是delphi版本所至,有的语句可能是delphi 6.0的或其它,我用7.0。

转载于:https://www.cnblogs.com/JTeacher/archive/2012/11/19/2776968.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值