질문과 답변, 세팅정보 및 오류정보를 최대한 상세히 남겨주시면 보다 빠르고 정확한 답변을 드릴 수 있습니다.
중첩되는 질문이 없는지 확인하신 후 오류발생 페이지의 URL을 기입하여 질문해주세요. 그리고 질문에 대해 해결된 사항은 답변을 달아주시면 다른 회원님에게 좋은 자료가 됩니다.
  • 제   목 카테고리별 최신글 추출방법
  • 작성자 등록일 2013-07-27/14:27 조회수 1197
IF EXISTS (SELECT name FROM sysobjects WHERE id = object_id(N'a_Jboard_abstraction_S') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
DROP proc a_Jboard_abstraction_S
GO
CREATE proc a_Jboard_abstraction_S
 @ji_num smallint,
 @ji_pagesize int,
 @reply_view int,
 @notice_view int,
 @ji_insert nchar(1) output,
 @ji_css nvarchar(70) output
AS
 Declare @SQL1 nvarchar(100)
 Declare @SQL2 nvarchar(100)
 Declare @SQL3 nvarchar(1600)
 Declare @ji_synchro nvarchar(1)
 Declare @ji_tname nvarchar(20)
 Declare @jb_sort nchar(5)
 Declare @a_var nvarchar(22)
 Declare @b_var nvarchar(18)

 SELECT @ji_synchro=ji_synchro, @ji_tname=ji_tname, @jb_sort=jb_sort FROM a_Jboard_info WHERE ji_sort='00' and ji_num = @ji_num
 set @SQL1 = 'SELECT @a=ji_css FROM a_Jboard_info WHERE ji_sort=''00'' and ji_num = '+ cast(@ji_num as nvarchar(5)) +' '
 set @a_var = '@a nvarchar(70) output'
 exec sp_executesql @SQL1, @a_var, @a=@ji_css output
 set @SQL2 = 'SELECT @b=ji_insert FROM a_Jboard_info WHERE ji_sort=''00'' and ji_num = '+ cast(@ji_num as nvarchar(5)) +' '
 set @b_var = '@b nchar(1) output'
 exec sp_executesql @SQL2, @b_var, @b=@ji_insert output
 set @SQL3 = 'SELECT TOP '+str(@ji_pagesize)+' '+ @ji_tname +'.jb_idx, '+ @ji_tname +'.jb_ref, '+ @ji_tname +'.jb_re_level, '
 set @SQL3 = @SQL3 + @ji_tname +'.jb_sort, '+ @ji_tname +'.jb_name, '+ @ji_tname +'.jb_title, '+ @ji_tname +'.jb_titleTag, '
 set @SQL3 = @SQL3 + @ji_tname +'.jb_readNum, '+ @ji_tname +'.jb_conNum, '+ @ji_tname +'.jb_CWDay, '+ @ji_tname +'.jb_link, '
 set @SQL3 = @SQL3 + @ji_tname +'.jb_file, '+ @ji_tname +'.jb_pixel, '+ @ji_tname +'.jb_down, '
 set @SQL3 = @SQL3 + @ji_tname +'.jb_etc, '+ @ji_tname +'.jb_writeday, '
 set @SQL3 = @SQL3 + 'a_Jboard_info.ji_name, a_Jboard_info.ji_tname '
 set @SQL3 = @SQL3 +'FROM '+ @ji_tname +' WITH(INDEX('+ @ji_tname +'_ListOrder)) INNER JOIN a_Jboard_info '
 set @SQL3 = @SQL3 +'ON '+ @ji_tname +'.jb_sort = a_Jboard_info.jb_sort '
 set @SQL3 = @SQL3 +'WHERE '+ @ji_tname +'.jb_report <> ''1'' '
 -- @ji_num는 게시판의 코드를 대입합니다.
  if (@ji_synchro = '0' or @ji_num >= 7 and @ji_num <= 9)
  begin
  set @SQL3 = @SQL3 +'and '+ @ji_tname +'.jb_sort = '+ @jb_sort +' '
  end
 else
  begin
  set @SQL3 = @SQL3 +'and '+ @ji_tname +'.jb_caNum = '+ cast(@ji_num as nvarchar(5)) +' '
  end
 set @SQL3 = @SQL3 +'and a_Jboard_info.ji_synchro <> ''0'' ' 
 if (@reply_view = 0) set @SQL3 = @SQL3 +'and '+ @ji_tname +'.jb_step = ''0'' '
 set @SQL3 = @SQL3 +'ORDER BY '
 if (@notice_view > 0) set @SQL3 = @SQL3 + @ji_tname +'.jb_notice DESC, '
 set @SQL3 = @SQL3 + @ji_tname +'.jb_ref DESC, '+ @ji_tname +'.jb_step ASC'
 exec(@SQL3)
GO

1. 주 게시판의 코드가 1이고 그에 부속되는 카테고리를 구성한 게시판의 코드가 7, 8, 9 이렇게 세개가 있다는 가정에서 설명드립니다.
 
2. 우선 위의 소스중 주석부분인 '-- @ji_num는 게시판의 코드를 대입합니다.' 바로 아래 카테고리의 게시판코드 구간을 입력합니다.
게시판코드는 데이터베이스 a_Jboard_info 테이블의 ji_num 컬럼에서 확인할 수 있습니다.
 
3. 위 저장프로시저를 DB에서 실행시킵니다.
 
4. 주 게시판의 게시물 추출하면 아래와 같은 소스가 나오게 됩니다.
 <%=Notice("1","default_notice","365","6","29","","17288","","","","","../../")%>
 여기서 첫번재 인수인 "1"이 카테고리를 포함하는 게시판 코드입니다.
 해당 부분을 카테고리의 게시판코드를 대입합니다. 7 or 8 or 9
 
5. 위와 같이 구성시 카테고리 7, 8, 9의 게시물을 독립적으로 추출할 수 있습니다.

 
SNS google
    1. 회원등급: 마스터
    2. 작성글: 52개
    3. 작성댓글수: 1,288개
    4. 로그인: 4,495회
    5. 접속상태: 로그인
    6. 가입일: 2006-05-20
  • 국내 1호 조은보드 마스터 자격(?)을 보유한 운영자입니다.
    최대한 상세히 정보를 알려 주시면 답변시 많은 도움이 됩니다.
    오늘도 파이팅!!
로그인 하시면 댓글을 남길 수 있습니다.
타인의 명예를 훼손 또는 비방, 개인정보 유출 및 광고성 게시물을 삼가해 주세요.