请教数据库表封装的一个技巧
glink 2005-10-28 08:36:23 我设计一个类:
TOper =class(TDataSet)
protected
FID: integer;
FQuery: TADOQuery;
FDataSource: TDataSource;
public
constructor create(AOwner: TComponent);override;
destructor destroy;override;
property query: TADOQuery read FQuery write FQuery;
property dataSource: TDataSource read FDataSource write FDataSource;
end;
我希望一个具体对象aOper(:TOper),当我运行aOper.next的时候,实际效果与aOper.query.next一样,但实际我一运行aOper.next的时候,总是提示我不能在一个没有打开的dataset中执行next。
实现aDiary.next的一个笨办法就是在public中定义一个next的procedure,然后写上:FQuery.next,因此一运行aDiary.next,实际运行的是aDiary.query.next。但是TDataset中已经有一个next,就是无法直接继承,这个笨办法造成的后果是,TDataset中的first、prior、last等procedure都无法直接继承,必须在public中一个一个举行定义,然后编写相关的代码。
有没有一个简单的命令,直接将query与TDataset中的表联系起来,以后都可以继承Tdataset中的procedure,以后运行aDiary.next,aDiary.post等命令的时候,实际是对query举行操作,而不发生错误?