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

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


  • 230 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를 이용하여 데이터베이스 만들기


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


DAO 개요

  • DAO

    • 특징

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

        • DAO(Data Access Object)

        • RDO(Remote Data Object)

        • ADO(Active Data Object)

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


DAO 구조


DAO의 중요한 세가지 개체

  • DBEngine 개체

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

  • Workspace 개체

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

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

  • Recordset 개체

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

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


  • DAO의 주요 개체

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

    • DBEngine 개체

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

      • 주요 속성


  • 주요 메소드


  • Workspace 개체

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

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

DBEngine

Errors

Workspace

Workspaces

Connections

Databases

Groups

Users


  • 주요 속성 및 메소드

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


  • RecordSet 개체

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

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

    • 주요 속성


  • 주요 메소드


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


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

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

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

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


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

11

12

폼에 컨트롤 추가하기

각 컨트롤의 속성 설정


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

데이터베이스를 열어준다

① 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)


 데이터베이스파일과 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. DAO를 이용하여 데이터베이스 생성하기


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


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

DB가 생성되는지 확인


SQL (Structured Query Language)

  • SQL (Structured Query Language)

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

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

    • SQL 문

      • 선택질의

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

      • 실행 질의

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

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

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

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


  • Select 문

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

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

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

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

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

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

From 테이블명

Where 검색조건

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


  • Select문의 사용 예

    • Select * From 상품

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

    • Select 코드, 상품명 From 상품

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

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

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

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

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


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


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”


데이터베이스 파일 연결

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


  • 실행 예제


  • Login