delphi中使用sql语句加条件引用时值是一个整型变量的问题
来源:互联网 发布:淘宝网店设计教程 编辑:程序博客网 时间:2024/05/19 00:41
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。
var FmOperator: TFmOperator; OperID: string; Modified: Boolean;implementation{$R *.dfm}procedure TFmOperator.btnDelClick(Sender: TObject);begin if Modified then begin if MessageBox(Handle, PChar('确定要删除选定的操作员吗?'), PChar('提示'), MB_ICONQUESTION+MB_okCancel) = IDOK then begin with DM.qryOperator do begin Close; SQL.Clear; sql.Add('Delete from [Operator] where ID = :P1'); Parameters.ParamByName('P1').Value:=StrToInt(OperID); ExecSQL; SQL.Clear; SQL.Text := 'select * from [Operator]'; Open; end; end; end;end;
看完博客后自己使用实例并且成功执行,xe2版本。
补充:另外一种解决办法
SQL.Text := 'Delete from [Operator] where ID ='+ OperID;直接sql语句在后面加 integer类型 如果是string类型
SQL.Text := 'Delete from [Operator] where ID ='+quotedstr( OperID) ';完毕!
阅读全文
0 0
- delphi中使用sql语句加条件引用时值是一个整型变量的问题
- delphi中多条件SQL语句的增加注意事项
- 整型变量是一个变量
- sql语句中使用字符串行变量的问题
- 【转】ACCESS中如何在SQL语句的WHERE条件中加日期条件
- 在SQL SERVER中当查询的条件是一个选择范围的SQL语句怎么写?
- Delphi中双字节类型存储到整型变量的问题
- mysql-sql语句中变量的使用
- mysql-sql语句中变量的使用
- 在with语句中跨frame的变量引用问题
- java中使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?
- 使用SQL中SELECT语句的使用条件逻辑
- 如何在SQL语句中加引号的问题
- SQL语句取时间类型的小时值
- ibatis里面sql语句中条件使用like的写法
- 开发中多条件搜索是使用StringBuilder创建sql语句
- 在DELPHI中,如果数据库备份文件地址是变量,恢复数据库的语句
- perl grep在条件语句中使用遇到的问题
- DataBinding系列(四):DataBinding进阶之路
- PAT乙级1070. 结绳(25)
- 小白浅谈android开发
- 常用的文件比较工具
- java内省
- delphi中使用sql语句加条件引用时值是一个整型变量的问题
- tcc分布式事务源码解析系列(一)之项目结构
- SpringMVC 重定向到其他系统的页面的两种方式
- 02:输出最高分数的学生姓名
- poj3723 Conscription
- SQL增删改查、SQL注入、事务
- TabLayout 资讯首页滑动
- photoshop mac版安装
- ajax请求后台返回json的两种处理方法