웹 프로그래밍 HTML, 자바스크립트, ASP를 중심으로

Slides:



Advertisements
Similar presentations
CUBRID 소개 (Object 개념) 서비스 사업부 / 기술지원팀. 목차 구조 일반적 특징 객체지향 특징 ORDB 개념을 이용한 스키마 ORDB 개념을 이용한 질의.
Advertisements

1 SQL 정보보호학과 양 계 탁. 2 SQL 개요 SQL 개요 3 Database u 연관된 데이터들의 집합 u 데이터를 쉽게 관리하는 프로그램 종 류종 류 관계형 데이터베이스 객체지향형 데이터베이스 계층형 데이터베이스 네트워크 데이터베이스 데이터를 2 차원적인 테.
SQLite 소개 및 안드로이드에서의 사용법
DB Injection과 대응방안 nwkim.
DB 프로그래밍 학기.
DB 프로그래밍 학기.
PHP programming 2000년 11월 13일 데이터베이스 연구실 김호숙.
소리가 작으면 이어폰 사용 권장!.
김 상 국, 김 기 훈 한남대학교 컴퓨터공학과 데이터베이스 실험실
예방접종 정보 SITE.
소프트웨어시스템설계(6주) 데이터베이스 연동
질의어와 SQL 기본 SQL 고급 SQL 데이타의 수정 데이타 정의 언어 내장 SQL
관계 대수와 SQL.
C#에서 데이터베이스 연동 방법.
4장. 관계 대수와 SQL SQL 관계 데이터 모델에서 지원되는 두 가지 정형적인 언어
JDBC 개요 Section 04 JDBC 개념과 역할 JDBC 구조 애 플 리 케 이 션 오라클 DBMS MySql DBMS
JDBC 프로그래밍 이수지 이동주 1.
SQL 개요 SQL 개요 - SQL은 현재 DBMS 시장에서 관계 DBMS가 압도적인 우위를 차지하는 데 중요한 요인의 하나
10장. 데이터베이스 보안과 권한 관리 데이터베이스 보안과 권한 관리
Web Server와 DB 연동.
데이터베이스 와 JDBC 1.데이터베이스와 데이터베이스 관리 시스템은? 2.데이터베이스 장점?
주)INVENTORNICS 노창배 소프트웨어 김 경 순
ㅎㅎ 파일업로드와 이메일 발송 HTTP 파일 업로드와 탭스 업로드 컴포넌트 데이터베이스 연동 자료실 만들기
11장. 데이터베이스 서버 구축과 운영.
ASP 정 보 보 호 학 과 양 계 탁.
2007. Database Term Project Team 2 윤형석, 김희용, 최현대 우경남, 이상제
기초 T-SQL.
구글해킹과 SQL인젝션 지창훈, 최연우.
14장 뷰.
Chapter 05 데이터베이스 프로그래밍.
9. 데이터베이스 9.5 SQL을 사용하는 프로그램 9.6 데이터폼 작성기를 사용하는 프로그램
4.2 SQL 개요 SQL 개요 SQL은 IBM 연구소에서 1974년에 System R이라는 관계 DBMS 시제품을 연구할 때 관계 대수와 관계 해석을 기반으로, 집단 함수, 그룹화, 갱신 연산 등을 추가하여 개발된 언어 1986년에 ANSI(미국 표준 기구)에서 SQL.
ER-Win 사용 방법.
SQL Server 2000 세미나 Profiler를 이용한 문제해결
차례 튜닝 - 프로필러를 이용한 튜닝 프로필러 친해지기 프로필러 결과 테이블로 만들기 프로필러 결과 분석하기
담당교수 : 이형원교수님 컴퓨터응용과학부 정은영
단일 테이블 조회를 위한 SELECT 문을 이해한다. 열 제약조건과 행 제약조건을 이해한다. 결과 집합 변경 방법을 이해한다.
ASP를 이용한 전자상거래 사이트 구축 지도교수님: 이형원 컴퓨터응용과학부 박정선.
ADO컨트롤을 이용하여 데이터를 관리하는 방법과 데이터베이스내의 레코드들을 리포트 형식으로 출력하는 디자인 기능을 알아본다.
14 뷰(View) 뷰의 개념 뷰 관리.
웹서버와 설치에 필요한 것 WWW ( world wide web ) TCP/IP 프로토콜을 이용하는 클라이언트/서버 환경
5. JSP의 내장객체1.
RFID Programming (출결관리 프로그램)
9장 테이블 생성 및 변경, 삭제하기(DDL).
4. JSP의 스크립트 요소 Script 요소의 이해 선언문(Declaration) Scirptlet 표현식 주석
8 데이터베이스 사용하기.
12 데이터베이스 사용하기.
주)INVENTORNICS 노창배 소프트웨어 김 경 순
JDBC (Java Database Connectivity)
다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
DataBase 연결 및 사용방법
CHAPTER 06. 데이터베이스 자료의 조직적 집합체_데이터베이스 시스템의 이해
13장 무결성 제약조건.
Chapter11 웹 스토리지 & 웹 데이터베이스
Database Programing 이름 : 김 수 종 학번 :
JSP 게시판 구현.
II. XML과 Database 연동 [Beginning XML, 제13장]
JSP Programming with a Workbook
데이터베이스 (Database) SQL 추가 기능: 주장, 뷰, 프로그래밍 기법 문양세 강원대학교 IT대학 컴퓨터과학전공.
Database 중고차 매매 DB 비즈니스IT 윤동섭.
3장. SQL Server 2008전체 운영 실습 및 DB와 프로그램의 연동
컬럼 대칭키 암호화 작업(SQL 2008) ① 마스터 키 생성 ② 인증서 생성 초기 한번만 실행 ③ 대칭키 생성
ASP 수행 화면(1).
SQL INJECTION MADE BY 김 현중.
세션 (Session) Yang-Sae Moon Department of Computer Science
테이블 관리 테이블 생성,수정,삭제 데이터 입력 수정, 삭제 2010학년도 2학기.
뇌를 자극하는 Windows Server 장. 데이터베이스 서버.
Stored program 장종원
Data Base Web Programming
Data Base Mysql.
Presentation transcript:

웹 프로그래밍 HTML, 자바스크립트, ASP를 중심으로 12주. ADO 컴포넌트 2 최황규, 하진영 공저

What is ADO? Microsoft technology ActiveX Data Objects Automatically installed with Microsoft IIS Programming interface to access data in a database

Accessing a Database from an ASP Page Create an ADO connection to a database Open the database connection Create an ADO recordset Open the recordset Extract the data you need from the recordset Close the recordset Close the connection

데이터베이스에 연결하기 위해 Connection 객체의 Open 메소드 사용 <%        Set Object_Name = Server.CreateObject("ADODB.Connection") %> 데이터베이스에 연결하기 위해 Connection 객체의 Open 메소드 사용 <%        Connection.Open Connection_Name, UserID, Password %>

데이터베이스에 연결하기 위해 Connection 객체의 Open 메소드 사용 <%        Connection.Open Connection_Name, UserID, Password %> Connection_Name에는 ODBC DSN을 적어준다. ODBC DSN은 SQL Server Database로의 ODBC 연결을 나타내는 이름이다. (WebDB) ODBC 연결을 만드는 법은 이 자료의 맨 끝에 있음 (10주차 내용 반복)

Connection 객체 연결을 끊기 위해서는 Close 메소드의 사용 <% '--- 객체 사용 후 연결 끊기 <%   '--- 객체 사용 후 연결 끊기        Conn.Close        '--- 객체 리소스 해제        Set Conn = Nothing %>

Connection 데이터베이스 연결 예제 11-1 ConnectionOpen.asp <html>   <html> <title>Connection 객체 Open 메소드</title><center><h2> <%        '-- 연결객체 만들기        Set Conn  = Server.CreateObject("ADODB.Connection")        '-- DB 연결        Conn.Open "WebDB", "sa", "123"        '-- DB 상태 체크        if Conn.State <> 1 Then                Response.Write "데이터베이스 연결 실패..."        else                Response.Write "데이터베이스 연결 성공..."        end if        '-- 연결 종료        Conn.Close        '-- Conn 객체 해제        Set Conn = Nothing %> </html>

준비 작업 SQL Server Mangagement Studio를 실행시키고 로그인 "새 쿼리"를 클릭한 후 편집창에 CreateAndPopulateStudents.sql 파일의 내용을 붙여넣기 "!실행" 클릭 "테이블"을 오른쪽 버튼 클릭하여 "새로고침" 선택  dbo.Students 테이블이 만들어 졌음을 확인 편집창

CreateAndPopulateStudens.sql CREATE TABLE Students ( 이름 nvarchar(10) NOT NULL, 학과 nvarchar(10), 학번 nvarchar(20) NOT NULL, 학년 nvarchar(50), PRIMARY KEY(학번) ) INSERT INTO students VALUES ('김하나', '컴퓨터정보통신', '20081234', '2') INSERT INTO students VALUES ('김둘', '컴퓨터정보통신', '20081235', '2') INSERT INTO students VALUES ('김셋', '컴퓨터정보통신', '20081236', '3') INSERT INTO students VALUES ('김넷', '컴퓨터과학', '20081237', '4') INSERT INTO students VALUES ('이다섯', '컴퓨터정보통신', '20081238', '1') INSERT INTO students VALUES ('이여섯', '컴퓨터정보통신', '20081239', '2') INSERT INTO students VALUES ('박일곱', '전자통신', '20081244', '2') INSERT INTO students VALUES ('박여덟', '전기전자', '20081254', '3') INSERT INTO students VALUES ('최아홉', '컴퓨터과학', '20081264', '2') INSERT INTO students VALUES ('정열', '컴퓨터정보통신', '20081274', '2') SELECT * FROM students

준비 작업 "dbo.Students"를 오른쪽 버튼 클릭한 후 "상위 200개행 편집" 선택  테이블 내용 확인

실행 html, asp 파일들을 inetpub\wwwroot 디렉토리에 저장하고 웹브라우저로 읽음 http://localhost/xxx.asp

RecordSet <% Set conn = Server.CreateObject("ADODB.Connection") RecordSet2.asp <% Set conn = Server.CreateObject("ADODB.Connection") conn.Open "WebDB", "sa", "123" Set rs = Server.CreateObject("ADODB.RecordSet") 'RecordSet 객체 생성 rs.Open "SELECT * FROM Students", conn '쿼리 실행 결과가 rs에 저장됨 for each x in rs.Fields 'rs.Fields는 쿼리 결과 열들로 이루어진 배열 '각 열에 대해 아래 명령을 실행 Response.Write(x.name) Response.Write(" = ") Response.Write(x.value & "<br />") next %>

RecordSet When you first open a Recordset Record pointer will point to the first record BOF and EOF properties are False (If there are no records, BOF and EOF property are True)

RecordSet3.asp <html><body> <% Set conn = Server.CreateObject("ADODB.Connection") conn.Open "WebDB", "sa", "123" Set rs = Server.CreateObject("ADODB.RecordSet") rs.Open "SELECT * FROM Students", conn do until rs.EOF for each x in rs.Fields Response.Write(x.name) Response.Write(" = ") Response.Write(x.value & "<br />") next Response.Write("<br />") rs.MoveNext loop %> rs.close conn.close </body></html>

RecordSet4.asp <html><body> <% Set conn = Server.CreateObject("ADODB.Connection") conn.Open "WebDB", "sa", "123" Set rs = Server.CreateObject("ADODB.RecordSet") rs.Open "SELECT * FROM Students", conn %> <table border="1" width="100%"> <%do until rs.EOF%> <tr> <%for each x in rs.Fields%> <td><%Response.Write(x.value)%></td> <%next rs.MoveNext%> </tr> <%loop rs.close conn.close </table> </body></html>

RecordSet5.asp <html><body> <% Set conn = Server.CreateObject("ADODB.Connection") conn.Open "WebDB", "sa", "123" Set rs = Server.CreateObject("ADODB.RecordSet") rs.Open "SELECT * FROM Students", conn %> <table border="1" width="100%"> <tr> <%for each x in rs.Fields response.write("<th>" & x.name & "</th>") next%> </tr> <%do until rs.EOF%> . . . <%loop rs.close conn.close </table> </body></html>

RecordSet6.asp <html><body> <% Set conn = Server.CreateObject("ADODB.Connection") conn.Open "WebDB", "sa", "123" Set rs = Server.CreateObject("ADODB.RecordSet") sql="SELECT 이름, 학과 FROM Students WHERE 학과 LIKE '컴퓨%'" rs.Open sql, conn %> <table border="1" width="100%"> <tr> <%for each x in rs.Fields response.write("<th>" & x.name & "</th>") next%> </tr> <%do until rs.EOF%> <%for each x in rs.Fields%> <td><%Response.Write(x.value)%></td> <%next rs.MoveNext%> <%loop rs.close conn.close </table> </body></html> RecordSet6.asp

sql="SELECT 이름, 학과, 학년 FROM Students ORDER BY 학년 DESC"

RecordSet8.asp <html><body> <% Set conn = Server.CreateObject("ADODB.Connection") conn.Open "WebDB", "sa", "123" set rs = Server.CreateObject("ADODB.recordset") rs.Open "Select * from Students", conn p=rs.GetRows(2,0) ' (how many records to copy, record number to start on) response.write(p(0,0)) response.write("<br />") response.write(p(0,1) & "<br /><br />") response.write(p(1,0)) response.write(p(2,0)) rs.close conn.close %> </body></html>

add_form.html <html><body> <form method="post" action="demo_add.asp"> <table> <tr> <td>이름:</td> <td><input name="name"></td> </tr><tr> <td>학과:</td> <td><input name="dept"></td> <td>학번:</td> <td><input name="id"></td> <td>학년:</td> <td><input name="grade"></td> </tr> </table> <br /><br /> <input type="submit" value="추가"> <input type="reset" value="취소"> </form> </body></html>

demo_add.asp <html><body> <% Set conn = Server.CreateObject("ADODB.Connection") conn.Open "WebDB", "sa", "123" sql="INSERT INTO students " sql=sql & " VALUES " sql=sql & "('" & Request.Form("name") & "'," sql=sql & "'" & Request.Form("dept") & "'," sql=sql & "'" & Request.Form("id") & "'," sql=sql & "'" & Request.Form("grade") & "')" on error resume next conn.Execute sql, recaffected if err<>0 then Response.Write("No update permissions!") else Response.Write("<h3>" & recaffected & " record added</h3>") end if conn.close %> </body></html>

update_form.asp 뒷장에 계속 <html><body> <% Set conn = Server.CreateObject("ADODB.Connection") conn.Open "WebDB", "sa", "123" Set rs = Server.CreateObject("ADODB.RecordSet") rs.Open "SELECT * FROM Students", conn %> <h2>List Database</h2> <table border="1" width="100%"> <tr> for each x in rs.Fields response.write("<th>" & x.name & "</th>") next </tr> 뒷장에 계속

<% do until rs.EOF %> <tr> <form method="post" action="demo_update.asp"> <% for each x in rs.Fields if x.name="학번" then%> <td> <input type="submit" name="학번" value="<%=x.value%>"> </td> <%else%> <td><%Response.Write(x.value)%></td> <%end if next %> </form> <%rs.MoveNext%> </tr> loop conn.close </table> </body></html>

demo_update.asp 뒷장에 계속 <html><body> <h2>Update Record</h2> <% Set conn = Server.CreateObject("ADODB.Connection") conn.Open "WebDB", "sa", "123" Set rs = Server.CreateObject("ADODB.RecordSet") rs.Open "SELECT * FROM Students", conn sid=Request.Form("학번") if Request.form("이름")="" then set rs=Server.CreateObject("ADODB.Recordset") rs.open "SELECT * FROM Students WHERE 학번='" & sid & "'",conn %> <form method="post" action="demo_update.asp"> <table> <%for each x in rs.Fields%> <tr> <td><%=x.name%></td> <td><input name="<%=x.name%>" value="<%=x.value%>"></td> </tr> <%next%> </table> <br /><br /> <input type="submit" value="Update record"> </form> 뒷장에 계속

demo_update.asp <% else sql="UPDATE Students SET " sql=sql & "이름='" & Request.Form("이름") & "'," sql=sql & "학과='" & Request.Form("학과") & "'," sql=sql & "학번='" & Request.Form("학번") & "'," sql=sql & "학년='" & Request.Form("학년") & "'" sql=sql & " WHERE 학번='" & sid & "'" on error resume next conn.Execute sql if err<>0 then response.write("No update permissions!") response.write("Record " & cid & " was updated!") end if conn.close %> </body></html>

delete_form.asp 뒷장에 계속 <html><body> <% Set conn = Server.CreateObject("ADODB.Connection") conn.Open "WebDB", "sa", "123" Set rs = Server.CreateObject("ADODB.RecordSet") rs.Open "SELECT * FROM Students", conn %> <h2>List Database</h2> <table border="1" width="100%"> <tr> for each x in rs.Fields response.write("<th>" & x.name & "</th>") next </tr> 뒷장에 계속

delete_form.asp <% do until rs.EOF %> <tr> <form method="post" action="demo_delete.asp"> <% for each x in rs.Fields if x.name="학번" then%> <td> <input type="submit" name="학번" value="<%=x.value%>"> </td> <%else%> <td><%Response.Write(x.value)%></td> <%end if next %> </form> <%rs.MoveNext%> </tr> loop conn.close </table> </body></html>

demo_delete.asp 뒷장에 계속 <html><body> <h2>Delete Record</h2> <% Set conn = Server.CreateObject("ADODB.Connection") conn.Open "WebDB", "sa", "123" Set rs = Server.CreateObject("ADODB.RecordSet") sid=Request.Form("학번") if Request.form("이름")="" then set rs=Server.CreateObject("ADODB.Recordset") rs.open "SELECT * FROM Students WHERE 학번='" & sid & "'",conn %> <form method="post" action="demo_delete.asp"> <table> <%for each x in rs.Fields%> <tr> <td><%=x.name%></td> <td><input name="<%=x.name%>" value="<%=x.value%>"></td> <%next%> </tr> </table> <br /><br /> <input type="submit" value="Delete record"> </form> 뒷장에 계속

demo_delete.asp <% else sql="DELETE FROM Students" sql=sql & " WHERE 학번='" & sid & "'" on error resume next conn.Execute sql if err<>0 then response.write("No update permissions!") response.write("Record " & cid & " was deleted!") end if conn.close %> </body></html>

sort.asp 뒷장에 계속 <html><body> <table border="1" width="100%" bgcolor="#fff5ee"> <tr> <th align="left" bgcolor="#b0c4de"> <a href="sort.asp?sort=이름">이름</a> </th> <a href="sort.asp?sort=학과">학과</a> <a href="sort.asp?sort=학번">학번</a> <a href="sort.asp?sort=학년">학년</a> </tr> <% if request.querystring("sort")<>"" then sort=request.querystring("sort") else sort="이름" end if 뒷장에 계속

sort.asp Set conn = Server.CreateObject("ADODB.Connection") conn.Open "WebDB", "sa", "123" Set rs = Server.CreateObject("ADODB.RecordSet") sql="SELECT * FROM Students ORDER BY " & sort rs.Open sql,conn do until rs.EOF response.write("<tr>") for each x in rs.Fields response.write("<td>" & x.value & "</td>") next rs.MoveNext response.write("</tr>") loop rs.close conn.close %> </table> </body></html>

filter.asp <html><body> <% Set conn = Server.CreateObject("ADODB.Connection") conn.Open "WebDB", "sa", "123" set rs=Server.CreateObject("ADODB.recordset") sql="SELECT DISTINCT 학과 FROM Students ORDER BY 학과" rs.Open sql,conn dpt=request.form("dept") %> <form method="post" action="filter.asp"> 학과 선택 <select name="dept"> <% do until rs.EOF response.write("<option") if rs.fields("학과")=dept then response.write(" selected") end if response.write(">") response.write(rs.fields("학과")) rs.MoveNext loop rs.Close set rs=Nothing %> </select> <input type="submit" value="학과 소속 학생 출력"> </form>

filter.asp <% if dpt<>"" then sql="SELECT 이름, 학과, 학년 FROM Students WHERE 학과='" & dpt & "'" set rs=Server.CreateObject("ADODB.Recordset") rs.Open sql,conn %> <table width="100%" cellspacing="0" cellpadding="2" border="1"> <tr> <th>이름</th> <th>학과</th> <th>학년</th> </tr> do until rs.EOF response.write("<tr>") response.write("<td>" & rs.fields("이름") & "</td>") response.write("<td>" & rs.fields("학과") & "</td>") response.write("<td>" & rs.fields("학년") & "</td>") response.write("</tr>") rs.MoveNext loop

filter.asp rs.close conn.Close set rs=Nothing set conn=Nothing%> </table> <% end if %> </body></html>

ODBC 설정 (10주 자료 반복)

10.9 ODBC 설정 ODBC (Open DataBase Connectivity) DBMS에 관계없이 윈도우 환경하에 데이터베이스에 연결하여 사용할 수 있도록 개발한 표준 데이터베이스에 연결하기 위해 DSN 설정이 필요 DSN (Data Source Name) 데이터가 있는 곳을 알려주는 이름

10.9 ODBC 설정 제어판->관리도구->데이터원본으로 시작

10.9 ODBC 설정 ‘시스템 DSN 설정’ 탭 선택

10.9 ODBC 설정 ‘SQL Server’ 항목 선택 후 마침

10.9 ODBC 설정 데이터 원본에 사용할 이름 ‘WebDB’를 사용 연결할 SQL Server 를 (local)로 지정 (local)\SQLEXPRESS .\SQLEXPRESS IP_address\SQLEXPRESS

10.9 ODBC 설정 ‘사용자가 입력한 로그인 ID 및 암호를 사용하는 SQL Server 인증 사용’ 선택 로그인 ID (sa)와 암호 설정

10.9 ODBC 설정 ‘기본 데이터베이스를 다음으로 변경’ 체크 후 WebDB 선택

10.9 ODBC 설정 SQL Server 시스템 메시지 언어를 Korean으로 선택하고 마침

10.9 ODBC 설정 데이터 원본 테스트를 선택하여 테스트가 성공적인지를 확인

10.9 ODBC 설정 ODBC 데이터 원본 관리자에서 추가된 WebDB 의 DSN이 추가된 것을 확인