请大家帮忙看一条SQL模糊查询语句....ACCESS ( 积分: 50 )

R

reger

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TForm1.Button1Click(Sender: TObject);
begin
adodataset1.Close;
adodataset1.CommandType:=cmdtext;
adodataset1.commandtext:='select * from spiao where xname=so';
adodataset1.Parameters.Clear;
adodataset1.Parameters.AddParameter;
adodataset1.Parameters[0].name:='s0';
adodataset1.Parameters[0].datatype:=ftstring;
adodataset1.Parameters[0].Direction:=pdinput;
adodataset1.Parameters[0].Value:=edit1.text;
adodataset1.open;
end;

以上功能实现的是精确查询,但我想用的是如何查找关键中含有SO的记录,模糊关键字是Like,但我试了好几种方法,例如把查询语句改为:
select * from spiao where xname like "%so%"
或者
select * from spiao where xname like "*so*"

都不对(编译通过,无结果),请大家帮忙看一上,该如何写...
谢谢
 
O

ouyongke

Unregistered / Unconfirmed
GUEST, unregistred user!
你试试检查一下你的数据,确定有与"so"类似的吗?
大小写什么的呢?
单双引号问题?或者忘记加引号了?
后一句应该是正解,不过,如果是软件里用ADO连接而不是在Access里执行的话,都应该可以通过,下面是我写的东西里的一个句子:
sUnitCode : String;

sSql:='select * from Unit where UnitCode like '''+sUnitCode+'%'''';
//不过我是直接用TADOQuery执行的这个SQL语句的,他其他的参数都是默认的
//你都试试吧
 
R

reger

Unregistered / Unconfirmed
GUEST, unregistred user!
谢谢楼上,这样可以了,我是这样改的...


var so : String;

so:=edit1.text;
adodataset1.commandtext:='select * from spiao where xname like ''%'+so+'%''';
 
R

reger

Unregistered / Unconfirmed
GUEST, unregistred user!
接受答案了.
 
顶部