Chap 13 dao
This presentation is the property of its rightful owner.
Sponsored Links
1 / 27

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


  • 201 Views
  • Uploaded on
  • Presentation posted in: General

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

Download Presentation

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

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Chap 13 dao

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


01 dao 02 dao 03 dao

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


Chap 13 dao

DAO 개요

  • DAO

    • 특징

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

        • DAO(Data Access Object)

        • RDO(Remote Data Object)

        • ADO(Active Data Object)

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


Chap 13 dao

DAO 구조


Chap 13 dao

DAO의 중요한 세가지 개체

  • DBEngine 개체

    • DAO의 최상위 개체로, DAO 개체의 계층 구조에 있는 다른 모든 개체를 포함하여 제어

  • Workspace 개체

    • 열려있는 데이터베이스의 저장소 역할을 함

    • DAO 개체가 실행되면 자동으로 기본작업 영역 DBEngin.Workspace(0) 가 생성

  • Recordset 개체

    • 기초 테이블에 있는 레코드 또는 질의(Query)를 실행한 후 생성되는 레코드를 나타냄

    • 데이터 베이스에 있는 데이터를 레코드 수준에서 조작


Chap 13 dao

  • DAO의 주요 개체

    • DBEngine 개체, Workspace 개체, Recordset 개체

    • DBEngine 개체

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

      • 주요 속성


Chap 13 dao

  • 주요 메소드


Chap 13 dao

  • Workspace 개체

    • 열려 있는 데이터베이스의 저장소 역할하는 개체

    • DAO 개체가 실행되면 자동으로 기본 작업 영역 DBEngine.Workspace(0)가 생성되고 Create Workspace 메소드로 생성된 다른 Workspace와 달리 닫거나 삭제가 불가능

DBEngine

Errors

Workspace

Workspaces

Connections

Databases

Groups

Users


Chap 13 dao

  • 주요 속성 및 메소드

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


Chap 13 dao

  • RecordSet 개체

    • 기초 테이블에 있는 레코드 또는 질의를 실행한 후 생성되는 레코드를 표시

    • Recordset 개체를 사용하여 레코드 수준에서 데이터베이스에 있는 데이터 조작 가능

    • 주요 속성


Chap 13 dao

  • 주요 메소드


01 dao 02 dao 03 dao1

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


Chap 13 dao

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

  • DAO를 사용하여 주소록 만들기

    • DAO를 이용하여 코드를 조작하기 전에 반드시 DAO 개체를 사용한다는 것을 비주얼 베이직에 알려야 함

    • [프로젝트] → [참조] 메뉴를 선택하고 대화상자에서 ‘Microsoft DAO 3.51 Object Library’ 항목 선택


Chap 13 dao

[실습하기] 데이터베이스 응용 프로그램 만들기

11

12

폼에 컨트롤 추가하기

각 컨트롤의 속성 설정


Chap 13 dao

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

데이터베이스를 열어준다

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

Dim  MyDB  As  Database

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

Dim  MyRecordset  As Recordset

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

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

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

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


Chap 13 dao

 데이터베이스파일과 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

 프로그램 실행


01 dao 02 dao 03 dao2

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


Chap 13 dao

DAO를 이용하여 데이터베이스 파일 생성하기

  • 생성할 주소록 테이블 구조

폼에 컨트롤 추가하기


Chap 13 dao

버튼의 이벤트 핸들러 작성

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


Chap 13 dao

프로그램을 실행하고 버튼을 눌러

DB가 생성되는지 확인


Sql structured query language

SQL (Structured Query Language)

  • SQL (Structured Query Language)

    • 데이터 베이스 조작언어(DML: Data Manipulation Language)

    • 관계형 데이터 베이스에 연결해서 데이터의 검색 및 저장, 수정, 삭제 등을 할 수 있는 언어

    • SQL 문

      • 선택질의

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

      • 실행 질의

        • Insert 문: 새로운 데이터를 삽입하는 문장

        • Update 문: 기존의 데이터를 수정하는 문장

        • Delete 문: 기존의 데이터를 삭제하는 문장

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


Chap 13 dao

  • Select 문

    • 특정 테이블로 부터 지정된 필드만 추출해서 새로운 레코드 집합(Recordset)을 만들 수 있음

      • 선택된 필드명 나열, ‘*’로 표시될 경우 전체 필드들을 선택

      • 데이터를 가져올 테이블명을 나열

      • 테이블에서 추출할 데이터의 조건을 지정

      • 실제 테이블 나열순서가 아닌 특정 필드의 오름차순이나 내림차순으로 정렬되도록 지정

Select 선택될 필드명1, 선택될 필드명2, …

From 테이블명

Where 검색조건

[Order by 정렬필드명 [Asc | Desc] ]


Chap 13 dao

  • Select문의 사용 예

    • Select * From 상품

      • “상품” 테이블에서 전체 레코드를 추출

    • Select 코드, 상품명 From 상품

      • “상품” 테이블에서 “코드”와 “상품명” 필드만을 추출

      • 필드의 위치는 필드명이 나열된 순서로 재배열되어 추출

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

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

      • “판매일” 날짜형 데이터


Chap 13 dao

  • 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 사이의 레코드를 추출


Chap 13 dao

SQL 사용의 예

  • DBGrid  (이름) DBGrid1, DataSource: Data1

  • Data  (이름) Data1, Visible: False

  • TextBox  (이름) Text1, MultiLine: True, ScrollBars: 2- 수직, Text: 비워둠

  • CommandButton (이름): Command1, Caption: 실행

  • StatusBar  (이름): StatusBar1

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


Chap 13 dao

데이터베이스 파일 연결

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 Sub

Err_rtn:

MsgBox Err.Description

End Sub


Chap 13 dao

  • 실행 예제


  • Login