1 / 37

인터넷 IV – 5 주차

인터넷 IV – 5 주차. 2005, 계원조형예술대학 멀티미디어 디자인과. 순서. AOD 2.1 Connection 객체 2.2 Command 객체 2.3 RecordSet 객체 미니프로젝트. ADO( Activex Database Object). ADO 란 ?. Activex Database Object 의 약어 윈도우 환경에서 프로그램을 개발할 때 데이터베이스를 제어하기 위해 사용 되는 데이터베이스 객체이다 . ADO 의 계층도. Connection 객체. Command 객체.

korbin
Download Presentation

인터넷 IV – 5 주차

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 인터넷 IV – 5주차 2005, 계원조형예술대학 멀티미디어 디자인과

  2. 순서 • AOD 2.1 Connection 객체 2.2 Command 객체 2.3 RecordSet 객체 • 미니프로젝트

  3. ADO(Activex Database Object)

  4. ADO란? • Activex Database Object의 약어 • 윈도우 환경에서 프로그램을 개발할 때 데이터베이스를 제어하기 위해 사용되는 데이터베이스 객체이다. • ADO의 계층도 Connection 객체 Command 객체 RecordSet 객체

  5. Connection 객체 • 응용프로그램에서 데이터베이스를 연결하기 위해 사용된다. • 연결할 서버와 데이터베이스를 설정한다. • 작업단계 • 데이터베이스를 생성(테이블작성) • ODBC등록 (DSN, 로그인이름, 암호) • 형식 Set 객체명=Server.CreateObject(“ADODB.Connection”) 객체명.Open(“DSN명”)

  6. Connection 객체(계속) • Connectioin 객체의 메소드 • Open : 데이터 원본에 대한 연결을 오픈한다. • Close : 열려있는 객체 및 이와 관련된 모든 종속 객체를 닫는다. • Execute : CommandText 속성에 지정된 SQL문 또는 저장 프로시저를 실행한다. • 예제 Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open ("access_1") SQLString = "INSERT INTO abc(name) VALUES ('" & name & "')" Conn.Execute SQLString Conn.Close

  7. RecordSet 객체 • Connection 객체에서 데이터원본과 연결하고 SQL문을 실행한 후 RecordSet객체를 생성한다. • RecordSet객체는 데이터베이스를 연결하고 명령을 수행한 결과값(레코드의 집합)을 받아올 때 만들어 진다. • 데이터베이스에 저장된 데이터 중 응용에서 필요한 데이터들만 가져와서 처리하는데, 이때 사용되는 객체가 RecordSet 객체이다.

  8. RecordSet 객체(계속) • 형식 SetCon객체이름= Server.CreateObject("ADODB.Connection") Set레코드객체이름= Server.CreateObject("ADODB.RecordSet") Con객체이름.Open (“DSN명”) Sql명 = "Select 필드명 From 테이블명" 레코드객체이름.Open Sql명, Con객체이름

  9. RecordSet 객체(계속) • 메서드 • Move : 현재 레코드가 위치한 곳에서부터 한쪽방향으로 레코드 이동(+,-로 설정) • MoveFirst : 현재 레코드 포인터를 맨 처음 레코드로 이동 • MoveLast :현재 레코드 포인터를 맨 마지막을 이동 • MoveNext :현재의 레코드 포인터를 한 레코드 다음으로 이동 • MovePrevious : 현재 레코드 포인터를 한 레코드 앞으로 이동

  10. RecordSet 객체(계속) • 속성 • BOF(Begin Of File)/EOF(End Of File) : 레코드의 처음/마지막을 알리는 속성 • AbsolutePage : 현재레코드가 포함될 페이지를 지정한다. • PageCount : Recordset객체에 들어있는 데이터의 페이지 수를 나타낸다 • PageSize : Recoreset객체에서 하나를 구성하는 레코드의 수를 나타낸다. • RecordCount : Recordset객체의 현재 레코드 수를 나타낸다.

  11. RecordSet 객체(계속) • 예제 Set Conn = Server.CreateObject("ADODB.Connection") Set Rs = Server.CreateObject("ADODB.RecordSet") Conn.Open ("access_1") SQLString = "Select name, addr From abc" Rs.Open SQLString, Conn

  12. 미니 프로젝트

  13. 1단계: DB 파일 생성하기 • DB 명 : minicyworld • Table 명: member • 기본키 : email

  14. 2단계 : ODBC를 등록한다 • DNS 명: cyworld • 제어판  관리도구  데이터원본(ODBC) 시스템DSN  [추가]버튼

  15. 2단계 : ODBC를 등록한다 • DNS 명: cyworld • 제어판  관리도구  데이터원본(ODBC) 시스템DSN  [추가]버튼

  16. 3단계 : ASP 프로그래밍 하기 • Minicyworld DB에 있는 member 테이블에 레코드가 삽입되도록 회원가입 페이지 작성 • regist.asp (회원가입 폼) • regist_ok.asp (회원가입 처리) • Member 테이블에 등록된 회원 email과 비밀번호로 로그인하는 페이지 작성 • login.asp (로그인 폼) • login_ok.asp (로그인 처리) • 회원찾기 페이지 작성 • member_search.asp

  17. 3단계-0: 회원가입 흐름도 회원가입버튼 클릭 regist.asp regist_ok.asp 회원가입 버튼 클릭 가입메시지확인 버튼 클릭 로그아웃 버튼 클릭 logout.asp login.asp member_search.asp 회원찾기클릭 검색버튼 클릭 로그인 버튼 클릭 login_ok.asp

  18. 3단계-1-1: 회원가입 폼 작성하기 • regist.asp <FORM name="registForm" method= "post" action="regist_ok.asp"> email1 email2 userPwd1 userPwd2 userName phone

  19. 3단계-1-2: 회원가입 처리 작성하기 • regist_ok.asp • 회원가입 처리를 하는데 필요한 변수 선언하기 Option Explicit 'Connection 객체 변수 Dim objDBConn Dim strSQL Dim strEmail, strUserName, strUserPwd, strPhone

  20. 3단계-1-2: 회원가입 처리 작성하기 • regist_ok.asp • Request 객체를 이용하여 전송되어온 값 가져오기 strEmail = Request.Form("email1") & "@" & Request.Form("email2") strUserName = Request.Form("userName") strUserPwd = Request.Form("userPwd1") strPhone = Request.Form("phone")

  21. 3단계-1-2: 회원가입 처리 작성하기 • regist_ok.asp • 쿼리(SQL)문 편집하기 strSQL = "INSERT INTO member ( email, password, name, phone )" strSQL = strSQL & " VALUES (" strSQL = strSQL & "'" & strEmail & "'," strSQL = strSQL & "'" & strUserPwd & "'," strSQL = strSQL & "'" & strUserName & "'," strSQL = strSQL & "'" & strPhone & "')" INSERT INTO member (email, password, name, phone ) VALUES (‘mloh@dreamwiz.com’, ‘1111’, ‘오미림’, ‘011-111-1111’)

  22. 3단계-1-2: 회원가입 처리 작성하기 • regist_ok.asp • Minicyworld DB의 member 테이블로 쿼리문 전송하기 Set objDBConn = Server.CreateObject("ADODB.Connection") objDBConn.Open ("cyworld") objDBConn.Execute strSQL objDBConn.Close Set objDBConn = nothing %> <script language="javascript"> <!-- alert("등록되었습니다"); location.href="login.asp"; //--> </script>

  23. 3단계-2-1: 로그인 폼 작성하기 • login.asp • 이 페이지에서 로그인 폼과 로그인 후 환영 메세지가 나오는 부분을 동시에 처리하고 있다. • Session 정보를 이용 • Session이 유효하지 않을 때는 로그인 화면이 • Session이 유효할 때는 로그인이 된 후의 화면이 보여지도록

  24. 3단계-2-1: 로그인 폼 작성하기 • login.asp <FORM name="loginForm" method="post" action="login_ok.asp"> userEmail userPwd

  25. 3단계-2-1: 로그인 폼 작성하기 • login.asp • Session 정보 이용하기 <% If Session("id") = "" Then %> 로그인 폼 <% Else %> <%=Session("name")%>님, 환영합니다.

  26. 3단계-2-2: 로그인 처리 작성하기 • login_ok.asp • 로그인 처리를 하는데 필요한 변수 선언 <% Option Explicit Dim strUserEmail, strUserPwd Dim strSQL Dim objDBConn, objRs %>

  27. 3단계-2-2: 로그인 처리 작성하기 • login_ok.asp • Request 객체를 이용하여 전송되어온 값 가져와 쿼리문 만들기 <% strUserEmail = Request.Form( "userEmail" ) strUserPwd = Request.Form( "userPwd" ) strSQL = "SELECT name FROM member " strSQL = strSQL & "WHERE email='" & strUserEmail & "' " strSQL = strSQL & "AND password='" & strUserPwd & "'“ %> SELECT name FROM member WHERE email=‘mloh@dreamwiz.com’ AND password=‘1111’

  28. 3단계-2-2: 로그인 처리 작성하기 • login_ok.asp • Minicyworld DB의 member 테이블로 쿼리문 전송하고 결과값 반환받기 • Session 생성하여 사용자 email과 이름 정보 저장하기 • 로그인 처리가 끝난 후 login.asp로 되돌아가도록 한다.

  29. 3단계-2-2: 로그인 처리 작성하기 <% Set objDBConn = Server.CreateObject("ADODB.Connection") Set objRs = Server.CreateObject("ADODB.RecordSet") objDBConn.Open ("cyworld") objRs.Open strSQL, objDBConn If Not objRs.BOF or Not objRs.EOF then Session("id")=strUserEmail Session("name")=objRS("name") Session.TimeOut = 30 End If objDBConn.Close Set objDBConn = Nothing %> <SCRIPT> location.href="login.asp" </SCRIPT>

  30. 3단계-3-1: 회원찾기 • member_search.asp • 회원검색 폼과 회원검색 처리를 한 파일에서 담당한다. • Hidden 객체 searchFlag 를 사용한 이유가 무엇인지 생각해보자. <FORM name=“searchForm" method="post" action=“member_search.asp"> userName

  31. 3단계-3-2: 회원찾기 폼 • member_search.asp • 회원검색에 필요한 변수 선언 <% Option Explicit Dim objDBConn Dim objRs Dim strSQL Dim strUserName, strSearchFlag %> SELECT name FROM member WHERE email=‘mloh@dreamwiz.com’ AND password=‘1111’

  32. 3단계-3-2: 회원찾기 폼 <HTML> <HEAD> < TITLE>어서오세요.</TITLE> </HEAD> <BODY> <FORM name="searchForm" method="post" action="member_search.asp"> <TABLE cellspacing="0" style="font-size:10pt"> <TR> <TD bgcolor="#DCDCDC" align="center" width=500> 이 름 <INPUT type="text" name="userName" size=20 maxlength=10> <INPUT type="hidden" name="searchFlag"> <INPUT type="button" value=" 검색 " onClick="document.searchForm.searchFlag.value='true';document.searchForm.submit();"> </TD> </TR> <TR> <TD height=50>&nbsp;</TD> </TR> </TABLE> </BODY> </HTML>

  33. 3단계-3-2: 회원찾기 처리 • member_search.asp • Request 객체를 이용하여 전송되어온 값 가져와 쿼리문 만들기 <% strUserName = Request.Form( "userName" ) strSearchFlag = Request.Form( "searchFlag" ) strSQL = "SELECT email, name, phone FROM member " strSQL = strSQL & "WHERE name='" & strUserName & "' " %> SELECT email, name, phone FROM member WHERE email=‘오미림’

  34. 3단계-3-2: 회원찾기 처리 • member_search.asp • Minicyworld DB로 쿼리문 전송 및 결과 받기 <% 'Connection 객체 생성 Set objDBConn = Server.CreateObject("ADODB.Connection") 'RescordSet 객체 생성 Set objRs = Server.CreateObject("ADODB.RecordSet") 'DB 열기 objDBConn.Open ("cyworld") 'SQL문 전송 및 결과 반환받기 objRs.Open strSQL, objDBConn %>

  35. 3단계-3-2: 회원찾기 처리 • member_search.asp • 반환 결과(RecordSet)으로 검색 결과 화면 작성하기 • 검색된 레코드가 있으면 화면에 나열하고 • 검색된 레코드가 없으면 메시지를 출력한다.

  36. <% If (objRs.BOF or objRs.EOF) AND strSearchFlag = "true" then %> <TR> <TD align=center>조건을 만족하는 결과가 없습니다.<BR>다시 검색해주세요. </TD> </TR> <% Else Do Until objRs.EOF %> <TR> <TD align="center"> <TABLE width=80%><TR> <TD> <%=objRs("name")%></TD> <TD> <%=objRs("phone")%></TD> <TD> <%=objRs("email")%></TD> </TR></TABLE> </TD> </TR> <% objRs.MoveNext Loop End If objRs.Close Set objRs = Nothing objDBConn.Close Set objDBConn = Nothing %>

  37. 과제 • Member 테이블에 성별과 생년, 월, 일 모두 4개의 필드를 추가한다. • 회원가입 시에도 성별과 생년, 월, 일을 입력 받을 수 있도록 regist.asp와 regist_ok.asp 파일을 수정한다. • 회원검색에서 이름, 성별, 생년을 모두 선택해야만 검색이 되도록 member_search.asp 파일을 수정한다.

More Related