5.1.10 UpdatePostedUrl 저장 프로시저

웹 로봇으로 웹 페이지를 수집하면 DBM ForAll에게 DBMS에 저장할 것을 요청합니다. 이와 같은 내용은 StorePostedUrl 시퀀스 다이어그램을 보면 알 수 있습니다. 그리고 시퀀스 다이어그램을 보면 DBM ForAll은 AddPostedUrl 저장 프로시저를 사용하기로 약속하였습니다.

그리고 수집한 페이지 내부에 링크를 다시 수집 대상 후보 사이트로 추가하는 부분이 있는데 앞에서 작성한 AddSeedSite 저장 프로시저를 이용하면 되므로 추가로 작성할 필요가 없습니다.

수집한 웹 페이지 정보를 추가할 때는 이미 수집한 웹 페이지인지 확인할 필요가 있습니다. 만약 이미 수집한 웹 페이지라면 내용을 변경하고 그렇지 않으면 추가하면 되겠죠.

이미 수집한 웹 페이지인지 확인하는 저장 프로시저는 ExistedPostedUrl 저장 프로시저로 만들었습니다.

수집한 페이지 내용을 변경하는 저장 프로시저는 UpdatePostedUrl 이름으로 작성합시다.

입력 인자로 페이지 주소, 요청한 원래 주소, Seed 사이트에서의 상대적 깊이, 수집한 시각, 수집한 페이지의 내용, 페이지 제목이 필요합니다.

ALTER PROCEDURE dbo.UpdatePostedUrl
    (
    @Url varchar(200),
    @OriginUrl varchar(200),
    @Depth int,
    @PostedTime DateTime,
    @PostedContent varchar(MAX),
    @Title varchar(200)
    )

update 쿼리문을 이용하여 전달받은 내용으로 항목 내용을 변경합니다. 물론 웹 페이지 주소를 PrimaryKey로 하므로 where 절은 Url 값을 사용합니다.

update PostedUrlTable
set OriginUrl = @OriginUrl,
Depth = @Depth,
PostedTime = @PostedTime,
PostedContent = @PostedContent,
Title = @Title
where Url=@Url

▷ UpdatePostedUrl 저장 프로시저

ALTER PROCEDURE dbo.UpdatePostedUrl
    (
    @Url varchar(200),
    @OriginUrl varchar(200),
    @Depth int,
    @PostedTime DateTime,
    @PostedContent varchar(MAX),
    @Title varchar(200)
    )
AS
    update PostedUrlTable
    set OriginUrl = @OriginUrl,
    Depth = @Depth,
    PostedTime = @PostedTime,
    PostedContent = @PostedContent,
    Title = @Title
    where Url=@Url
RETURN