首页  编辑  

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

Tags: /超级猛料/Database.数据库相关/安装、杂项和其他/   Date Created:

很简单,自己从头至尾搜索一遍就可以了!虽然效率低了一点儿,也没有办法了!不过可以做一个通用的过程,以后就只要调用就可以了!!!:)

///调用方法: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;