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
'Dev... > 델파이4의 모든것' 카테고리의 다른 글
델파이4의 모든 것 오픈예정 (0) | 2008.07.29 |
---|---|
24장 CORBA부분에서 빠진 부분.. (0) | 2004.04.27 |
20장 델파이에서 CGI 애플리케이션 만들기 (0) | 2004.04.27 |
CORBA 어플리케이션의 제작이라는 빠진 부분이었습니다. (0) | 2004.04.26 |
이페이지는 제가쓴 델파이4모든것에서 편집으로 짤렸던 부분을.. (0) | 2004.04.26 |