没有索引的Table如何查找记录?

  • 主题发起人 主题发起人 import
  • 开始时间 开始时间
I

import

Unregistered / Unconfirmed
GUEST, unregistred user!
很简单,自己从头至尾搜索一遍就可以了!虽然效率低了一点儿,也没有办法了!不过可以做一个通用的过程,以后就只要调用就可以了!!!:) ///调用方法:Locate(Table1, Table1LName, 'Test');
///Table1就是需要查找的表了,Table1Name就是需要查找的字段,'Test'就是需要查找的值了。
Function Locate( const oTable: TTable; const oField: TField;
const sValue: String): Boolean;
var
bmPos : TBookMark;
bFound : Boolean;
begin
Locate := False;
bFound := False;
If not oTable.Active then Exit;
If oTable.FieldDefs.IndexOf( oField.FieldName ) < 0 then Exit;
bmPos := oTable.GetBookMark;
With oTable do
begin
DisableControls;
First;
While not EOF do
if oField.AsString = sValue then
begin
Locate := True;
bFound := True;
Break;
end
else Next;
end
If (Not bFound) then oTable.GotoBookMark( bmPos);
oTable.FreeBookMark( bmPos );
oTable.EnableControls;
end;
 
后退
顶部