我有一个表ORDER结构如下:
ID ROOMNAME TABLEID STATUSID
PH20041226001 北京房 101 0
PH20041226088 北京房 101 1 我想达的的目的是这样的:
判断ORDER表里的是否存在如下条件的记录,如果有就把ID取出赋给一个变量S
ROOMNAME=北京房
TABLEID=101
STATUSID=0 我的语名是这样:
北京房值用ROOMN
101值用TABLEN
adotable3.Locate('roomname;tableid;statusid',vararrayof([roomn,tablen,0])[]) then
s:=adotable3.FieldByName('id').AsString
else
.
.
.
但明知道库里有记录符合条件了,程序总是执行ELSE下面的语句,是不是我的LOCATE语句出了问题,还是因为有空格的情况呢?我在取值时已经加上TRIM了
ID ROOMNAME TABLEID STATUSID
PH20041226001 北京房 101 0
PH20041226088 北京房 101 1 我想达的的目的是这样的:
判断ORDER表里的是否存在如下条件的记录,如果有就把ID取出赋给一个变量S
ROOMNAME=北京房
TABLEID=101
STATUSID=0 我的语名是这样:
北京房值用ROOMN
101值用TABLEN
adotable3.Locate('roomname;tableid;statusid',vararrayof([roomn,tablen,0])[]) then
s:=adotable3.FieldByName('id').AsString
else
.
.
.
但明知道库里有记录符合条件了,程序总是执行ELSE下面的语句,是不是我的LOCATE语句出了问题,还是因为有空格的情况呢?我在取值时已经加上TRIM了
既然用ADO,为什么不用SQL语句和ADOQuery来解决呢,那样开销要小得多,Select id From [order] Where RoomName = '北京房' and 后面的条件自己写
如果有个10W.100W的数据..不是要搞死人??
else
a:=1;
b :=1;
不管你locate是否为true都执行b:=1,如果加上
else
begin
a:=1; //不执行
b:=1; //不执行
end ;
adotable3.close;
adotable3.open;
adotable3.first;
ADOtable3.Locate('roomname;tableid;statusid',vararrayof([roomn,tablen,0])[]) then
s:=adotable3.FieldByName('id').AsString
else
.locate不会回转查询,从头查到尾吗?