프로그래밍 기술/웹 검색 엔진 만들기

5.1.9 GetFrontCandidate 저장 프로시저

언제나휴일 2017. 12. 6. 10:30
반응형

5.1.9 GetFrontCandidate 저장 프로시저


 

 CandidateTable의 맨 앞에 있는 요소 정보를 얻어오는 저장 프로시저를 만듭시다. 저장 프로시저 이름은 GetFrontCandidate로 결정할게요.

 

 인자는 OUTPUT 유형으로 수집 후보 페이지 주소와 Seed 사이트에서의 상대적 깊이를 선언합니다. 그리고 수집 후보 대상이 없을 수도 있으니 이를 확인하는 인자도 선언합니다.

CREATE PROCEDURE dbo.GetFrontCandidate

    (

    @Url varchar(200) OUTPUT,

    @Depth int OUTPUT,

    @Getted int OUTPUT

    )

 

 먼저 CandidateTable에 항목 개수를 얻어옵니다. 항목 개수를 얻어오기 위해 변수 선언이 필요하고 GetCountCandidate 저장 프로시저를 실행합니다.

Declare @ElemCount int

Exec GetCountCandidate @ElemCount OUTPUT

 

 만약 항목 개수가 0이면 Getted 변수 값을 0으로 설정합니다.

if @ElemCount = 0 begin

    set @Getted = 0

end

 

 항목 개수가 0이 아니면 일련 번호의 최소값을 얻어온 후에 해당 항목의 정보를 얻어옵니다. 그리고 해당 항목을 CandidateTable에서 제거합니다. 일련 번호를 기억할 변수 선언도 필요합니다.

Declare @SeqNo int

else begin

    Exec GetMinSeqNo @SeqNo OUTPUT

    Exec GetCandidateBySeqNo @SeqNo, @Url OUTPUT, @Depth OUTPUT

    Exec RemoveCandidate @SeqNo

    set @Getted = 1

end

 

GetFrontCandidate 저장 프로시저

CREATE PROCEDURE dbo.GetFrontCandidate

    (

    @Url varchar(200) OUTPUT,

    @Depth int OUTPUT,

    @Getted int OUTPUT

    )

AS

    Declare @ElemCount int

    Declare @SeqNo int

 

    Exec GetCountCandidate @ElemCount OUTPUT

 

    if @ElemCount = 0 begin

        set @Getted = 0

    end

    else begin

        Exec GetMinSeqNo @SeqNo OUTPUT

        Exec GetCandidateBySeqNo @SeqNo, @Url OUTPUT, @Depth OUTPUT

        Exec RemoveCandidate @SeqNo

        set @Getted = 1

    end

RETURN

 

반응형