0

嗨,我需要一些帮助来创建模板函数(如果我是正确的,它们在 c++ 中是已知的)。我正在使用 Delphi XE2,并且正在使用 MS Access 数据库编写数据库应用程序。

问题是我写的很多函数在不同的表上做同样的事情。所以我认为我可以创建模板函数,然后为不同的表使用不同的参数。

例如,有Locate在表或查询中定位特定记录的函数。现在我想为此制作一个模板功能,但我不知道该怎么做。

我想把函数放在我的数据模块的公共部分,所以我在想这个

function find(tableName: TADOTable, fieldName: String, fieldValue: String):Boolean

然后...

function TDataModule.find(tableName: TADOTable, fieldName: String, fieldValue:String): Boolean;
var SearchOptions : TLocateOptions;
 begin
  SearchOptions := [loCaseInsensitive]; 
  find := DataModule.tableName.Locate('fieldName', fieldValue, SearchOptions);
 end;

但这不想编译...

有什么方法可以制作某种模板函数,我可以将任何表作为参数传递,或者使用 getter 和 setter 函数为每个表创建一个类会更好吗?

4

1 回答 1

0
function TDataModule2.LocateData(AADOTable: String; AKeyFields: String; 
  AKeyValues: Variant; Options: TLocateOptions): Boolean;
var
  oComp: TComponent;
begin
  Result := False;
  oComp := FindComponent(AADOTable);
  if (oComp is TADOTable) and (oComp as TADOTable).Active then
    Result := (oComp as TADOTable).Locate(AKeyFields, AKeyValues, Options);
end;
于 2012-04-04T15:10:01.810 回答