请教各位大富翁这句sql怎么写(50分)

  • 主题发起人 diamond~
  • 开始时间
D

diamond~

Unregistered / Unconfirmed
GUEST, unregistred user!
select * from spxx where copy(spbh,1,length(abm))=abm
我想从商品信表中查找出代码前lenth(abm)是abm的所有商品信息正确的写么写
 
select * from spxx where spbh like 'abm%'
 
楼上的可以
 
上面的老兄ok
 
单独写也许行但是下面就通不过说abm没定义
var
abm,asql:string;
begin
if (treeview1.Selected.parent=nil) then
begin
exit;
end;
abm:=copy(treeview1.selected.text,1,pos(' ',treeview1.selected.text));
with damo do
begin
adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.add('select * from s_spxx where spbh like 'abm%''); //变量用单引号
adoquery1.open;


 
高手快说解决办法
 
改一下 用这个好点:
format('select * from s_spxx where spbh like ''%s%'';',[sbm])
 
adoquery1.sql.add('select * from s_spxx where spbh like '''+abm+'%''');

变量是无法直接传递到SQL中去的。
 
adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.add('select * from s_spxx where spbh like :aaa);
adoquery1.Parameters.ParamByName('aaa').Value:=abm+'%';
adoquery1.open;
 
同意楼上
 
同意嘀嗒的意见!
aaa表示参数
然后在给参数赋值!
 
先设一变量如,b:string;
b:='select * from s_spxx where spbh like %'+abm+'%'';
然后再
adoquery1.sql.add(b);
OK,搞定
 
顶部