您好我需要一些帮助来创建模板函数(因为如果我是正确的,它们在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函数为每个表创建一个类?
答案 0 :(得分: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;