310 likes | 495 Views
Seoul Education & Science Research Institue. Active Server Pages. 정 영 식. nurunso@comedu.knue.ac.kr http://nurunso.pe.kr. 제 5 장 : 게시판 만들기. ODBC 설정. Write. List. Search. Read. 1. ODBC 설정. 제어판 ODBC 데이터 관리자. 1. ODBC 설정. 시스템 DSN 선택. 1. ODBC 설정. DB Driver 선택. 1. ODBC 설정.
E N D
Seoul Education & Science Research Institue Active Server Pages 정 영 식 nurunso@comedu.knue.ac.kr http://nurunso.pe.kr
제5장 : 게시판 만들기 • ODBC 설정 • Write • List • Search • Read
1. ODBC 설정 • 제어판 ODBC 데이터 관리자 1. ODBC 설정
시스템 DSN 선택 1. ODBC 설정
DB Driver 선택 1. ODBC 설정
DSN 설정 1. ODBC 설정
Database 선택 1. ODBC 설정
ODBC 설정 완료 1. ODBC 설정
2. Write • 게시판 구조 글 쓰기 List.asp Write_form.asp 검색 Search.asp DB 저장 쓰기 Write.asp 내용 Read.asp 저장 확인 Write_ok.asp 2. Write
Write_form.asp • 컨트롤 이름 Writer, email, home, subject, content • 글 올리기 : write.asp로 이동 2. Write
DB 연결 • Set DbCon = Server.CreateObject("ADODB.Connection") • DbCon.Open(“board”) • SQL문 작성 • DbCon.Execute sql • DbCon.Close 2. Write
입력된 값 얻기 • subject = Request("subject") • writer = Request("writer") • content = Request("content") • email= Request("email") • home=Request("home") • passwd = LCase(Request("passwd")) • today = left(now(), 16) 2. Write
SQL문 작성 1 • sql="INSERT INTO repute (num,subject,writer,email,home,visited, today,passwd,content) VALUES" • sql=sql& "(" & MaxNO & "" • sql=sql & ",'" & subject & "'" • sql=sql & ",'" & writer & "'" • sql=sql & ",'" & email & "'" 2. Write
SQL문 작성 2 • sql=sql & ",'" & home & "'" • sql=sql & "," & 0 & "" • sql=sql & ",'" & today & "'" • sql=sql & ",'" & passwd & "'" • sql=sql & ",'"&content&"')" • DbCon.Execute sql 2. Write
DB 연결 종료 및 이동 • DbCon.Close • Set DbCon=Nothing • Response.Redirect "write_ok.htm" 2. Write
3. List.asp • DB 연결 • Set Conn = Server.CreateObject("ADODB.Connection") • Conn.Open ("board") • Set RS = Server.CreateObject("ADODB.RecordSet") • RS.Open ("Select * From repute Order By num Desc"), Conn, 1, 1 3. list
새 글 표시 • <%if DateDiff("h",RS("today"),Now) < 24 then %> • 새 메시지 • <%End If%> • <%= RS("num") %> 3. list
Read.asp로 이동 • 제목 클릭 시 read.asp로 이동 <a href="read.asp?page = <%=CurrentPage%> & no = <%=RS("num")%> "> <%=RS("subject")%> </a> 3. list
List.asp 4 • Paging 용어 PageSize : 한 번에 뿌려줄 레코드 수 (기본:10) pageCount : 전체 레코드 수 AbsolutePage : 뿌려 줄 페이지의 위치 • 사용 예 전체 레코드 수 : 33개일 때 PageSize : 10으로 설정하면 PageCount는 4, 첫 페이지로 이동 시 AbsolutePage =1로 설정 3. list
Paging 1 • Paging 실제 1 • page = Request("page") • If page="" or page < "1" then • CurrentPage=1 • Else • CurrentPage=CInt(page) • End If 3. list
Paging 2 • Paging 실제 2 • If RS.BOF and RS.EOF then • CurrentPage=0 • Else • RS.AbsolutePage = CurrentPage • End If 3. list
레코드 수 • 전체 레코드 수 totalRecord = RS.RecordCount • 현재 페이지의 레코드 수 Do Until RS.EOF OR i > Rs.PageSize 3. list
Email 연결 • Email 연결 • <% If RS("email") <> "" then %> • <a href=mailto:<%= RS("email") %>> • <%End If%> • <%=RS("writer")%></a> 3. list
4. Read • 제목 클릭 시 read.asp로 이동(list.asp) <a href="read.asp?page= <%=CurrentPage%> & no= <%=RS("num")%> "> <%=RS("subject")%> </a> • 변수 설정 Page = request(“page”) No = request(“no”) 4. Read
Visited • 조회 수 증가 • sqlstmt = "UPDATE repute SET visited=visited+1 WHERE num=" & no • DbCon.Execute sqlstmt • 조회 수 표시 • sqlstmt = "SELECT * FROM repute WHERE num =" & no • Set Result = DbCon.Execute(sqlstmt) 4. Read
List.asp로 이동 • <a href="list.asp?page=<%=page%>"> • <imgsrc="../img/list.gif" alt=목록 border=0> • </a> 4. Read
전후 글 이동 1 • sqlstmt = "select MAX(num) from repute where num <" & no • set rsd = DbCon.Execute(sqlstmt) • prevnum = rsd(0) • sqlstmt = "select MIN(num) from repute where num >" & no • set rsd = DbCon.Execute(sqlstmt) • nextnum = rsd(0) 4. Read
전후 글 이동 2 • <%if IsNull(prevnum) then%> • <img src=../img/back.gif border=0 alt=“글없음"> • <%else%> • <a href=read.asp?page=<%=page%> • &no=<%=prevnum%>> • <img src=../img/back.gif border=0 alt="이전”> • </a> • <%end if%> 4. Read
5. Search • Keyfield • <select name="keyfield" size="1"> • <option value="subject">제목</option> • <option value="content">내용</option> • <option value="writer">작성자</option> • <option value="email">E-Mail</option> • </select> 5. Search
Keyword • Keyword 얻기 • <input type="text" size="30" maxlength="30" name="keyword"> • <input type="submit" value="검색"> • Keyword 검색 Select * From repute Where subject Like '%양심%' 5. Search
전후 글 이동 • <a href = "search.asp? • page = <% =CurrentPage+1%> • & keyfield = <% =keyfield%> • & keyword = <% =keyword%>"> • 이전 글 • </a> 5. Search