데이터셋 북마크 DataSet Bookmark
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 처리방식대로 곧바로 파괴된다.
그래서 자연스럽게 북마킹이 된다.
'Delphi Tip > 데이터베이스' 카테고리의 다른 글
데이터베이스(Database)에 실행파일 저장 (0) | 2024.06.14 |
---|---|
델파이 데이타베이스 기초 5 (0) | 2023.10.07 |
델파이 데이타베이스 기초 4 (0) | 2023.10.06 |
델파이 데이타베이스 기초 3 (0) | 2023.10.05 |
델파이 데이타베이스 기초 2 (0) | 2023.10.04 |
댓글