请教一段语句的解释(30分)

  • 主题发起人 主题发起人 nofuture
  • 开始时间 开始时间
N

nofuture

Unregistered / Unconfirmed
GUEST, unregistred user!
with ADOquery1 do
begin
close;
SQL.add('SELECT * FROM tb_stock');
SQL.add('where'+"+searchwhat+"+'like:a order by tradecode');
parameters.ParamByName('a').Value:='%'+Trim(Edit1.Text)+'%';
open;
end;
其中searchwhat是一个下拉菜单的值,edit1是所搜索值的输入文本框.
问题:这个a是什么含义?怎么能在后面赋值?前文中并没有定义,parameter这一句的含义是什么?为什么要在edit1.value的值旁边加上两个%?
 
1。:a是一个参数。
2。
3。
4。对该参数进行赋值
5。%是通配符,可以代替任何字符串
6。整个sql.text:=select * from tb_stock where A like '%B%' order by tradecode:查询tb_stock表中,A字段的值中包含B字符串的所有记录,按tradecode字段的值进行排序
7。A like '%B%'表示A字段包含B字符串
捡分数的^^
 
a是字段名
Parameters是ADOQuery的属性,用于定义传入参数
%是通配符,意思是查出所有包含Edit1.Value关键字的记录。
 
ps:A like 'B%' 表示A字段的最左边的字符串为B
 
你这个SQL不对吧
整个SQL应该是:
select * from tb_stock where 'searchwhat' like: %B% order by tradecode.
我就奇怪为什么那个a不加引号呢?
后面哪个字符串%B%怎么也不加引号呢?
 
with ADOquery1 do
begin
close;
SQL.add('SELECT * FROM tb_stock')

SQL.add('where'+"+searchwhat+"+'like:a order by tradecode')
//查找searchwhat下拉菜单的值列中包含变量A的记录
parameters.ParamByName('a').Value:='%'+Trim(Edit1.Text)+'%'
//a是作为变量的,其中%是通配符
open
//执行
end;

派分吧,有不明白的可以继续留言
 
我觉得回答别人问题首先要自已搞清楚后再回答,免得耽误别人啊,他的:a本来就是一个参数,%是一个通配符,这个在sql语句中很容易理解的啊,如WHERE b like '%A%'(查询b段的值包含有字符A的记录{无论在b的那个地方都行})
 
:a就是sql的参数而已。
它的值就是'%'+Trim(Edit1.Text)+'%',
 
是我问题没问清楚~[:(]
1.我看了T-SQL语法,[red]好象没有见过类似的形式,在a前面要加":",[/red]我当然知道a是参数,既然是参数,应该有对这个参数的定义,可是全文没有定义.我不明白!
2.既然A是参数,值为%B%,为什么语句里不加对这个加引号呢?
例如SQL帮助里这个语句:
CREATE TABLE t (col1 nchar (30));
INSERT INTO t VALUES ('Robert King');
SELECT *
FROM t
WHERE RTRIM(col1) LIKE '% King'
这个%king是加了单引号的.为什么上面那个语句里没有?

其实这是个很小的问题,整个语句做什么的我明白,我就是不明白里面一些符号的使用语法!
 
SQL里使用:参数 叫 绑定变量
可能是你在你看的资料里没有找到。使用绑定变量可以加快查询的速度。
SQL语句会自动识别参数类型,然后进行转换,不用手动再加单引号。
 
那前面哪个冒号如何解释?
 
冒号就是一中标记了,没什么可解释了
 
晕,这话听起来郁闷,不能解释能去掉吗?
 
冒号是SQL的一种参数标记,就像你写函数时使用的形式参数差不多。
 
多人接受答案了。
 
后退
顶部