关于TAdoTable的Lookup方法,它是每次都执行从头找的吗?新手问题
举个例子,比如说有这样一个表T:其中ID是主键,ATIME是倒序索引存的时间,ANUM是数量,ANAME是货物名。大体数据如下(用MSSQL2005的“打开表”):
ID ANUM ATIME ANAME
1 100 2014/1/22 A
2 100 2014/1/23 A
3 80 2014/1/24 A
4 100 2014/1/24 B
现在的情况是,我要用adt:TAdoTable来插入数据,数据大概是:
ANUM,ATIME,ANAME = (100,2014/1/26,A)
但我想插入的时候,判断最新的ATIME对应的货物数量是否和要插入的数据一致,一样我就不插入(事实上这样来看就是要插入,因为24日A货物的数量是80,不等于100)。
请问:如果我在使用adt.append前加入:if adt.Lookup('ANAME','A','ANUM')=100 then
这样它会Lookup到ID为几的那条记录?我如果在IF 前再增加一行
adt.Lookup('ANAME','A','ANUM');
则IF 里面Lookup到的ANUM值是ID为几的记录里的?
如果我先使用了append把那数据加进去了,再执行Lookup,会找到ID=5的新加记录吗?
如果都为ID=1的记录,能不能给TAdoTable加按时间排倒序,让他能够Lookup到最新的那一项数据。尽量不改表索引和结构。