急!怎样多条件查询?(100分)

  • 主题发起人 主题发起人 fqr
  • 开始时间 开始时间
F

fqr

Unregistered / Unconfirmed
GUEST, unregistred user!
我有一个数据库我想用几个条件组合进行查询,比如数据库有两个字段aa和bb,
我要定位aa>10 并且 bb='厂家'的记录,在foxpro中的命令为:
locate for aa>10 and bb='厂家'
但在Delphi中的locate方法好象实现不了这个功能,而我只需要定位记录,所以
又不想用 SQL select,请问各位高手,应该用什么方法?
很急!单位的程序作到这进行不下去了,请各位多多帮忙!!!感谢!!!
 
可否增加一marked字段
update tablename
set marked=true
where aa>10 and bb='厂家'
 
为什么不想用 SQL select,用 SQL select+where
比Update快.
 
就是!SQL语法是公认的,为何不用?
locate、findkey等这些鬼玩意还有谁用啊?
 
var
a:integer;
b:string;

a:=tablename.fieldbyname('aa').value;
b:=tablename.fieldbyname('bb').value;
if (a>10) and (b='厂家') then //找到记录了
//do something you want

如果用sql就更简单了,sql语句如下:

select * from tablename
where (aa>10) and (bb='厂家')
 
使用Filter即可实现

Table1.Filter:='aa > 10 and bb="厂家"'
Table1.Filtered:=True;
 
使用Filter设置过滤,如Table1.filter:='a>10'
然后在过滤范围中LOCATE(bb,'厂家',[lopartialkey]);
 
Select * from table1 where aa>10 and bb=‘厂家’
 
ADOTable里使用不了以上的語句.
只能在ADOQuery使用,但不能表單之間連接關係.
 
不好意思,这两天猫坏了,没法上网,今天上网看到这么多位仁兄帮忙真是十分感谢!
不过还是想再问一下,我是想在数据库中查找定位到某条记录,然后对其修改,而
SQL select 语句是将符合条件的某些数据提取出来,似乎不大用的上吧(我刚接触Delphi,
问的可能有点傻,请各位大侠多多指教.)?
 
建议使用sqlbuilder,很好用的
 
拜托!各位老大给我说说怎么用SQL Select在数据库中定位数据好吗?
 
要找出来修改,不如直接用update语句,查找修改一次完成。
update xxtable set aa=newaa bb=newbb where aa>10 and bb='厂家'
 
to daiqingbo
如果我仅仅想定位,而不更改,用什么方法呢?
 
先用SQL Select 查找,然后根据主关键字用Locate定位.
 
我知道如何用locate定位aa=10 并且 bb='厂家'
var
a:array[0..1] of variant;
a[0]=10;
a[1]='厂家';
table1.locate('aa;bb',a,[]);
至于aa>10 ,还没研究清楚
 
多人接受答案了。
 
后退
顶部