본문 바로가기

Dev.../델파이4의 모든것

13장 데이터베이스 프로그래밍 기초_초고

1999년의 Delphi4기준입니다.

지금은 올드한 내용이지만..

당시 책에 빠진 내용이어서

이곳에 올려둡니다.

(근데.. 그림이 안올라가네요~~

 쩝~~)

 

13장

데이터베이스 프로그래밍 기초

초고

 

 

 

 이장에서는 델파이에서 지원하는 기본적인 Data aware컴포넌트를 이용하여 프로그래밍하는 방법과 SQL문장을 사용하여 데이터를 조작하는 방법에 대하여 알아보겠다. 필자는 Data aware컴포넌트를 그다지 좋아하지는 않는다.

 

 필자가 아는 몇몇 프로그래머들은 기본적으로 델파이에서 지원하는 DBLable이나 DBEdit 사용하는 조차도 부담스러워하는 경우가 종종있다.

 

 델파이로 DB프로그래밍을 하는 방법에는 1, 2, 3, Multi-tier환경의 DB프로그래밍을 있다. 환경의 차이는 DB 어떤 프로토콜과 어떤 방법으로 접근하느냐에 달려있다. 하지만, 기본적인 Business Rule 적용하는 방법은 동일하다. 그러한 방법을 다음의 6가지 형태로 나누어 알아보도록 하자.

 

1)    자료를 DB에서 읽어오는 방법

2)    기본 데이터베이스 과련 유틸리티 사용방법

3)    자료처리시의 에러처리방법

4)    자료를 화면에 제시하는 방법

5)    사용자의 요구에 따라 DB 변경하는 방법

6)    마지막으로 사용자의 요구에 따라 프린터로 출력하는 방법

 

이상의 4가지 방법으로 알아보자.

 

1)    자료를 DB에서 읽어오는 방법

 

기본적으로 TDataSet이라는 구조를 살펴보면 쉽게 있다. TDataSet 구조는 다음과 같다.

 

) TDataSet

DataSet이란 델파이에서 지원하는 관계형데이타베이스의 테이블(열과 행으로 구분되는) 지칭합니다. 델파이의 Data access팔레트에 존재하는 다양한 DataSet컴포넌트를 만날 있습니다. 이러한 컴포넌트들은 관계형데이타베이스의 테이블을 읽어오기 위한 것이고 RDB 접근하는 방법으로 분리되어 있을뿐, 특별한 차이는 없습니다.

 

TDataSet -> TClientDataSet

->TBDEDataSet -> TDBDataSet -> TTable, TQuery, TStoredProc

 

위의 계층도를 살펴보면 TDataSet 모든 테이블의 상위에 존재하며 기본적으로 다음과 같은 기능을 지원합니다. 델파이에서 사용되는 모든 DataSet관련 컴포넌트는 다음과 같은 기능을 지원합니다.

 

구분

지원 프로퍼티/메소드

기본기능

Active, Open, Close

검색기능

First, Last, Next, Prior, MoveBy, Refresh, EOF, BOF, and, IsEmpty

편집기능

Edit, Insert, InsertRecord, Append, AppendRecord, Delete, Post, Cancel, Midufied, State, ChechBrowseMode, SetFields

북마크기능

BookmarkValid, CompareBookmarks, GotoBookmark, FreeBookmark, GetBookmark, Bookmark

Data-aware지원기능

ControlsDisabled, DIsableControls, EnableControls, ISLinkedTo

이벤트

BeforeOpen, AfterOpen, BeforeClose, AfterClose, BeforsInsert, AfterInsert, BeforeEdit, AfterEdit, BeforePost, AfterPost, BeforeCancel, AfterCancel, BeforeDelete, AfterDelete, BeforsScroll, AfterScroll, onCalcFiels, onDeleteError, onEditError, onNewRecord, onPostError

필드지원기능

FieldByname, FieldByNumber, FieldDefs, FieldCount, Fields, FIeldValue, DefaultFields, FindField, GetFieldList, GetFieldNames, UpdateRecord, ClearFields

하위레벨지원기능

ActiveBuffer, CursorPosChanged, GetCurrenRecord, Translate, RecordSize

 

 

 

이러한 TDataSet TClientDataSet 일반적인 BDE 사용할 TTable, TQuery, TStoredProc에게 파생됩니다.

-          TClientDataSet : 전장에서 자세히 설명하였지만 multi-tier 환경에서 사용하며 간단한 1-tier환경에도 사용할 LoadFromFile, SaveToFile 지원되며 ClientPC에는 DBCLient.dll이라는 파일 하나만 지원되면 됩니다.

-          TTable, TQuery, TStoredProc : 델파이에서 지원되는 BDE 사용하여 데이터베이스에 접근하는 방법을 지원하며 보통 2-tier환경으로 C/S환경에 적용됩니다.

 

) TDataSet 기본적인 기능

 

대다수의 기능은 위에서 보여준 표를 참조하면 무방하며 델파이 1, 2, 3에서의 구조와 거의 동일하다 다만 몇가지 참고하여야 내용을 살펴보자.

 

1)  Active, Open, Close

실제로 Active := True, Open 동일한 동작을 수행한다. 이러한 구분을 만들어 놓은 이유는 Design Time Run Time환경에서 동일한 동작을 수행하기 위한 하나의 방편이며, TQuery 형태인 경우 Open문으로 수행하지 못하는 몇가지 작업이 있다. TQuery 경우 ExecSQL이라는 메소드가 있는데 메소드는 데이터를 조작하는 작업으로 Inser문이나 Delete, Update문인경우에 ExecSQL 사용한다. 이경우 수행되는 내용을 Active 통하여 검사할 있다.

 

2)  TDataSet 상태

현재 DataSet 작업상태를 표시하는 것으로 State프로퍼티를 참조하면 현재 상태를 있다.


실제 델파이의 Help화면을 참조한 부분이다.

 

3)  TDataSet 조작

데이터를 검색하고 환경을 조절하는 방법을 알아보자.

 

First, Next, Prior, MoveBy(수치) 레코드의 행을 이동하는 방법이다. 그리고 BOF EOF