望高手不吝指教:ado+access中字符匹配之参数变量问题 (28分)

U

units

Unregistered / Unconfirmed
GUEST, unregistred user!
table:MainTable;字段Category
str是字符变量

想找出所有Category字段的左边与str相等而整个值又不等于str的记录,却总是找不到
很多方法都试过了,包括在后面加*号,或者使用left函数,都不行,使用adodataset的
commandtext,望大侠指教。
(我在access里面的直接写入sql语句测试无论是用*还是left函数都可以得到正确结果,
可是一到ado里面要使用变量参数就怎样都不行了)
 
不会没有人知道怎么回答这个问题把。
其实很简单,说白了就是怎样用ado实现
找出所有某字段前面字符等于字符变量str,而
又比str长的记录,有答案马上放分
 
SELECT * FROM a WHERE aa LIKE '*' + str

SELECt * FROM a WHERE aa LIKE '%' + str
 
to ankery & bbs-wqt:

可否写出完整的的adodataset.commandtext的赋值语句?
即ADODataSet1.CommandText:=
的右边应该如何写,因为难点就在这里,多谢
(另外是左边匹配,不是右边匹配)
 
ADODataSet1.CommandText:=
'select * from MainTable where Category like ''*'+str+''''
 
to xiaolin0522:
还是不行阿,我的sq语句如下,请检查,感谢!
SelectGroup1 := 'kkkk';
DataModule1.ADODataSet1.CommandText := 'select * from MainTable where Category <> :SelectGroup1 and Category like :SelectGroup1+''*'+'''';
DataModule1.ADODataSet1.Parameters.ParamByName('SelectGroup1').Value := SelectGroup1;
 
ADODataSet1.CommandText:=
'select * from MainTable where Category <> '''+str+'''like ''*'+str+''''
 
to xiaolin0522大侠:

因为是要字段的左边匹配字符串变量,所以*应该是不是放在str的右边,如果是
应该怎么写呢?万分感谢!!
 
adoquery1.Close;
adoquery1.sql.clear;
adoquery1.sql.text:='select * from xs where xm like :var0 and xm<>:var1';
adoquery1.Parameters[0].value:=edit1.text+'%';
adoquery1.Parameters[1].value:=edit1.text;
adoquery1.open;
用adodataset是一样的
 
成功啦!感谢诸位大侠的帮助,微薄分数,不成敬意。
 
多人接受答案了。
 

Similar threads

回复
0
查看
821
不得闲
回复
0
查看
685
不得闲
S
回复
0
查看
959
SUNSTONE的Delphi笔记
S
S
回复
0
查看
779
SUNSTONE的Delphi笔记
S
顶部