with adoquery1 do begin active:=false; sql.clear; sql.add('select * from table where field='+''''+'%'+edit1.text+'%'+''''); active:=tRUE; end;Filter:='field'+''''+'%'+edit1.text+'%'+'''';
with adoquery1 do begin active:=false; sql.clear; sql.add('SELECT * FROM table WHERE field LIKE '+''''+'%'+edit1.text+'%'+''''); active:=tRUE; end; 用这样多滤。
begin
active:=false;
sql.clear;
sql.add('select * from table where field='+''''+'%'+edit1.text+'%'+'''');
active:=tRUE;
end;Filter:='field'+''''+'%'+edit1.text+'%'+'''';
begin
active:=false;
sql.clear;
sql.add('SELECT * FROM table WHERE field LIKE '+''''+'%'+edit1.text+'%'+'''');
active:=tRUE;
end;
用这样多滤。
所以我想采用的可能性比较小,如果采用filter的方式应该速度比较快,但是我不知道通配符是什么?希望那位告知,另外My_first(小@_@小) ,您所说的那种通配符也不行,我刚才试验了一下,不知道为什么?(%作为通配符的那种)
mybook是书签
最快的应该算是存储过程.
通过Filter输入的过滤字符串,最终还是要解析成sql server
一般SQL语句处理的步骤
SQL Server首先对该sql语句进行预编译 建立一个规范化的查询树。
查询优化和在高速缓存中建立查询计划。你可以通过查询分析器看看。最终还是连成了字符。 当数据很大,最好是先过滤再取数据。