본문 바로가기
Delphi Tip/데이터베이스

데이터셋 북마크 DataSet Bookmark

by MonoSoft 2024. 6. 7.
728x90
반응형

데이터셋 북마크 DataSet Bookmark

728x90

 

 

 

TBookMarker = class(TInterfacedObject)

private

FBookMark: TBookMark;

FDataSet: TDataSet;

protected

constructor Create(ADataSet: TDataSet);

dynamic; destructor Destroy; override;

public

class function BookMark(ADataSet: TDataSet): IInterface;

end;

 

implementation

 

class function TBookMarker.BookMark(ADataSet: TDataSet): IInterface;

begin

Result:= TBookMarker.Create(ADataSet);

end;

 

constructor TBookMarker.Create(ADataSet: TDataSet);

begin

FDataSet:= ADataSet;

FBookMark:= FDataSet.GetBookmark;

end;

 

destructor TBookMarker.Destroy;

begin

if Assigned(FBookMark) then begin

if FDataSet.BookmarkValid(FBookMark) then

begin

FDataSet.GotoBookmark(FBookMark);

end;

 

FDataSet.FreeBookmark(FBookMark);

end;

 

inherited;

 

end;

 

 

사용법

 

procedure TViewUser.SearchActionExecute(Sender: TObject);

begin

TBookMarker.BookMark(DataSet1); //검색

stmt

end;

 

TBookMark.BookMark는 클래스 메소드인데 반환값이 IInterface이다

그래서 메소드가 종료되면 델파이Win32의 interface 처리방식대로 곧바로 파괴된다.

그래서 자연스럽게 북마킹이 된다.

 

728x90
반응형

댓글