chap 13. dao 를 이용하여 데이터베이스 만들기

27
한한한한한한 - 1 - IT COOKBOOK ehanbit.net Chap 13. DAO Chap 13. DAO 를 를를를를 를 를를를를 를를를를를를 를를를 를를를를를를 를를를

Upload: byron

Post on 11-Jan-2016

94 views

Category:

Documents


8 download

DESCRIPTION

Chap 13. DAO 를 이용하여 데이터베이스 만들기. 01. DAO 개요 02. DAO 를 이용하여 응용 프로그램 만들기 03. DAO 를 이용하여 데이터베이스 생성하기. DAO 개요. DAO 특징 데이터 컨트롤이 세밀한 작업이나 데이터베이스 자체를 조작하거나 새로운 테이블을 만드는 작업 등은 할 수 없어 데이터베이스를 파일 수준에서 다루지 않고 좀더 편하게 프로그래밍하기 위해 제공된 개체 DAO(Data Access Object) RDO(Remote Data Object) - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Chap 13. DAO 를 이용하여                 데이터베이스 만들기

한빛미디어㈜

- 1 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

Chap 13. DAOChap 13. DAO 를 이용하여 를 이용하여 데이터베이스 만들기 데이터베이스 만들기

Page 2: Chap 13. DAO 를 이용하여                 데이터베이스 만들기

한빛미디어㈜

- 2 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

01. 01. DAO 개요DAO 개요02. DAO02. DAO 를 이용하여 응용 프로그램 만들기를 이용하여 응용 프로그램 만들기03. DAO03. DAO 를 이용하여 데이터베이스 생성하기를 이용하여 데이터베이스 생성하기

Page 3: Chap 13. DAO 를 이용하여                 데이터베이스 만들기

한빛미디어㈜

- 3 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

DAO DAO 개요개요

DAODAO 특징

데이터 컨트롤이 세밀한 작업이나 데이터베이스 자체를 조작하거나 새로운 테이블을 만드는 작업 등은 할 수 없어 데이터베이스를 파일 수준에서 다루지 않고 좀더 편하게 프로그래밍하기 위해 제공된 개체

DAO(Data Access Object)RDO(Remote Data Object)ADO(Active Data Object)

데이터베이스와 응용 프로그램을 효과적으로 연결해주는 역할 담당

Page 4: Chap 13. DAO 를 이용하여                 데이터베이스 만들기

한빛미디어㈜

- 4 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

DAO DAO 구조구조

Page 5: Chap 13. DAO 를 이용하여                 데이터베이스 만들기

한빛미디어㈜

- 5 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

DAODAO 의 중요한 세가지 개체의 중요한 세가지 개체

DBEngine DBEngine 개체개체 DAO 의 최상위 개체로 , DAO 개체의 계층 구조에

있는 다른 모든 개체를 포함하여 제어

Workspace Workspace 개체개체 열려있는 데이터베이스의 저장소 역할을 함 DAO 개체가 실행되면 자동으로 기본작업 영역 DBE

ngin.Workspace(0) 가 생성

Recordset Recordset 개체개체 기초 테이블에 있는 레코드 또는 질의 (Query) 를

실행한 후 생성되는 레코드를 나타냄 데이터 베이스에 있는 데이터를 레코드 수준에서

조작

Page 6: Chap 13. DAO 를 이용하여                 데이터베이스 만들기

한빛미디어㈜

- 6 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

DAO 의 주요 개체DBEngine 개체 , Workspace 개체 , Recordset 개체DBEngine 개체

DAO 개체 모델의 최상위 개체로 , DAO 개체의 계층 구조에 있는 다른 모든 개체를 포함하며 제어 주요 속성

Page 7: Chap 13. DAO 를 이용하여                 데이터베이스 만들기

한빛미디어㈜

- 7 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

주요 메소드

Page 8: Chap 13. DAO 를 이용하여                 데이터베이스 만들기

한빛미디어㈜

- 8 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

Workspace 개체열려 있는 데이터베이스의 저장소 역할하는 개체DAO 개체가 실행되면 자동으로 기본 작업 영역 DBEngine.Workspace(0) 가 생성되고 Create Workspace 메소드로 생성된 다른 Workspace 와 달리 닫거나 삭제가 불가능

DBEngine

Errors

Workspaces Workspace

Connections

Databases

Groups

Users

Page 9: Chap 13. DAO 를 이용하여                 데이터베이스 만들기

한빛미디어㈜

- 9 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

주요 속성 및 메소드

로그인한 후 오류가 발생할 때 까지의 시간을 초단위로 설정 / 반환

Page 10: Chap 13. DAO 를 이용하여                 데이터베이스 만들기

한빛미디어㈜

- 10 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

RecordSet 개체 기초 테이블에 있는 레코드 또는 질의를 실행한 후 생성되는 레코드를 표시Recordset 개체를 사용하여 레코드 수준에서 데이터베이스에 있는 데이터 조작 가능주요 속성

Page 11: Chap 13. DAO 를 이용하여                 데이터베이스 만들기

한빛미디어㈜

- 11 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

주요 메소드

Page 12: Chap 13. DAO 를 이용하여                 데이터베이스 만들기

한빛미디어㈜

- 12 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

01. DAO 01. DAO 개요개요02. 02. DAO를 이용하여 응용 프로그램 만들기DAO를 이용하여 응용 프로그램 만들기03. DAO03. DAO 를 이용하여 데이터베이스 생성하기를 이용하여 데이터베이스 생성하기

Page 13: Chap 13. DAO 를 이용하여                 데이터베이스 만들기

한빛미디어㈜

- 13 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

DAODAO 를 이용하여 응용 프로그램 만들기를 이용하여 응용 프로그램 만들기

DAODAO 를 사용하여 주소록 만들기를 사용하여 주소록 만들기 DAO 를 이용하여 코드를 조작하기 전에 반드시 DAO

개체를 사용한다는 것을 비주얼 베이직에 알려야 함 [ 프로젝트 ] → [ 참조 ] 메뉴를 선택하고 대화상자에서

‘ Microsoft DAO 3.51 Object Library’ 항목 선택

Page 14: Chap 13. DAO 를 이용하여                 데이터베이스 만들기

한빛미디어㈜

- 14 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

[[ 실습하기실습하기 ] ] 데이터베이스 응용 프로그램 만들기데이터베이스 응용 프로그램 만들기 폼에 컨트롤 추가하기

11

12

각 컨트롤의 속성 설정

Page 15: Chap 13. DAO 를 이용하여                 데이터베이스 만들기

한빛미디어㈜

- 15 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

데이터베이스를 연결하기 위해 다음과 같은 순서로 데이터베이스를 열어준다

① Databse 개체를 저장할 변수를 선언한다 .

Dim MyDB As Database Dim MyDB As Database

② Recordset 개체를 저장할 변수를 선언한다 .

Dim MyRecordset As Recordset Dim MyRecordset As Recordset

③ OpenDatabase 메소드를 사용하여 데이터베이스 파일을 열어준다 .

Set MyDB = DBEngine.Workspaces(0).OpenDatabase(“Set MyDB = DBEngine.Workspaces(0).OpenDatabase(“ 주소록주소록 .mdb") .mdb")

④ OpenRecordset 메소드를 사용하여 Recordset 을 열어준다 .

Set MyRecordSet = MyDb.OpenRecordset("Set MyRecordSet = MyDb.OpenRecordset(" 주소록주소록 ", dbOpenTable)", dbOpenTable)

Page 16: Chap 13. DAO 를 이용하여                 데이터베이스 만들기

한빛미디어㈜

- 16 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

데이터베이스파일과 Recordset 을 열어주는 구문을 Form_Load() 이벤트 핸들러에 작성

Private Sub Form_Load() Set MyDB = DBEngine.Workspaces(0).OpenDatabase(“ 주소록 .mdb") Set MyRecordSet = MyDB.OpenRecordset(" 주소록 ", dbOpenTable) End Sub

현재 레코드를 화면에 표시하도록 커맨드버튼 (cmdRecordDisp) 의 이벤트 핸들러를 작성

Private Sub cmdRecordDisp_Click() txtName = MyRecordset.Fields(" 이름 ") txtPhone = MyRecordset.Fields(" 전화번호 ") txtAddress = MyRecordset.Fields(" 주소 ") txtEmail = MyRecordset.Fields(" 전자우편주소 ") txtBirth = MyRecordset.Fields(" 생년월일 ") End Sub

프로그램 실행

Page 17: Chap 13. DAO 를 이용하여                 데이터베이스 만들기

한빛미디어㈜

- 17 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

01. DAO 01. DAO 개요개요02. DAO02. DAO 를 이용하여 응용 프로그램 만들기를 이용하여 응용 프로그램 만들기03. 03. DAO를 이용하여 데이터베이스 생성하기DAO를 이용하여 데이터베이스 생성하기

Page 18: Chap 13. DAO 를 이용하여                 데이터베이스 만들기

한빛미디어㈜

- 18 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

DAODAO 를 이용하여 데이터베이스 파일 생성하기 를 이용하여 데이터베이스 파일 생성하기 생성할 주소록 테이블 구조

폼에 컨트롤 추가하기

Page 19: Chap 13. DAO 를 이용하여                 데이터베이스 만들기

한빛미디어㈜

- 19 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

버튼의 이벤트 핸들러 작성

Private Sub cmdCreateDB_Click() ' 데이터베이스 , 테이블 , 필드를 저장할 변수를 선언한다 Dim MyDB As Database Dim MyTable As TableDef Dim MyField As Field ' 새로운 데이터베이스 파일을 생성한다 Set MyDB = DBEngine.Workspaces(0).CreateDatabase(“c:\vb\ 새로만든주소록 .MDB", dbLangKorean, dbEncrypt) ' 새로운 테이블을 생성한다 Set MyTable = MyDB.CreateTableDef(" 주소록 ") ' 테이블에 필드를 추가한다 Set MyField = MyTable.CreateField(" 번호 ", dbLong) MyTable.Fields.Append MyField Set MyField = MyTable.CreateField(" 이름 ", dbText, 10) MyTable.Fields.Append MyField Set MyField = MyTable.CreateField(" 휴대폰번호 ", dbText, 15) MyTable.Fields.Append MyField Set MyField = MyTable.CreateField(" 주소 ", dbText, 50) MyTable.Fields.Append MyField 'TableDefs 객체에 테이블을 추가한다 MyDB.TableDefs.Append MyTable MyDB.Close DBEngine.Workspaces(0).Close End Sub

Page 20: Chap 13. DAO 를 이용하여                 데이터베이스 만들기

한빛미디어㈜

- 20 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

프로그램을 실행하고 버튼을 눌러 DB 가 생성되는지 확인

Page 21: Chap 13. DAO 를 이용하여                 데이터베이스 만들기

한빛미디어㈜

- 21 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

SQL (Structured Query Language)SQL (Structured Query Language)

SQL (Structured Query Language)SQL (Structured Query Language) 데이터 베이스 조작언어 (DML: Data Manipulation Lan

guage) 관계형 데이터 베이스에 연결해서 데이터의 검색 및

저장 , 수정 , 삭제 등을 할 수 있는 언어 SQL 문

선택질의Select 문 : 검색조건에 맞는 데이터를 선택하는 문장

실행 질의Insert 문 : 새로운 데이터를 삽입하는 문장Update 문 : 기존의 데이터를 수정하는 문장Delete 문 : 기존의 데이터를 삭제하는 문장

데이터 컨트롤 객체는 실행질의를 지원하지 않음

Page 22: Chap 13. DAO 를 이용하여                 데이터베이스 만들기

한빛미디어㈜

- 22 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

Select Select 문문 특정 테이블로 부터 지정된 필드만 추출해서 새로운

레코드 집합 (Recordset) 을 만들 수 있음

1. 선택된 필드명 나열 , ‘*’ 로 표시될 경우 전체 필드들을 선택2. 데이터를 가져올 테이블명을 나열3. 테이블에서 추출할 데이터의 조건을 지정4. 실제 테이블 나열순서가 아닌 특정 필드의 오름차순이나

내림차순으로 정렬되도록 지정

Select 선택될 필드명 1, 선택될 필드명 2, …From 테이블명Where 검색조건[Order by 정렬필드명 [Asc | Desc] ]

Page 23: Chap 13. DAO 를 이용하여                 데이터베이스 만들기

한빛미디어㈜

- 23 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

SelectSelect 문의 사용 예문의 사용 예 Select * From 상품

“ 상품” 테이블에서 전체 레코드를 추출 Select 코드 , 상품명 From 상품

“ 상품” 테이블에서 “코드”와 “상품명” 필드만을 추출필드의 위치는 필드명이 나열된 순서로 재배열되어 추출

Select * From 판매일지 Where 판매일 >= #2004-2-1#

“ 판매일지” 테이블에서 “판매일”이 2004 년 2 월 1 일보다 큰 레코드들을 추출“ 판매일” 날짜형 데이터

Page 24: Chap 13. DAO 를 이용하여                 데이터베이스 만들기

한빛미디어㈜

- 24 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

Select * From 상품 Where 재고수량 < 10 Order by 재고수량 “ 상품” 테이블에서 “재고수량”이 10 보다 작은 레코드를 “재고수량” 필드의 내림차순으로 정렬하도록 추출

Select * From Products Where ProductName Like “* 주스 *”“Product” 테이블의 “ ProductName” 필드의 내용이 “주스”라는 문자를 포함한 레코드를 추출 (Like 연산자 )

Select * From Products Where UnitPrice Between 10000 and 20000

“Product” 테이블의 “ UnitPrice” 필드값이 10000~20000 사이의 레코드를 추출

Page 25: Chap 13. DAO 를 이용하여                 데이터베이스 만들기

한빛미디어㈜

- 25 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

SQL SQL 사용의 예사용의 예

1.1. DBGrid DBGrid ( ( 이름이름 ) DBGrid1, DataSource: Data1) DBGrid1, DataSource: Data1

2.2. Data Data ( ( 이름이름 ) Data1, Visible: False) Data1, Visible: False

3.3. TextBox TextBox ( ( 이름이름 ) Text1, MultiLine: True, ScrollBars: 2- ) Text1, MultiLine: True, ScrollBars: 2- 수직수직 , T, Text: ext: 비워둠비워둠

4.4. CommandButtonCommandButton ( ( 이름이름 ): Command1, Caption: ): Command1, Caption: 실행실행5.5. StatusBar StatusBar ( ( 이름이름 ): StatusBar1): StatusBar1

속성속성 [[ 패널패널 ]] index=1, AutoSize: “1-sbrSpring” index=1, AutoSize: “1-sbrSpring”

Page 26: Chap 13. DAO 를 이용하여                 데이터베이스 만들기

한빛미디어㈜

- 26 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

Private Sub Form_Load() Data1.DatabaseName = " 상점관리 .mdb" Data1.RecordSource = "Select * From Products" Text1.Text = "Select * From Products" StatusBar1.Panels(1).Text = "SQL 문을 입력한 후 [ 실행 ] 단추를 누르세요 ." End Sub

Private Sub Command1_Click() On Error GoTo Err_rtn Data1.RecordSource = Text1.Text Data1.Refresh StatusBar1.Panels(1).Text = " 검색된 레코드수 : " & Data1.Recordset.RecordCount & " 개 " Exit SubErr_rtn: MsgBox Err.DescriptionEnd Sub

데이터베이스 파일 연결

[ 실행 ] 버튼 관련

Page 27: Chap 13. DAO 를 이용하여                 데이터베이스 만들기

한빛미디어㈜

- 27 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

실행 예제