当前位置:主页>仓库管理软件> 列表

怎样对table表进行模糊查询和定位查询结果,不要用sql 找医药管理软件

仓库管理软件版1楼: 怎样对table表进行模糊查询和定位查询结果,不要用sql语言?

2楼: procedure TForm1.Button2Click(Sender: TObject);
begin
Table1.Filter := ''FieldName like ''''%ABC%'''''';//过滤
Table1.Filtered := True;

//按照关键字定位
if Table1.Locate(''FieldName'', ''ABC'', [loCaseInsensitive, loPartialKey]) then
begin

end;
end; 如金碟财务软件

3楼: to royal1442:
我要的是查询,不是过滤,且locate()函数只能左匹配,对于查找字段在中间无法实现,
我是想实现像excel那样的查询效果。

4楼: 两个方法,1用SQL查询后得出关键字段,然后在TABLE1 LOCATE关键字段

select id from a where name=''%条件%''
查出id后
table1.locate(''id'',id,[]);
第二种方法循环一次TABLE1表,编写字符串查找函数查找

5楼: to 小小东:
编写字符串查找函数查找我知道要用pos(),但不知具体怎么用和定位,
至于第一种方法我会用,所以我说不要用sql

6楼: 哦

仓库管理软件版7楼: 可以用table,query的GotoNearest,FindNearest方法实现模糊查询和定位记录

8楼: to shixvbing:


能具体举个例子怎么应用吗?

9楼: 1、with Table1 do
begin
SetKey;
FieldByName(''State'').AsString := ''CA'';
FieldByName(''City'').AsString := ''Santana'';
GotoNearest;
end;
2、 Table1.FindNearest([Edit1.Text]);
但我感觉还是用SQL语句的好,既然是编程,实现的方法很多,但我认为应该用好的
方法来实现,你说呢?

10楼: 我试了一下,GotoNearest和FindNearest只能进行左匹配查询,根本不能模糊,如果查询的字在中间或在后面,它就定位到一个乱七八糟的位置。
我不用sql是因为它没办法做成一个通用的查询,而且有点曲折。

11楼: to swns:
又不想用SQL,又要进行模糊查询!?好像没有这么好的事情吧?建议你还是学习一下SQL,若你长期做数据库开发,学习一下会受用相当长的一段时间的!而且学习模糊查询之类的简单SQL只要一、两天就足够了,何乐而不为呢??

12楼: sql不是我不会用,我只是想看看还有没有更直接的方法而已! 如医药管理软件

13楼: 哦,原来是这样...我也曾经尝试过,但是最终还是无功而返了。或许最终你会找到一条不用SQL的方法进行模糊查询,但是最后回过头来想想好像并没有实现你要的最直接、最简捷高效的目的。我想用SQL应该是进行模糊匹配查询的最佳途径了(否则SQL也就失却了它的意义了,你说呢?)。我觉得即使你找到了某些可以进行模糊查询的控件,它的源代码中应该也是封装了SQL而已...

仓库管理软件版14楼: 我用delphi做的很多程序都是用sql语言,基本上可以用sql语言的地方我都用了,就连不能用sql语言的地方也用了,但正因为用多了,所以更知道哪些地方用sql语言比较方便,那些地方用sql语言比较麻烦。其时有时delphi自带的函数比sql语言好用多了。

15楼: 效率是最重要的


能用SQL就用SQL
请参考
http://www.delphifans.com/SoftView/SoftView_1039.html
Delphi数据库模糊查询功能的改进

16楼: 返朴归真!——SQL

17楼: 第一種是過濾方法:
Table1.Filter := ''FieldName like ''''%Filter%'''''';
Table1.Filtered := True;

第二種是定位方法
if Table1.Locate(''FieldName'', ''Locate'', [loCaseInsensitive, loPartialKey]) then

18楼: 没有谁能提点建设性的意见吗?
都说许多遍不要用sql语言,还是有很多人说用sql。
还有,bbscom,你到底有没有看,上面已经有人提过这种方法,我试过不行了,现在你又提,有没有搞错。

19楼: table.first;
while not table.eof then
begin
if pos(''abc'', tablefiles)>0 then //tablefiles 是你要查找表的字段
begin
/ ////
end;
table.next
end;

20楼: 不知道你是想要干什么?如果是要把这些记录找出来编辑,不用sql语句我认为做不到。

仓库管理软件版21楼: 定位,和定位下一个!