03. ADO 닷넷 ADO 닷넷이란? ADO(ActiveX Data Objects) 의닷넷버전 비연결방식 (Discected Mdel) 제공 데이터베이스와연결후필요한데이터를가져온후에, 접속을바로끊고나서도데이터를계속해서처리할수있는방법이필요 자원을계속많이확보가능 자료의처리

Similar documents
한국 컴퓨터그래픽스(디지털컨텐츠)의 현황과 미래 위기인가? 기회인가?

PowerPoint Presentation

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

쉽게 풀어쓴 C 프로그래밊

VS_chapter10

설계란 무엇인가?

DBMS & SQL Server Installation Database Laboratory

PowerPoint Presentation

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - chap06-2pointer.ppt

JVM 메모리구조

Microsoft PowerPoint - C++ 5 .pptx

Microsoft PowerPoint - VB.NET_06.pptx

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins

1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2

11장 포인터

JAVA PROGRAMMING 실습 08.다형성

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

Lab 3. 실습문제 (Single linked list)_해답.hwp

adfasdfasfdasfasfadf

PowerPoint Presentation

Microsoft PowerPoint - 07-C#-13-ADO.ppt [호환 모드]

제11장 프로세스와 쓰레드

PowerPoint Presentation

Visual Basic 반복문

Microsoft PowerPoint - 04-UDP Programming.ppt

API 매뉴얼

슬라이드 1

ALTIBASE 사용자가이드 Templete

PowerPoint Presentation

var answer = confirm(" 확인이나취소를누르세요."); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write(" 확인을눌렀습니다."); else { document.write(" 취소를눌렀습니다.");

Lab 4. 실습문제 (Circular singly linked list)_해답.hwp

어댑터뷰

@OneToOne(cascade = = "addr_id") private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

Microsoft PowerPoint - web-part03-ch20-XMLHttpRequest기본.pptx

Tablespace On-Offline 테이블스페이스 온라인/오프라인

Microsoft PowerPoint 웹 연동 기술.pptx

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

설계란 무엇인가?

Spring Boot/JDBC JdbcTemplate/CRUD 예제

1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout << " 양수입력 : "; cin >> *p; if (*p <= 0) cout << " 양수를입력해야합니다 " << endl; return; 동적할

쉽게 풀어쓴 C 프로그래밍

슬라이드 제목 없음

설계란 무엇인가?

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 )

Microsoft PowerPoint - e pptx

untitled

第 1 節 組 織 11 第 1 章 檢 察 의 組 織 人 事 制 度 등 第 1 項 大 檢 察 廳 第 1 節 組 대검찰청은 대법원에 대응하여 수도인 서울에 위치 한다(검찰청법 제2조,제3조,대검찰청의 위치와 각급 검찰청의명칭및위치에관한규정 제2조). 대검찰청에 검찰총장,대

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호

PowerPoint 프레젠테이션

Windows 8에서 BioStar 1 설치하기

문서 템플릿

4 장클래스와객체 클래스와객체 public과 private 구조체와클래스객체의생성과생성자객체의소멸과소멸자생성자와소멸자의호출순서디폴트생성자와디폴트소멸자멤버초기화멤버함수의외부정의멤버함수의인라인함수선언 C++ 프로그래밍입문

PowerPoint 프레젠테이션

혼자서일을다하는 JSP. 이젠일을 Servlet 과나눠서한다. JSP와서블릿의표현적인차이 - JSP는 <html> 내에서자바를사용할수있는수단을제공한다. - 서블릿은자바내에서 <html> 을작성할수있는수단을제공한다. - JSP나서블릿으로만웹페이지를작성하면자바와다양한코드가

Microsoft Word - src.doc

API - Notification 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어

PowerPoint Presentation

쉽게

ESQL/C

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

Observational Determinism for Concurrent Program Security

Microsoft PowerPoint - CSharp-2-기초문법

JAVA PROGRAMMING 실습 05. 객체의 활용

윈도우시스템프로그래밍

PowerPoint 프레젠테이션

쉽게 풀어쓴 C 프로그래밍

소만사 소개

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

RHEV 2.2 인증서 만료 확인 및 갱신

안드로이드기본 11 차시어댑터뷰 1 학습목표 어댑터뷰가무엇인지알수있다. 리스트뷰와스피너를사용하여데이터를출력할수있다. 2 확인해볼까? 3 어댑터뷰 1) 학습하기 어댑터뷰 - 1 -

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

Microsoft PowerPoint - Chap12-OOP.ppt

Microsoft PowerPoint - ch07 - 포인터 pm0415

강의 개요

(8) getpi() 함수는정적함수이므로 main() 에서호출할수있다. (9) class Circle private double radius; static final double PI= ; // PI 이름으로 로초기화된정적상수 public

UI TASK & KEY EVENT

KARAAUTO_4¿ù.qxd-ÀÌÆå.ps, page Normalize

Microsoft PowerPoint - Chapter 6.ppt

PowerPoint Template

<4D F736F F F696E74202D20B5A5C0CCC5CDBAA3C0CCBDBA5F3130C1D6C2F75F32C2F7BDC32E >

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

슬라이드 1

The Pocket Guide to TCP/IP Sockets: C Version

PowerPoint 프레젠테이션

Cloud Friendly System Architecture

03_queue

Microsoft PowerPoint - 제11장 포인터(강의)

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

Microsoft PowerPoint - 3장-MS SQL Server.ppt [호환 모드]

1. 클래스와배열 int 형배열선언및초기화 int ary[5] = 1, 2, 3, 4, 5 ; for (int i = 0; i < 5; i++) cout << "ary[" << i << "] = " << ary[i] << endl; 5 장클래스의활용 1

CH04) 쿼리 (Query) 데이터베이스일반 1- 쿼리 (Query) 1) 쿼리의개념 테이블의데이터에서사용자가원하는조건에의해필드를추출하거나레코드를추출할수있는개체로즉, 여러가지방법으로데이터를보고, 변경하고, 분석할수있음 쿼리를폼, 보고서, 데이터액세스페이지등의레코드원본

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

PowerPoint 프레젠테이션

Microsoft PowerPoint - 제11장 포인터

슬라이드 1

오버라이딩 (Overriding)

Microsoft PowerPoint Python-DB

Transcription:

03. ADO 닷넷 탄생배경 인터넷환경에가장적합한기술필요 통합적으로관리할수있는기술이필요 더많은양의데이터를더빠르게서비스할수있는인터넷응용프로그램필요성대두 ' 데이터저장소 개념의필요 어느한컴퓨터에의존하는것이아니라여러다른장소에서언제든서비스받도록되어야함 데이터가어디에있던어떻게저장되어있던동일한인터페이스로개발필요 XML 을지원 표준화된자료전달방식의필요

03. ADO 닷넷 ADO 닷넷이란? ADO(ActiveX Data Objects) 의닷넷버전 비연결방식 (Discected Mdel) 제공 데이터베이스와연결후필요한데이터를가져온후에, 접속을바로끊고나서도데이터를계속해서처리할수있는방법이필요 자원을계속많이확보가능 자료의처리는연결이끊어진후에도가능 접속한사용자에게빠른처리가능 서버쪽부담이적어지게됨 XML(eXtesible Markup Laguage) 지원 저장된자료들의표준화 네트워크상에서자료를주고받을때공통적인전달수단

03. ADO 닷넷 ADO 닷넷의클래스구조 데이터공급자 (Data Prvider) 데이터베이스와연결이된상태에서만사용이가능 ' 연결 (Cecti)' 클래스 데이터베이스와의접속을수행 ' 명령 (Cmmad)' 클래스 연결이된후에데이터처리에관계된명령 데이터를읽고, 쓰고, 수정하고, 삭제하는작업수행 데이터리더 (DataReader) 클래스 자료를하나씩읽어서처리

03. ADO 닷넷 데이터셋 (Data Set) ' 비연결방식 ' 을지원하기위해별도로설계된클래스 메모리에저장한내용을체계적으로관리 DataTable 클래스, DataRelati 클래스가내부에서사용 ' 데이터어댑터 (Data Adapter)' 클래스 소속은데이터공급자 데이터베이스와연결이된상태에서만동작 ' 데이터셋 (DataSet)' 클래스에다가데이터를채우는역할을수행일종의다리역할을수행

04. DB 와긴밀히연결되는데이터공급자클래스 DB 연결을위한 Cecti 클래스 연결을수행 SqlCecti,OracleCecti 클래스 MS SQL 서버나 Oracle 서버와직접연결 OleDbCecti 다른데이터베이스와접속할용도로사용

04. DB 와긴밀히연결되는데이터공급자클래스 연결매개변수 = 값 ;[ 연결매개변수 = 값 ;] SQL 서버 2005 익스프레스에접속할경우연결문자열사용예 Private strc As Strig = "Data Surce=.\SQLEXPRESS;AttachDbFileame= DataDirectry \exampledb. mdf;itegratedsecurity=true;user Istace=True" ' 액세스 DB 사용할경우연결문자열사용예 Private strc As Strig = "Prvider=Micrsft.Jet.OLEDB.4.0;DataSurce=c:\db\example.mdb;" 'SQL 서버를사용할경우연결문자열의사용예. Private strc As Strig = "Prvider=SQLOLEDB.1;Data Surce=raisvr;IitialCatalg=MyDB;User ID=admi;"

04. DB 와긴밀히연결되는데이터공급자클래스 ' 오라클서버를사용할경우연결문자열의사용예 Private strc As Strig = "Data Surce=Oracle9i;UserID=*****;Passwrd=*****;" ' 엑셀파일로접속할경우연결문자열사용예. 'Exteded Prperties 는반드시 로감싸야함. 'HDR=Yes 는첫번째행을자료가아니라열의이름으로인식하라고지정. 'IMEX=1 은모든자료를텍스트로가져오라고지정. Private strc As Strig = Prvider=Micrsft.Jet.OLEDB.4.0;DataSurce=D:\MyExcel.xls; Exteded Prperties=""Excel8.0;HDR=Yes;IMEX=1""

04. DB 와긴밀히연결되는데이터공급자클래스 서버탐색기에서직접 SQL 서버에연결 속성창의 CectiStrig 에자동으로연결문자열작성

04. DB 와긴밀히연결되는데이터공급자클래스 연결클래스 Public Sub New(ByVal cectistrig As Strig) * cectistrig : 연결문자열 'OleDB를이용한연결객체생성 Dim m_c As OleDbCecti = New OleDbCecti(strC) 'SQL 서버로접속할연결객체생성 Dim m_c As SqlCecti = New SqlCecti(strC) ' 오라클서버로접속할연결객체생성 Dim m_c As OracleCecti = New OracleCecti(strC)

04. DB 와긴밀히연결되는데이터공급자클래스 연결수행및끊음 Public Sub Ope() Public Sub Clse() * Ope() : 데이터베이스와연결을수행합니다. * Clse() : 데이터베이스와의연결을해제합니다. m_c.ope() 'DB와연결함 m_c.clse() 'DB와연결닫음

04. DB 와긴밀히연결되는데이터공급자클래스 DB 명령실행을위한 Cmmad 클래스와 DataReader 클래스 일단연결이된후에데이터처리에관계된명령 OleDbCmmad, SqlCmmad( 또는OracleCmmad) 데이터를읽고, 쓰고, 수정하고, 삭제하는작업이가능 Public Sub New(ByVal cmdtext As Strig,ByVal cecti) * cmdtext : SQL 질의의문자열을만들어전달합니다. * cecti : 연결객체를전달합니다. 'Cmmad 객체생성 Dim cmd As SqlCmmad = New SqlCmmad( _ "Select * frm [ 신입사원 ]", m_c) CmmadText 속성 생성된명령객체의질의문을중간에바꿀경우사용 cmd.cmmadtext = "Select max( 필기 ) frm [ 신입사원 ]"

04. DB 와긴밀히연결되는데이터공급자클래스 데이터리더클래스로자료를하나씩읽기 - ExecuteReader SQL 질의중에 Select' 문을사용하여준비된레코드를하나씩꺼내서사용하기편하게함 Public Fucti ExecuteReader() As SqlDataReader 'DataReader 객체를실행하여전달받음 Dim dr As SqlDataReader = cmd.executereader

04. DB 와긴밀히연결되는데이터공급자클래스 자료를하나씩읽는방법 Read() 라는메서드를호출 Public Fucti Read() As Blea * 반환값 : True - 성공적으로읽어옴, False - 읽어오는데실패함. 데이터가없슴 While dr.read()... Ed While

04. DB 와긴밀히연결되는데이터공급자클래스 읽혀진값알기 GetValue() 라는메서드의반환값 Public Fucti GetValue(ByVal rdial As Iteger) As SqlDataReader While dr.read() Debug.WriteLie(CStr(dr(0))) ' 첫번째필드값출력 Debug.WriteLie(CStr(dr(1))) ' 두번째필드값출력 Ed While

05. 추가, 수정, 삭제를위한 ExecuteNQuery 자료를추가하고수정하고삭제하는작업 명령클래스의 ExecuteNQuery() 메서드를호출 ' 요구 (Query) 하는게없는 (N) 명령을수행 (Execute) 한다 ' 는뜻의메서드 Isert','Update','Delete' 같은레코드의반환이필요없는질의를수행할때호출 Public Fucti ExecuteNQuery() As Iteger * 반환값 : 영향받은레코드의개수 Dim strcmd As Strig = "Delete Frm [ 신입사원 ] Where 번호 = '1 " 'Cmmad 객체생성 Dim cmd = New SqlCmmad(strCmd, m_c) cmd.executenquery() Delete SQL 질의실행

06. 반환값을얻기위한 ExecuteScalar SQL 질의문중에 Cut(), Avg() 같은집합체 (Aggregate) 함수를사용가능 계산된결과를반환 명령클래스에는 ExecuteScalar() 라는메서드 Public Fucti ExecuteScalar() As Object cmd.cmmadtext = "Select max( 필기 ) frm [ 신입사원 ] Debug.Writelie(cmd.ExecuteScalar())

07. 데이터셋클래스의연결을위한데이터어댑터 (DataAdapter) 클래스 데이터어댑터클래스 데이터베이스와연결된동안에만동작을수행 데이터들을가져와서데이터셋클래스의구조에맞게데이터를변환해서넣어주는작업 필요한데이터를일단가져오자마자접속을끊고, 메모리상에서데이터를처리할수있는방법을지원 DB 와연결을유지하지않는데이터셋클래스 데이터들의집합을관리하는클래스

07. 데이터셋클래스의연결을위한데이터어댑터 (DataAdapter) 클래스 자료의읽기 1 데이터베이스와연결 연결객체의 Ope() 메서드 m_c.ope() 'DB 와연결함 2 데이터어댑터객체생성 실제로사용할데이터어댑터객체를생성 Public Sub New() 'DataSet 을사용하기위해 DataAdapter 객체생성 Dim adpt As SqlDataAdapter = New SqlDataAdapter() 3 SelectCmmad 속성에자료읽는 SQL 질의지정 어떤자료를가져와서데이터셋에다가저장하도록할건지결정 SelectCmmad 속성에다가명령객체를생성해서대입 Public Prperty SelectCmmad As SqlCmmad adpt.selectcmmad = New SqlCmmad( "Select * frm [ 신입사원 ]", m_c)

07. 데이터셋클래스의연결을위한데이터어댑터 (DataAdapter) 클래스 4 데이터셋객체를생성함 실제로메모리상에서처리할데이터셋객체생성 DataSet 클래스로객체를생성 DataSet 클래스 Public Sub New() Dim ds As DataSet = New DataSet() 'DataSet 객체를생성 5 데이터셋에자료를저장함 데이터어댑터를동작시켜서데이터베이스로부터자료를가져와데이터셋에저장 데이터어댑터객체의 Fill() 메서드를사용 Public Fucti Fill(ByVal dataset As DataSet) As Iteger adpt.fill(ds) ' 생성한 DataSet 객체에데이터를읽어서저장함 6 데이터베이스와의연결을해제 데이터베이스의자원을돌려주기위해서접속을끊음 m_c.clse() 'DB 와연결닫음

08. 데이터셋을 DB 에실제로저장하기 데이터셋은메모리상에서상태값을가짐 처음에는모든레코드가 UChaged' 라는값을가지고있음어느한레코드의내용이수정되면그레코드만 Mdified' 라는값을가짐레코드를추가하면 Added' 라는값을가짐삭제를수행하면 Deleted' 라는값을가짐데이터베이스의내용이바뀌는것은아님 데이터어댑터클래스의 Update() 메서드를호출 데이터베이스에실제로반영 표시를해두었던값들을다시원상복귀 AcceptChages() DataSet 클래스 Public Sub AcceptChages() m_ds.acceptchages() ' 변경된상태정보를모두초기화시킴

08. 데이터셋을 DB 에실제로저장하기 DataRw 클래스의 RwState 속성값 현재레코드가가지고있는상태정보알려줌 RwState 속성은 Added,Deleted,Mdified,Uchaged 의상태값반환 DataRw 클래스 Public ReadOly Prperty RwState As DataRwState * DataRwState 열거형값 : Added,Deleted,Mdified,Uchaged Dim r As DataRw ' 임시로읽어온 DataRw를저장할변수 Fr Each r I m_ds.tables(" 신입사원 ").Rws Debug.WriteLie(r.RwState.TStrig) Next

08. 데이터셋을 DB 에실제로저장하기 데이터셋의테이블에서레코드를추가, 수정, 삭제 1 레코드의추가 Tables속성을이용현재사용하려고하는 DataTable 객체를꺼냄 NewRw() 라는메서드를호출 DataTable 클래스 Public Fucti NewRw() As DataRw ' 입력한항목을데이터셋에추가 Dim dr As DataRw = m_ds.tables(" 신입사원 ").NewRw() dr(" 번호 ") = 3 dr(" 필기 ") = 97 dr(" 면접 ") = 90 Rw속성의 Add() 메서드를이용해서 DataRw객체를추가 m_ds.tables(" 신입사원 ").Rws.Add(dr)

08. 데이터셋을 DB 에실제로저장하기 2 레코드의수정 Rws 컬렉션속성에서원하는 DataRw객체만수정원하는필드를고치고싶으면 Item속성수정 m_ds.tables(" 신입사원 ).Rws(0).Item(" 번호 ") = 10" 3 레코드의제거 Rws 컬렉션속성에들어있는 Delete() 메서드를호출 m_ds.tables(" 신입사원 ").Rws(0).Delete()

09. 데이터셋자료의읽기, 추가, 수정, 삭제 CmmadBuilder 클래스 Isert/Delete/UpdateCmmad 속성을자동으로처리 Public Sub New(ByVal adapter As SqlDataAdpater) ' 데이터어댑터객체에게 Isert,Delete,Update 명령을대신만들어준다. Dim cb As New SqlCmmadBuilder(m_adpt)

09. 데이터셋자료의읽기, 추가, 수정, 삭제 데이터어댑터객체의 Update() 메서드 수정사항이데이터베이스에반영 SqlDataAdapter 클래스 Public Fucti Update(ByVal dataset As DataSet,ByVal srctable As Strig) As Iteger m_adpt.update(m_ds, " 신입사원 ") m_ds.acceptchages() ' 변경된상태정보를다시초기화시키고삭제자료제거