有一个sql语句,用到变量bm(int)。我想查出以他开头的,其后有两个字节的所有记录。
比如有一个表
id name
10 luck
1001 good
sql语句:
bm:=10;
select max(id) from student where id like bm+'__'
在查询分析器中单独运行没错误,但在存储过程中有错,
还有如果用TADOquery.sql; like后面怎么写。
到底怎么样处理sql中单引号和字符串的单引号。
1:在查询分析器中应怎么写。
2:在delphi的TADOquery.sql中应如何写。
比如有一个表
id name
10 luck
1001 good
sql语句:
bm:=10;
select max(id) from student where id like bm+'__'
在查询分析器中单独运行没错误,但在存储过程中有错,
还有如果用TADOquery.sql; like后面怎么写。
到底怎么样处理sql中单引号和字符串的单引号。
1:在查询分析器中应怎么写。
2:在delphi的TADOquery.sql中应如何写。
解决方案 »
- 我哭了啊,我老婆说我QQ中的好友全是男的,说我是同性恋,我怎么办啊,过年了,给大家散散分,大家帮我出出主意啊。呵呵。
- 使用CreateFrm函数需要先声明哪个类?
- 好累啊,散分~
- ****菜鸟问题,立刻结帖 ,大家快来啊*******
- 怎样实现报表打印结果每一行都有表头
- 如何关闭或者打开一个服务啊(在windows2000)???
- 如何提高基础?
- 求教: 如何使一个MDI子窗体具有类似于模态窗体的特性,就是没有关闭,就不能进行其他操作!
- 请教两个QuickReport报表问题,请进来看看,帮我解决这个问题,谢谢!(up有分)
- 我这样用QuickRep.Page.Orientation = poLandScape为什么总是说poLandScape没有定义!
- 请问高手学bcb应想那方面发展?
- Delphi6里面的TServerSocket再Delphi7里面怎么没有了?
2.如果在查询分析器中测试成功了,把SQL语句搬到TADOQuery.SQL中就OK了,注意单引号。
3.Delphi中单引号 '即是单引号,也是转义字符,要表示SQL里的单引号可用''两个单引号来表示。
比如:ADOQuery1.SQL.Add('update users set passwd='''+password+''' where useID='''+useid+'''');msn:[email protected]
select * from studentwhere id like @bm
2:
bm:='10'+'%'
'select * from student where id like '+''''+bm
:
if id is not char then
:转换一下就可能 cast ,convent
在查询分析器中,DECLARE @bm AS Integer
-- 下面是赋值,在Delphi中直接传递即可
-- Set @bm = 10
Select MAX(id) From student Where id like CONVERT(VARCHAR(10),@bm) + '%'
在TADOquery.sql中如果有变量,那如何写呢
to: gechaosa(潮)
'select * from student where id like '+''''+bm中 为什么还要加''''呢
create table test3
(
id int,
name varchar(16),)
insert into test3(id,name) values(10,'luck')
insert into test3(id,name) values(1001,'good')
insert into test3(id,name) values(1101,'good')
insert into test3(id,name) values(10001,'good')
declare @S varchar(16)
set @S='10%'
select * from test3
where (len(cast(id as varchar))=4) and (cast(id as varchar) like @S)
---------------------
//假设Name是VarChar类型 ,下面三种是等价的
//相当于 SQL里面的 select * from test where Name='11111'
Edit1.Text:='11111';
ADOQuery1.sql.Add('select * from test where Name='+QuotedStr(Edit1.Text));
ADOQuery1.sql.Add('select * from test where Name='+''''+Edit1.Text+'''');
ADOQuery1.sql.Add('select * from test where Name='''+Edit1.Text+''''); //假设Num是数字类型 ,或时间
ADOQuery1.sql.Add('select * from test where Num='+Edit1.Text);