손쉬운 데이터 연결 방법(라이브바인딩 활용)

28
1 6데이터 연결 소개............................................................................................................................................................................ 2 윈도우와 애플리케이션과 데이터 연결 ........................................................................................................... 3 RAD Studio포함된 데이터베이스 컴포넌트.................................................................................................. 3 라이브바인딩........................................................................................................................................................... 11 라이브바인딩을 사용하여 코딩 없이 파이어몽키 HD 애플리케이션 작성 .................................................... 21 InterBase Express (IBX) 사용하여 코딩 애플리케이션 작성........................................................................... 24 데이터베이스 애플리케이션 배포 ........................................................................................................................ 26 요약, 전망, 해야 , 참고자료 ....................................................................................................................... 28

Upload: devgear

Post on 29-Nov-2014

574 views

Category:

Software


7 download

DESCRIPTION

RAD Studio(Delphi+CBuilder)에는 라이브바인딩이라는 기능이 있습니다. 이 기능을 활용하면 데이터 연결을 매우 쉽게 할 수 있습니다.

TRANSCRIPT

Page 1: 손쉬운 데이터 연결 방법(라이브바인딩 활용)

1

6장 – 데이터 연결

소개 ............................................................................................................................................................................ 2

윈도우와 맥 애플리케이션과 데이터 연결 ........................................................................................................... 3

RAD Studio에 포함된 데이터베이스 컴포넌트 .................................................................................................. 3

라이브바인딩........................................................................................................................................................... 11

라이브바인딩을 사용하여 코딩 없이 파이어몽키 HD 애플리케이션 작성 .................................................... 21

InterBase Express (IBX) 사용하여 코딩 애플리케이션 작성 ........................................................................... 24

데이터베이스 애플리케이션 배포 ........................................................................................................................ 26

요약, 전망, 해야 할 일, 참고자료 ....................................................................................................................... 28

Page 2: 손쉬운 데이터 연결 방법(라이브바인딩 활용)

2

소개

세상은 데이터로 가득합니다. 우리는 그 어느 때 보다 더 많은 데이터를 생성하고, 저장하고, 인덱스를

생성하고 검색하고 출력합니다.

거의 모든 비즈니스 애플리케이션은 데이터를 가지고 작업을 합니다. 파이어몽키는 MS SQL Server,

Oracle, IBM DB2, MySQL, Sybase, Informix, InterBase 및 Firebird 데이터베이스에 접근하기 위한 내장된

컴포넌트 기반의 고성능 네이티브 액세스를 포함합니다. 또한 로컬 데이터베이스 테이블과

(파라독스와 디베이스) XML 데이터도 작업 할 수 있습니다.

RAD Studio는 윈도우 및 맥 애플리케이션에서 사용할 수 있는 다음과 같은 데이터베이스 액세스

기술과 컴포넌트를 포함합니다:

dbExpress InterBase Express (IBX) ClientDataSet

윈도우 및 맥 사용자 인터페이스(UI)를 데이터와 연결하려면 라이브바인딩을 사용하여 실시간 시각적

데이터를 표시 할 수 있습니다. 라이브바인딩은 HD 또는 3D에서 UI 나 그래픽 개체에 데이터 소스의

모든 종류를 연결 할 수 있습니다. 파이어몽키는 강력한 새로운 방법으로 데이터와 상호 작용하기

위해 전례 없는 표현 자유를 제공합니다

6 장에서 데이터베이스에 연결하여 데이터를 조회하고 처리하는 윈도우와 맥 애플리케이션을

작성하는 방법에 대해 배워 보겠습니다. 또한 파이어몽키 애플리케이션과 데이터를 연결하기 위해 SQL

과 라이브바인딩 기술을 어떻게 사용 하는지 배우겠습니다.

Page 3: 손쉬운 데이터 연결 방법(라이브바인딩 활용)

3

윈도우와 맥 애플리케이션과 데이터 연결

RAD Studio는 윈도우와 맥 애플리케이션에서 데이터와 데이터베이스를 사용하는 여러 가지 방법을

제공합니다. 또한 데이터를 포함하는 XML 파일로도 작업 할 수 있습니다. RAD Studio로 데이터를

연결하는 방법을 살펴보겠습니다.

데이터베이스 애플리케이션 작성

애플리케이션 간에 투명한 공유 데이터를 제공하는 동안 Oracle, Sybase, InterBase, MySQL, MS-SQL, Fire

Bird, Informix, 및 DB2와 같은 데이터베이스와 SQL 서버를 연결하기 위해 툴을 사용하여 향상된 데이터

베이스 애플리케이션을 작성 할 수 있습니다. RAD Studio는 연결, SQL 동작, 트랜잭션 작업, 저장 프로

시저 실행과 그 외 작업을 위한 데이터베이스 컴포넌트를 포함합니다. 데이터베이스 애플리케이션을

작성하기 위해

코드를 작성하지 않고 시각적으로 데이터를 연결하여 윈도우 및 맥 사용자 인터페이스에 데이터를 조

회하고 바인딩 할 수 있습니다. 또한 컴포넌트와 비즈니스 로직 코드의 조합으로 데이터베이스 애플리

케이션을 구축 할 수 있습니다. 어떤 데이터베이스로 작업을 할지, 어떻게 프로그램에서 데이터를 생성,

읽기 /검색, 업데이트 및 삭제 할 것인지는 여러분의 선택에 달려 있습니다.

RAD Studio에 포함된 데이터베이스 컴포넌트

툴 팔레트는 데이터베이스를 액세스하고 정보를 나타내는 많은 컴포넌트들을 포함합니다.

데이터베이스 컴포넌트들은 데이터 액세스 메커니즘과 기능에 따라 그룹화됩니다. 컴포넌트의 다음

그룹은 윈도우 및 맥 애플리케이션에서 사용할 수 있습니다.

dbExpress (DBX) –데이터베이스 정보에 액세스 하기 위해 dbExpress를 사용하는 크로스-플랫폼

컴포넌트. dbExpress 드라이버는 데이터베이스의 빠른 액세스를 제공합니다. dbExpress의 테이블,

쿼리 및 저장프로시저 컴포넌트들은 데이터의 행을 리턴 할 수 있습니다. 데이터베이스를

업데이트하기 위해 또한 TClientDataSet 와 TDataSetProvider 데이터 액세스 컴포넌트를

사용해야 합니다.

Page 4: 손쉬운 데이터 연결 방법(라이브바인딩 활용)

4

InterBase Express (IBX) – 별도의 엔진 층을 거치지 않고 API를 통하여 인터베이스

데이터베이스에 직접 액세스하는 컴포넌트들을 포함합니다. InterBase Express 컴포넌트는

윈도우와 맥에서 사용할 수 있습니다. 컴포넌트들은 dbExpress의 여러 데이터베이스를 지원

하는 것 이외에 추가적인 기능을 제공합니다. IBX는 액세스 및 관리 컴포넌트 그룹 모두를

포함합니다.

Data Access – 모든 데이터 액세스 메커니즘을 사용하는 RAD Studio안에 포함된

컴포넌트들입니다. TClientDataSet 는 서버 데이터뿐만 아니라 디스크상의 로컬

데이터파일(바이너리 포맷 또는 XML 포맷)을 모두 사용하여 작업할 수 있습니다.

TDataSetProvider는 데이터 셋으로부터 데이터를 제공하며 데이터베이스 서버에 또는 그

데이터 셋에 업데이트를 해결합니다. TDataSource는 데이터 셋 컴포넌트와 폼 위의 데이터

인식 컨트롤 사이의 인터페이스를 제공합니다.

Page 5: 손쉬운 데이터 연결 방법(라이브바인딩 활용)

5

Data Controls – 파이어몽키에서 라이브바인딩 기능을 통해 모든 UI 컨트롤은 데이터베이스에

연결할 수 있습니다. 아래 XE2 라이브바인딩에 대한 부분을 참조하십시오.

데이터베이스 애플리케이션을 설계 할 때 어떤 데이터 액세스 메커니즘을 사용할지 결정해야 합니다.

각 데이터 액세스 메커니즘은 기능 지원, 배포의 용이성, 그리고 다른 데이터베이스 서버를 지원하는

드라이버의 가용성 등의 범위에서 차이가 있습니다.

dbExpress

dbExpress 프레임워크는(DBX 프레임워크) DBXCommon 유니트에 정의되어 있는 추상 클래스의

집합입니다.

dbExpress 컴포넌트를 통해 dbExpress 드라이버를 사용하는 많은 애플리케이션 인터페이스가 있지만,

DBX 프레임 워크는 데이터베이스 드라이버와 통신 할 수 있는 편리하고 경량의 옵션을 제공합니다.

또한 프레임 워크의 DBXCommon의 추상 기본 클래스를 확장하여 dbExpress를 위한 데이터베이스

드라이버를 만들 수 있습니다. DBX 프레임 워크는 "세트"중심의 데이터베이스 애플리케이션에 대한

가장 일반적으로 필요한 데이터베이스 드라이버 기능을 제공하면서도 간단한 인터페이스를 제공합니다.

다음은 DBX 프레임 워크의 주요 기능입니다:

드라이버 프레임 워크와 드라이버는 델파이에서 완전하게 작성할 수 있습니다.

포인터 대신에 강력하게 타입 형의 데이터 액세스를 사용합니다. 예를 들어, 오히려 문자열에

대한 포인터보다 문자열 타입을 사용합니다.

드라이버 프레임워크는 단일한 소스에 코딩 되어 있습니다. 네이티브 델파이 컴파일러로

소스를 컴파일 할 수 있습니다.

프레임 워크는 드라이버, 연결, 명령, 리더 등을 위해 사용되는 추상 기본 클래스만 갖습니다.

프레임 워크는 오류 코드를 반환보다 하는 것 보다 예외 기반의 에러 처리를 사용합니다.

Page 6: 손쉬운 데이터 연결 방법(라이브바인딩 활용)

6

XE2에서 지원되는 데이터베이스 및 버전

InterBase XE, 2009, 2007, 7.5.1, 7.1*, 8.0*, 6.5* (All) (Driver dbxINT.dll, Client GDS32.DLL) Firebird 2.5, 2.1, 1.5 (Ent/Ult/Arch) (Driver dbxfb.dll, Client fbclient.dll) Sybase SQL Anywhere 12, 11, 10, 9, 8 *, (Ent/Ult/Arch) (Driver dbx ASA.dll, Client dbodbc*.dll) DB2 UDB 9.5, 9.1, 8.x*, 7.x* (Ent/Ult/Arch) (Driver dbxDB2.dll, Client db2cli.dll) Informix 9.x (Ent/Ult/Arch ) (Driver dbxINF.dll, Client isqlb09a.dll) Microsoft SQL Server 2008, 2005, 2000 (Ent/Ult/Arch) (Driver dbx MSS.dll, Client sqlncli10.dll) MySQL 5.1, 5.0.27, 4.1* (Pro/Ent/Ult/Arch) (Driver dbxMYS.dll, Client libmysql.dll) Oracle 11g, 10g, 9.2.0*, 9.1.0* (Ent/Ult/Arch) (Driver dbxora.dll, Client OCI.DLL) Sybase ASE 12.5 (Ent/Ult/Arch) (Driver dbx ASE.dll, Client libct.dll & libcs.dll)

* 드라이버는 데이터베이스의 이 버전으로 완벽히 인증되지 않습니다.

dBExpress에서 지원하는 MySQL 드라이버에 대한 참고 – 사용 가능한 MySQL 5.1.x DLL (libmysql.dll)이

필요합니다(여러분이 MySQL의 최신 버전을 사용하는 경우에도 – 추가정보(readme) 정보를

살펴보십시오!) – DLL을

“C:\Pro gram Files (x86)\Embarcadero\RAD Studio\9.0\bin” 에 놓습니다.

dbExpress 컴포넌트들

dbExpress는 SQL 데이터베이스 서버에 대한 빠른 액세스를 제공하는 경량의 데이터베이스

컴포넌트들의 집합입니다. 지원되는 각 데이터베이스에 대해, dbExpress는 균일한 dbExpress

인터페이스의 집합에 서버 별 소프트웨어를 적용하는 드라이버 프레임 워크를 제공합니다. dbExpress를

사용하는 데이터베이스 프로그램을 배포할 때 프로그램과 같이 DLL (서버 별 드라이버)을 포함해야

합니다.

dbExpress는 단 방향 데이터 셋을 사용하여 데이터베이스를 액세스 합니다. 단 방향 데이터 셋은

최소한의 오버 헤드로, 데이터베이스 정보에 빠르고 가볍게 액세스 할 수 있게 설계되었습니다. 다른

데이터 셋과 같이, 데이터베이스 서버에 SQL 명령어를 보낼 수 있고, 그 명령의 결과로 레코드들의

집합을 리턴 하고, 그 레코드들을 검색할 수 있습니다. 단 방향 데이터 셋은 다른 유형의 데이터

셋보다 적은 리소스를 사용하고 빠르고 메모리에서 데이터를 버퍼링 하지 않습니다. 그렇지만, 버퍼링

된 레코드가 없기 때문에, 단 방향 데이터 셋은 다른 데이터 셋보다 덜 유연합니다. 툴 팔레트의

dbExpress 카테고리는 데이터베이스 정보에 액세스 하기 위한 dbExpress를 사용하는 컴포넌드가

포함되어 있습니다.

다음과 같습니다

TSQLConnection - 데이터베이스 서버에 dbExpress 연결을 캡슐화합니다.

TSQLDataSet - dbExpress를 통해 제공되는 데이터를 나타내거나 dbExpress를 통해 액세스된

데이터베이스에 명령어를 보냅니다.

TSQLQuery - SQL 문을 캡슐화하고 리턴 되는 레코드가 있다면 프로그램에서 그 레코드들을

액세스 할 수 있게 해주는 쿼리-타입 데이터 셋

TSQLTable – 단일 데이터베이스 테이블의 모든 행과 열을 표시할 수 있는 테이블-타입 데이터

TSQLStoredProc – 데이터베이스 서버에 정의되어 있는 저장 프로시저를 실행하는 저장

프로시저-타입 데이터 셋

Page 7: 손쉬운 데이터 연결 방법(라이브바인딩 활용)

7

TSQLMonitor - SQL 연결 컴포넌트와 데이터베이스 서버 사이에 넘어가는 메시지들을 가로채서

문자열 리스트에 저장합니다.

TSimpleDataSet – 데이터를 가져오고 업데이트를 적용하기 위한 내부적으로 TSQLDataSet 와

TDataSetProvider을 사용하는 클라이언트 데이터 셋

Dbxdrivers.ini

dbxdrivers.ini 파일은 dbExpress에서 사용되는 데이터베이스 드라이버 정보를 포함합니다. 파일은

C:\Users\Public\Documents\RAD Studio\dbExpress\9.0 에 있습니다.

다음은 InterBase dbExpress 드라이버용 dbxdrivers.ini 파일 엔트리의 샘플입니다. 추가적인 데이터베이스

연결 정보는 dbxconnections.ini 파일에 제공됩니다. 또한 코드에서 dbExpress 컴포넌트 속성과 매개

변수를 설정할 수 있습니다.

[Interbase] DriverUnit=Data.DBXInterBase DriverPackageLoader=TDBXDynalinkDriverLoader,DbxCommonDrive r160.bpl DriverAssemblyLoader=Borland.Data.TDBXDynalinkDriverLoader, Borland.Data.DbxCommonDriver,Version=16.0.0.0,Culture=neutr al,PublicKeyToken=91d62ebb5b0d1b1b MetaDataPackageLoader=TDBXInterbaseMetaDataCommandFactory,D bxInterBaseDriver160.bpl MetaDataAssemblyLoader=Borland.Data.TDBXInterbaseMetaDataCo mmandFactory,Borland.Data.DbxInterBaseDriver,Version=16.0.0 .0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b GetDriverFunc=getSQLDriverINTERBASE LibraryName=dbxint.dll LibraryNameOsx=libsqlib.dylib VendorLib=GDS32.DLL VendorLibWin64=ibclient64.dll VendorLibOsx=libgds.dylib BlobSize=-1 CommitRetain=False Database=database.gdb ErrorResourceFile= LocaleCode=0000 Password= RoleName=RoleName ServerCharSet= SQLDialect=3 IsolationLevel=ReadCommitted User_Name= WaitOnLocks=True Trim Char=False

Page 8: 손쉬운 데이터 연결 방법(라이브바인딩 활용)

8

Dbxconnections.ini

dbxconnections.ini 파일은 데이터베이스 연결 정보를 포함합니다. 이 파일은

C:\Users\Public\Documents\RAD Studio\dbExpress\9.0 폴더에 있습니다. TSQLConnection dbExpress 컴포넌트를

사용할 때, 오브젝트 인스펙터에서 ConnectionName 속성을 설정하기 위해 ( [] 아래의 텍스트) 연결

문자열 이름을 선택합니다

[CUSTOMERS] drivername=INTERBASE librarynameosx=libsqlib.dylib vendorlibwin64=ibclient64.dll vendorlibosx=libgds.dylib blobsize=-1 commitretain=False Database=C:\Embarcadero\InterBase\examples\database\employe e.gdb localecode=0000 password= rolename=RoleName sqldialect=3 isolationlevel=ReadCommitted user_name= waitonlocks=True trim char=False

데이터베이스 탐색기

데이터베이스 탐색기는 dbExpress 데이터베이스 드라이버 및 연결된 데이터베이스에서 찾을 테이블

메타 데이터 및 기타 메타 데이터를 포함연하는 연결 정보를 생성하고 탐색하는 데 도움을 주는

IDE뷰입니다.

Page 9: 손쉬운 데이터 연결 방법(라이브바인딩 활용)

9

InterBase Express (IBX)

InterBase Express (IBX)는 인터베이스 데이터베이스에서 데이터를 액세스하는 방법을 제공하는 데이터

액세스 컴포넌트의 집합입니다. 인터베이스 관리 컴포넌트들은 인터베이스가 필요 하며, 인터베이스

데이터 액세스 컴포넌트 뒤에 설명됩니다.

IBDatabase

데이터베이스에 대한 연결을 설정하는 데 IBDatabase.TIBDatabase 컴포넌트를 사용하는데 이 컴포넌트는

하나 이상의 동시 트랜잭션을 할 수 있습니다. BDE와 달리, IBX는 트랜잭션과 데이터베이스 연결을

별도로 불리 할 수 있는 별도의 트랜잭션 컴포넌트 가지고 있습니다.

팁: 로그인한 후 LoginPrompt 속성을 False로 설정하여 IBDatabase 컴포넌트의 Params 속성에 사용자

이름과 암호를 저장할 수 있습니다. 예를 들어, 시스템 관리자로 로그인 한 후 LoginPrompt 속성을

False로 하고 Params 속성을 편집할 때 다음과 같은 것을 볼 수 있을 것입니다:

user_name=sysdba password=masterkey

IBTransaction

IBX는 별도의 IBDatabase.TIBTransaction 컴포넌트로 트랜잭션을 제어합니다. 이 강력한 기능은

트랜잭션과 데이터베이스 연결을 분리하도록 하여 인터베이스의 2 단계 커미트 기능(여러 연결에

걸치는 트랜잭션)과 동일한 연결을 사용하여 복수 개의 동시 트랜잭션을 이용할 수 있습니다.

하나 이상의 데이터베이스 연결을 포함 하는 트랜잭션 상황을 처리하기 위해 IBTransaction 컴포넌트를

사용합니다. 대부분의 경우, 간단하게 하나의 데이터베이스 / 하나의 트랜잭션 모델이면 충분합니다.

IBX 데이터셋 컴포넌트들

각각 자신의 특성 및 작업 적합성을 갖는 IBX에서 선택할 수 있는 다양한 데이터셋 컴포넌트가

있습니다:

IBTable - IBTable.TIBTable 컴포넌트를 사용하여 어떠한 SQL 문도 입력하지 않고 테이블이나

뷰에서 실 데이터 셋을 구성할 수 있습니다.

IBQuery - IBQuery. TIBQuery 컴포넌트를 사용하여 모든 InterBase DSQL 문을 실행하고, 특정 열

및 행만 결과 집합으로 제한하고, 집계 함수를 사용하고 여러 테이블을 조인합니다. IBQuery

컴포넌트는 읽기-전용 데이터셋을 제공하며, InterBase 클라이언트/서버 환경에 잘 적응합니다.

IBDataSet - IBCustomDataSet.TIBDataSet 컴포넌트를 사용하여 모든 InterBase DSQL 문을 실행하고,

특정 열 및 행만 결과 집합으로 제한하고, 집계 함수를 사용하고 여러 테이블을 조인합니다.

IBDataSet 컴퍼넌트는, IBUpdateSQL 컴포넌트 필요 없이 실 데이터 셋을 지원한다는 것을

제외하고는 IBQuery 컴포넌트와 유사합니다.

IBStoredProc - InterBase 실행 가능한 프로시저를 위한 IBStoredProc.TIBStoredProc를 사용합니다:

프로시저는 대부분 한 개의 행 정보를 리턴 합니다. 하나 이상의 데이터의 행을 리턴 하는

Page 10: 손쉬운 데이터 연결 방법(라이브바인딩 활용)

10

저장 프로시저 또는 "Select" 하는 프로시저들은 IBQuery 또는 IBDataSet 컴포넌트를

사용합니다.

IBSQL – 가볍고 신속할 필요가 있는 데이터 동작을 위해 IBSQL.TIBSQL 컴포넌트를 사용합니다.

데이터 정의와 하나의 데이터베이스에서 다른 데이터베이스로 데이터를 옮기는 작업등이

IBSQL 컴포넌트에 적합합니다.

IBUpdateSQL - IBUpdateSQL.TIBUpdateSQL 컴포넌트를 사용하여 읽기 전용 데이터 셋을

업데이트합니다.

IBSQLMonitor - IBSQLMonitor.TIBSQLMonitor 컴포넌트를 사용하여 인터베이스 서버와

애플리케이션 사이의 통신을 모니터링 하기 위한 진단 도구를 개발합니다. IBDatabase

컴포넌트의 TraceFlags 속성이 켜져 있을 때, TIBSQL Monitor 컴포넌트가 활성화되어 연결의

활동을 추적하고 파일 또는 컨트롤로 출력을 보낼 수 있습니다. 좋은 예는 TIBSQLMonitor

컴포넌트와 메모 컨트롤이 있는 별도의 프로그램을 작성하는 것입니다. 이 보조 프로그램을

실행하고 기본 애플리케이션에서, IBDatabase 컴포넌트의 TraceFlags을 활성화합니다. 기본

프로그램과 상호 작용하고 두 번째 프로그램에서 메모 컨트롤에 데이터가 채워지는 것을 볼

수 있습니다.

IBDat abaseInfo - IBDatabaseInfo.TIBDatabaseInfo 컴포넌트를 사용하여 스윕 간격, ODS 버전 및

현재 이 데이터베이스에 연결되어 있는 사용자 이름등과 같은 특정 데이터베이스에 대한

정보를 검색합니다

IBEvents - IBEvents 컴포넌트를 사용하여 관심 있고, 비동기적으로 처리하는 인터베이스 서버에

의해 포스트 된 이벤트를 등록합니다.

Page 11: 손쉬운 데이터 연결 방법(라이브바인딩 활용)

11

라이브바인딩

라이브바인딩은 RAD Studio VCL과 파이어몽키 모두에서 지원되는 데이터 바인딩 기능입니다.

라이브바인딩 표현식 기반으로 자신의 속성에 의해, 서로의 오브젝트를 바인딩 하기 위해 표현식을

사용한다는 것을 의미합니다.

라이브바인딩 개요

라이브바인딩은 RAD Studio VCL과 파이어몽키 모두에서 지원하는 데이터 바인딩 기능입니다.

라이브바인딩은 단방향 또는 양방향 중 하나가 될 수 있는 바인딩 표현(expression)이라 불리는 관계형

표현을 기반으로 합니다. 라이브바인딩은 또한 컨트롤 오브젝트와 소스 오브젝트에 대한 것이

있습니다. 바인딩 표현에 의하여, 어떤 소스 오브젝트는 자체에 바인딩 하거나(소스 및 컨트롤

오브젝트가 됩니다), 또는 하나 이상의 서로 바인딩 하기 원하는 오브젝트의 속성을 포함하여 단순히

바인딩 식을 정의하여 다른 컨트롤 오브젝트에 바인딩 될 수 있습니다. 예를 들어, TEdit 컨트롤을

TLabel에 바인딩 할 수 있습니다. 에디터 박스의 텍스트를 변경하면, 레이블의 캡션을 자동으로 바인딩

식에 의해 평가 값으로 조정됩니다. 또 다른 예제는 트랙 컨트롤을 진행 바에 바인딩 하여 트랙 바를

이동할 때마다 진행 바가 올라 가거나 내려가도록 합니다.

같은 방식으로, 데이터베이스에 연결 할 수 있고, 다른 오브젝트들의 하나 이상의 속성을 수정합니다.

라이브바인딩 전파 때문에, 심지어 컨트롤 오브젝트에 바인딩 되는 다른 오브젝트에 연결되어있는

개체의 속성을 변경할 수 있습니다.

Page 12: 손쉬운 데이터 연결 방법(라이브바인딩 활용)

12

라이브바인딩 사용

오브젝트 인스펙터와 라이브바인딩에서 사용하는 시각적 컴포넌트에 의해 파이어몽키

애플리케이션에서 라이브바인딩을 사용할 수 있습니다.

라이브바인딩은 관리 될 수도 있고 또는 관리되지 않을 수도 있습니다. 표현식에 있는 개체나 속성이

수정 되는 경우 관리된 바인딩은 자동으로 평가됩니다. 예를 들어, 만일 입력식이 Edit1이라 불리는

에디터 박스 컴포넌트의 Text 속성을 참조한다면, 표현 엔진이 Edit1에 변경 사항이 통지 될 때

바인딩이 평가 될 것입니다. TBindingList.Notify 는 표현 엔진에 알려주기 위해 호출됩니다. Notify()의 첫

번째 매개변수는 오브젝트(이 경우는 Edit1)이고 두 번째 매개변수는 영향을 받는 속성입니다. 평가될

오브젝트를 참조하는 모든 바인딩을 수행하기 위해 속성 매개변수는 빈 값으로 줄 수도 있습니다.

RAD Studio는 모든 개체나 속성 변경의 표현식 엔진을 알려주는 알림 시스템을 가지고 있지 않습니다.

예제 프로그램에서, 이벤트 핸들러에서 Notify가 호출됩니다. 통상적으로, 이벤트 핸들러의 Sender

매개변수는 BindingsList1.Notify(Sender, '')를 호출하기 위해 사용됩니다. 이와 같은 방법으로, 하나의

이벤트 핸들러를 여러 개의 컨트롤에 알려주는 처리를 위해 사용할 수 있습니다.

SynchControlsSampleProject 예제 애플리케이션은(아래 테이블에 리스트 되어있습니다) 알림이 구현하는

방법을 예시합니다.

TBindExpression와 TBindExprItems는 바인딩 관리를 지원하는 컴포넌트들입니다. 두 컴포넌트는 알림에

영향을 미치는 또 다른 속성을 가집니다. NotifyOutputs 속성이 True이면, 표현 엔진은 자동으로

바인딩이 평가 될 때 수정된 출력 개체 나 속성에 알림 메시지를 보냅니다.

다른 바인딩 컴포넌트 중 어느 것도 관리 바인딩을 사용하지 않습니다. 항상 필요한 시점에 평가되는

관리되지 않는 바인딩을 사용합니다.

TBindLink, TBindListLink, 및 TBindGridLink 컴포넌트들과 밀접하게 관련된 파이어몽키의 TBindDB*Link

컴포넌트들은 TDataSet 필드와 같은 데이터를 TEdit와 같은 컨트롤에 바인더 합니다. 컨트롤과

데이터를 동기화하여 유지하기 위한 표현 엔진 종속성 그래프에 의존하기보다는 이러한 컴포넌트는

컨트롤 및 데이터 소스의 알림(새 TObserver API를 사용하여)을 듣습니다.

관리되지 않는 바인딩을 사용하는 두 개의 다른 컴포넌트가 있습니다. TBindList 및 TBindGridList는

리스트 또는 그리드를 생성하는데 사용됩니다. 같은 컨트롤에 두 개의 바인딩 컴포넌트을 같이

사용하는 것이 가능합니다. 예를 들어, TDataSet 필드를 편집할 수 있는 TListBox를 채우기 위해 TBindList

와 TBindDBList 컴포넌트는 같이 사용됩니다.

Page 13: 손쉬운 데이터 연결 방법(라이브바인딩 활용)

13

라이브바인딩 시각 컴포넌트들

라이브바인딩 엔진은 런타임 기능이지만, 다수의 시각적 컴포넌트들은 디자인 타임에 컴포넌트 사이에

라이브 바인딩을 생성할 수 있도록, 컴포넌트 팔레트에 존재합니다.

라이브바인딩 탭에서 컴포넌트 팔레트를 보면, 폼에 (VCL 또는 FMX 중) 드래그&드롭 할 수 있는

다음과 같은 컴포넌트가 있습니다:

바인딩 리스트 보유를 위한 TBindingsList

컴포넌트에 바인딩 하기 위한 TBindScope

데이터베이스에 바인딩 하기 위한 TBindScopeDB

컴포넌트들 사이의 라이브 바인딩을 생성하기 위해 오브젝트 인스펙터를 사용할 때, 적절한 라이브

바인딩 컴포넌트는(TBindingsList) 폼 위에 자동으로 배치됩니다. 이 컴포넌트는 애플리케이션에서 사용

가능한 모든 바인딩의 목록을 가지고 있습니다.

C++빌더를 사용하여 라이브 바인딩을 사용하는 콘솔 애플리케이션을 작성할 때, 프로젝트에 있는

클래스에 대한 정보를 RTTI에 작성하기 위해 명시적으로 C + + 컴파일러 지시합니다. 이 작업을

수행하려면 사용 라이브 바인딩 사용 프로그래밍 자습서에서 보여진 것과 같이, 프로젝트의 시작

부분에서의 # pragma explicit_rtti 메소드() 지시어를 추가합니다. # pragma explicit_rtti 메소드() 지시어에

대한 자세한 정보는 RTTI 도움말 항목을 참조하십시오.

바인딩리스트(BindingsLists)

바인딩리스트는 바인딩의 모음입니다. 애플리케이션 안에서 생성된 각 라이브 바인딩은

바인딩리스트에서 발견됩니다.

오브젝트 인스펙터를 사용하여 새로운 라이브 바인딩을 생성 할 때마다, TBindingsList 컴포넌트는

폼(VCL 폼 또는 FMX 폼)에 자동으로 배치됩니다. TBindingsList 컴포넌트는 오브젝트 인스펙터에 다섯

개의(publishes) 속성을 제공합니다:

Methods – 사용 가능한 메소드들의 컬렉션을 지정합니다.

Name - TBindingsList 컴포넌트의 이름을 지정합니다.

OutputConverters - 사용 가능한 출력 변환기의 컬렉션을 지정합니다.

Tag - 포인터, 오브젝트에 대한 참조, 숫자 및 기타 등등을 위한 4 바이트 저장 장소를

지정합니다. 이 속성은 라이브바인딩과 연관이 없습니다. 그것은 역시 다른 컴포넌트에서

찾을 수 있습니다.

UseAppManager - 바인딩은 프로그램 관리자를 사용할 것인지 사용하지 않을지 여부를

지정합니다. 다시 말해, UseAppManager는 바인딩이 관리될지 아닐지를 지정합니다.

컴포넌트를 더블 클릭하여 실제 바인딩(바인딩 표현식이나 속성 바인딩 중)에 대한 액세스 권한을

얻을 수 있고 자신의 바인딩 관련 바인딩 표현식의 목록에 추가합니다. 다음 그림은 바인딩 목록

Page 14: 손쉬운 데이터 연결 방법(라이브바인딩 활용)

14

편집기처럼 보이는 방법을 보여줍니다.

바인딩리스트 에디터에서는 다음 작업을 할 수 있습니다:

프로그램에서 바인딩 표현식을 볼 수 있습니다.

프로그램에서 속성 바인딩을 볼 수 있습니다.

새로운 바인딩을 생성할 수 있습니다.

기존의 바인딩을 삭제할 수 있습니다.

바인딩 리스트에서 바인딩을 위 또는 아래로 이동할 수 있습니다.

이 예제에서, 바인딩의 숫자가 목록에 표시되는 것을 볼 수 있습니다. 나열된 바인딩의 매개 변수를

보려면 그 중 하나를 더블 클릭하면 바인딩 에디터가 화면에 나타납니다.

시각적으로 바인딩 표현식의 매개 변수를 편집하기 위해 대화 상자를 사용합니다.

라이브바인딩 대화 상자

애플리케이션에서 새로운 라이브 바인딩을 생성하려고 할 때 “New LiveBinding” 대화 상자가

나타납니다. 새로운 라이브 바인딩 대화상자에서, 새로운 라이브바인딩의 바인딩 클래스를 선택하라는

메시지가 나타납니다. 유용한 바인딩 클래스들은 다음과 같습니다:

바인딩 표현식:

o TBindExpression는 새로운 바인딩 표현식을 생성합니다.

o TBindExprItems는 다양한 컨트롤의 동기화 하기 위해 사용됩니다.

링크:

o TBindLink 는 데이터 셋의 그리드의 칼럼들에 바인딩을 생성하기 위해 사용됩니다.

일반적으로, TBindLink는 연결 작업에 사용됩니다 예를 들어 다양한 목록에 데이터 셋의

Page 15: 손쉬운 데이터 연결 방법(라이브바인딩 활용)

15

필드를 연결합니다.

o TBindListLink는 TBindLink와 유사합니다; 리스트에 컨트롤을 바인드 하기 위해 사용합니다.

o TBindGridLink는 TBindLink와 유사합니다; 그리드에 컨트롤을 바인드 하기 위해 사용합니다.

o TBindPosition 는 위치-관련 컴포넌트(트랙 바와 같은)에 대한 새로운 라이브 바인딩을

생성합니다.

리스트:

o TBindLink 는 바인딩 컴포넌트들을 리스스에 바인딩 할 때 사용됩니다. 바인딩 표현식에

의해 반환 된 여러 데이터를 사용하여 리스트들을 채울 수 있습니다.

o TBindGridList 는 TBindList와 유사하지만 그리드에서 작업하지 않습니다.

선택을 확인하려면 OK를 클릭합니다. 이 시점에서, 폼에 나타나는 바인딩 리스트뿐만 아니라 오브젝트

인스펙터에 새 라이브바인딩이 나타납니다.

Page 16: 손쉬운 데이터 연결 방법(라이브바인딩 활용)

16

바인딩 표현식 에디터

“Binding Expression Editor”는 바인딩 리스트에서 쉽게 바인딩 표현식을 더블 클릭하면 사용할 수

있습니다. 바인딩 표현식 편집기 대화상자는 아래 그림과 같습니다.

바인딩 표현식 편집기는 다음 작업들을 가능하게 합니다:

새로운 바인딩 표현식을 추가할 수 있습니다.

기존의 바인딩 표현식을 삭제 할 수 있습니다.

바인딩 표현식을 리스트에서 위 또는 아래로 이동 할 수 있습니다.

기존의 바인딩 표현식을 볼 수 있습니다.

컨트롤 컴포넌트의 컨트롤 표현식을 편집할 수 있습니다.

소스 컴포넌트의 소스 표현식을 편집 할 수 있습니다.

컨트롤 표현식을 평가 할 수 있습니다.

소스 표현식을 평가 할 수 있습니다.

표현식을 컨트롤에 할당하거나 소스 컴포넌트에 할당 할 수 있습니다.

Page 17: 손쉬운 데이터 연결 방법(라이브바인딩 활용)

17

새로운 DB Link 대화 상자

데이터베이스의 필드에 라이브 바인딩을 생성하려고 할 때 “New DB Link” 대화상자는 표시됩니다.

오브젝트 인스펙터에서, 라이브 바인딩에서 value 필드에서 를 더블 클릭하고 Link to DB Field를

선택 합니다.

“New DB Link” 대화 상자는 데이터베이스로부터 사용 가능한 필드 목록을 보여줍니다. 예제에서

레이블을 “Category”라 불리는 데이터 셋 칼럼에 바인드할 수 있습니다 그래서 데이터 셋을 통해 이동

할 때 마다, 레이블의 캡션을 변경합니다.

선택을 확인하기 위해, OK를 클릭합니다.

라이브바인딩 메소드 대화상자

바인딩 리스트 컴포넌트를 선택하고 오브젝트 인스펙터의 Methods 속성을 두 번 클릭하면 메소드

대화 상자를 사용 할 수 있습니다.

메소드 대화 상자는 특정 바인딩 목록에서 바인딩 표현식에 사용 가능한 메소드의 모음이 포함되어

있습니다. 이 메소드들은, 선택하면 바인딩 리스트에 포함 된 바인딩 식에서 사용할 수 있습니다. 예를

들어, 에디트 박스가 있고 모두 소문자인 Text 속성을 사용하려면 이 경우에, 소스 바인딩 표현식는

다음과 같습니다: LowerCase(Text).

Page 18: 손쉬운 데이터 연결 방법(라이브바인딩 활용)

18

다음의 아이템들은 메소드 대화 상자에서 유용합니다.

Methods List: 메소드 이름 - vailable 메소드의 고유한 이름 리스트.

Methods List: 유니트 이름 – 특정 메소드가 구현 되어 있는 유니트를 표시합니다. 유니트

이름이 보이지 않으면 메소드는 내부적으로 라이브 바인딩 엔진에 구현되어 있습니다.

Methods List: 프레임워크 – 메소드를 위한 프레임워크를 표시합니다.

Select/Unselect All check box – 한번에 모든 사용 가능한 메소드들의 선택/비 선택을 허용합니다.

사용 가능한 메소드의 선택을 확인하기 위해 OK를 클릭합니다.

라이브바인딩 출력 변환기 대화 상자

출력 변환기 대화상자는 “바인딩 리스트” 컴포넌트를 선택하고 오브젝트 인스펙터에서 Output

Converters 속성을 더블 클릭하면 사용 가능합니다.

출력변환기대화 상자는 특정 바인딩 목록에서 바인딩 표현식에 사용 가능한 출력 변환의 모음이

포함되어 있습니다. 이 출력 변환기는, 선택하면 특정 바인딩 리스트에 포함 된 바인딩 식에서 사용할

수 있습니다.

이러한 출력 변환기는 다른 데이터 유형 간의 변환을 하는 경우에 유용합니다. Value 속성에 영향을

미치는 바인딩 표현식의 출력에 destination 속성의 데이터 유형과 일치 할 필요가 있을 때, 이

변환기가 선택되었다면 자동으로 호출됩니다. 예를 들어 레이블의 캡션에 바인딩 되는 스핀 에디터

Page 19: 손쉬운 데이터 연결 방법(라이브바인딩 활용)

19

컨트롤이 있다면, 바인딩 식의 수치 출력을 요구되는 텍스트(문자열) 데이터 형식으로 변환하기 위해,

IntegerToString 출력 변환기는 라이브바인딩 엔진에 의해 내부적으로 자동으로 호출됩니다

다음의 아이템은 “출력 변환기” 대화 상자에서 유용합니다:

Converters List: 변환기 ID – 사용 가능한 출력 변환기의 고유한 이름을(ID) 리스트합니다.

Converters List: 유니트 이름 – 특정 출력 변환기가 구현되어 있는 유니트를 표시합니다.

유니트 이름이 보이지 않으면 메소드는 내부적으로 라이브 바인딩 엔진에 구현되어 있습니다.

Converters List: 프레임워크 – 출력 변환기를 위한 프레임워크를 표시합니다.

Select/Unselect All check box - 한번에 모든 사용 가능한 출력 변환기를 선택/비 선택을

허용합니다.

출력 변환기의 선택을 확인하려면, OK를 클릭합니다.

라이브바인딩 칼럼

칼럼 에디터 대화 상자를 사용하면 관련 스트링그리드의 열을 편집 할 수 있습니다.

칼럼 에디터 대화 상자를 여는 방법은 두 가지가 있습니다:

모든 바인딩을 보기 위해 바인딩 리스트 컴포넌트를 더블클릭 하면, 스트링 그리드과 관련된

Page 20: 손쉬운 데이터 연결 방법(라이브바인딩 활용)

20

TBindDBGridLink를 찾습니다. TBindDBGridLink를 선택하고 “칼럼 에디터” 대화상자를 표시하기

위해 Columns 속성을 사용합니다.

스트링 그리드 컴포넌트를 선택하고 오브젝트 인스펙터에서, 생성된 라이브바인딩으로 가서

Columns 속성을 선택합니다. 대화상자를 보기 위해 더블 클릭합니다.

칼럼 에디터는 추가, 삭제, 기본값으로 복구, 또는 스트링그리드의 칼럼으로 모든 필드 추가 등을

가능하게 해줍니다.

Add – 리스트에 새로운 칼럼을 추가합니다.

Delete – 리스트에서 기존의 칼럼을 삭제합니다.

Add All Fields – 데이터소스에 의해 보고된 모든 필드들을 추가합니다. 이 버튼을 클릭하면

먼저 기존의 칼럼을 삭제할지 여부를 묻는 메시지가 나타납니다.

Restore Defaults – 자신의 기본값으로 모든 칼럼을 교체합니다.

라이브바인딩 생성

라이브바인딩을 만드는 가장 쉬운 방법은 오브젝트 인스펙터를 사용하는 것입니다. 이러한

라이브바인딩을 만들려면 다음 단계를 사용합니다.

컨트롤 오브젝트가 되길 원하는 오브젝트를 찾습니다, 예를 들어 파이어몽키의 TEditbox.

소스 오브젝트가 되길 원하는 오브젝트를 찾습니다, 예를 들어 파이어몽키의 TSpinBox.

원하는 라이브바인딩 기능을 확인하고 이에 따라 바인딩 식을 만듭니다.

예를 들어, TSpinBox에서 값을 구해, 문자열로 변환해서 에디터 박스에 값을 넣습니다.

컨트롤 오브젝트를 클릭하여 선택합니다.

오브젝트 인스펙터에서, LiveBindings 속성을 찾아서 선택하여 TBindExpression 타입의 새로운

라이브바인딩을 추가합니다.

이제 소스 오브젝트의 새로 만든 라이브바인딩 및 유형의 속성 목록을 살펴봅니다. 이

시점에서, 컨트롤 표현식과 소스 표현식을 지정합니다. 예를 들어, 컨트롤 표현식은 텍스트가

Page 21: 손쉬운 데이터 연결 방법(라이브바인딩 활용)

21

될 수 있으며 정수 값을 문자열로 변환해야 한다면 소스 표현식은 ToStr(값)이 됩니다.

소스 오브젝트를 선택하고 오브젝트 인스펙터에서, 이벤트 이벤트 탭으로 갑니다. OnChange

이벤트에서 스핀 에디터 값의 변경 이슈를 라이브바인딩 엔진에 명령을 통보합니다:

TBindings.Notify(SpinEdit1, 'Value');.

라이브바인딩을 사용하여 코딩 없이 파이어몽키 HD 애플리케이션 작

성 라이브바인딩은 데이터베이스 애플리케이션을 개발하는 데 도움이 되는 XE2 버전에 도입 된 데이터

바인딩 기술입니다. 이 책에서 라이브바인딩을 사용하여 작지만 강력한 데이터베이스 애플리케이션을

작성하는 방법을 보여드립니다. 몇 가지 간단한 마우스 클릭과 함께 거의 모든 작업을 수행 할 수

있습니다, 어떤 코딩도 필요하지 않습니다

이 책에서는 일반적으로 Start |Programs | Embarcadero RAD Studio | Samples의 샘플 디렉터리에 설치되어

있는 “biolife.cds” 데이터베이스를 사용합니다. 비슷한 데이터베이스(DBDEMOS)를 사용하는 예제는

FishFact에 위치해 있습니다. (델파이)예제라고 할 수 있습니다.

라이브바인딩을 사용하여 데이터베이스 애플리케이션을 작성하려면 다음 단계를 따라 하십시오:

1) File > New > FireMonkey HD Application – C ++Builder 또는 File >New > FireMonkey HD Application – Delphi

를 선택하여 새로운 프로젝트를 생성합니다.

2) 폼의 Caption 속성을 “DataBinding”로 지정합니다.

3) 폼 디자이너에서 DataSource 컴포넌트와 ClientDataSet 컴포넌트를 드래그&드롭합니다.

4) 오브젝트 인스펙터에서, DataSource.DataSet 속성을 사용하여 DataSource 컴포넌트를 ClientDataSet에

연결합니다.

5) 폼에 다음과 같은 컨트롤들을 추가합니다: 레이블, 에디터 박스, 메모, 및 이미지 컨트롤 컴포넌트.

선택한 데이터 셋의 레코드들의 위치를 이동하기 위해 BindNavigator 컨트롤을 추가합니다. 선택적으로

닫기 버튼을 추가할 수도 있습니다.

애플리케이션은 아래 화면과 같이 표시됩니다.

Page 22: 손쉬운 데이터 연결 방법(라이브바인딩 활용)

22

6) 라이브바인딩을 사용하기 전에, ClientDataSet 컴포넌트의 데이터베이스 파일을 지정해야 합니다.

FileName 속성을 사용하여 ClientDataSet (*.cds) 파일을 지정하고 biolife.cds 파일을 선택합니다.

7) Active 속성을 True로 설정합니다.

8) 이제 데이터베이스에 해당 필드를 폼 위에 있는 각 그래픽 컨트롤에 간단하게 바인딩 할 수

있습니다.

A. 레이블 컴포넌트를 선택하고 오브젝트 인스펙터에서 LiveBindings 속성을 찾습니다.

값 필드에서 화살표-아래 버튼을 클릭하고 Link to DB Field를 선택합니다.

B. New DB Link 대화상자에서, Category를 선택합니다.

C. 에디터 박스 컴포넌트를 선택하고 리스트에서 Category 항목에 연결합니다.

D. 메모 컴포넌트를 Notes 항목에 연결합니다.

E. 이미지 컨트롤 컴포넌트를 Graphic 항목에 연결합니다

F. 마지막으로, BindScope 속성을BindScopeDB1로 지정하여, bind navigator를 binding scope에 연결합니다.

두 가지 새로운 컴포넌트, BindScopeDB1 및 BindingsList1가 폼에 추가 된 것을 보실 수 있습니다.

이러한 컴포넌트는 시각적이지 않으며 라이브바인딩 엔진의 일부입니다. (수동으로 BindingsList1

컴포넌트에서 바인딩을 변경하려면, 더블 클릭합니다. 하지만 수동으로 변경하는 것이 이 책의 목적이

아닙니다.)

Page 23: 손쉬운 데이터 연결 방법(라이브바인딩 활용)

23

이제 애플리케이션은 다음 그림과 같이 표시됩니다:

프로그램을 실행합니다( Run > Run를 선택하거나 F9를 누릅니다).

애플리케이션을 실행한 후, 데이터베이스 레코드들의 포인터를 옮길 수 있으며 데이터베이스에 레코드

추가, 삭제, 업데이트 할 수 있습니다.

Page 24: 손쉬운 데이터 연결 방법(라이브바인딩 활용)

24

InterBase Express (IBX) 사용하여 코딩 애플리케이션 작성

엠바카데로 DocWiki를 참조하십시오.

http://docwiki.embarcadero.com/RADStudio/en/Tutorial:_Using_InterBase_Express_to_Create_an_Application_Wit

hout_Code. 참고: 이 섹션은 VCL 애플리케이션에 대한 내용입니다. 파이어몽키 HD 애플리케이션으로

빠른 시일 내에 게시물을 업데이트 하겠습니다.

윈도우 및 맥 용 파이어몽키 애플리케이션 MySQL OSCommerce 데이터베이스에 연결

MySQL용으로 공개적으로 사용할 수 있는 샘플 데이터베이스 중 하나는 OSCommerce

데이터베이스입니다. OSCommerce의 국가 테이블을 표시하기 위해, dbExpress, 데이터 액세스 컴포넌트와

라이브바인딩을 사용하는 윈도우 및 맥 애플리케이션을 작성하기 위해, 다음과 같은 단계를

수행합니다:

1) MySQL 서버와 OSCommerce 데이터베이스를 설치하고 구성합니다.

a) MySQL 5.1 이상을 설치합니다(http://dev.mysql.com/doc/refman/5.1/en/windows - installation.html 과

http://dev.mysql.com/doc/refman/5.0/en/macosx-installation.html).

b) OSCommerce MySQL 데이터베이스를 설치합니다

(http://www.siteground.com/tutorials/oscommerce/oscommerce_manual_installation.htm)

c) IDE 에서 데이터 탐색기를 사용하여 MySQL에 새로운 커넥션을 만듭니다:

d) MYSQL 노드에서 오른쪽 마우스를 클릭하여 “Add New Connection”를 선택합니다. 대화상자에서,

커넥션 이름을 OSCOMMERCE 로 줍니다.

e) 방금 추가한 OSCOMMERCE 커넥션 이름에서 오른쪽 마우스 클릭하여 팝업 메뉴에서 “Modify

Connection” 를 선택합니다.

f) MySQL 서버가 설치 된 컴퓨터의 IP 주소나 이름을 서버 이름에 지정합니다.

g) 데이터베이스 이름에 “oscommerce”로 지정합니다.

h) 데이터베이스에 대한 사용자 이름과 암호를 입력합니다.

i) Test Connection 버튼을 클릭하여 지정한 연결 정보가 맞는지 확인합니다.

j) 모든 작업이 진행되면 dbxconnections.ini 파일에 연결 정보를 저장하기 위해 OK 버튼을

클릭합니다.

2) File > New > FireMonkey HD Application – C ++Builder 또는 File >New > FireMonkey HD Application –

Delphi를 선택하여 새로운 프로젝트를 생성합니다.

3) 파이어몽키 폼에 dbExpress 와 데이터 액세스 컴포넌트들을 추가하고 몇 가지 속성들을 설정합니다:

a) SQLConnection – ConnectionName 속성을 OSCOMMERCE으로 지정합니다. LoginPrompt 속성을

False로 지정하고 Connected 속성을 True로 합니다.

b) SQLQuery – SQLConnection 속성을 SQLConnection1로 지정합니다. SQL 속성에 “Select * from

Countries”로 줍니다. Active 속성을 True로 지정합니다.

c) DataSetProvider – DataSet 속성을 SQLQuery1로 지정합니다.

d) ClientDataSet – ProviderName 속성을 DataSetProvider1로 주고 Active 속성을 True로 지정합니다.

Page 25: 손쉬운 데이터 연결 방법(라이브바인딩 활용)

25

e) DataSource – DataSet 속성를 ClientDataSet1로 지정합니다.

f) BindScopeDB- DataSource 속성을 DataSource1으로 지정합니다.

4) 폼에 다음과 같은 UI 컴포넌트들을 추가하고 몇 가지 속성들을 설정합니다:

a) BindNavigator - Align 속성을 “alMostTop”로 BindScope 속성을 BindScopeDB1로 지정합니다.

b) StringGrid – Align 속성을 “alClient”로 지정합니다. LiveBindings 속성 편집기에서 “Link to DB

DataSource…” 를 선택하고 BindScopeDB1 데이터소스를 선택합니다. (스트링 그리드에 Countries

테이블 엔트리들이 표시되는 것을 보실 수 있습니다).

c) 스트링 그리드에서 오른쪽 마우스 클릭하여 “Columns Editor…” 를 선택합니다. 칼럼 에디터에서

각 칼럼을 선택하고 오브젝트 인스펙터를 사용하여 더 읽기 쉽게 문자열을 포함하는 Header

속성을 편집합니다. Width 속성을 지정하여 헤더와 행을 칼럼 너비로 맞춥니다(예로:

countries_names 칼럼은 200을 사용합니다).

폼은 다음과 같이 보여집니다:

프로그램을 컴파일하고 실행합니다.

Page 26: 손쉬운 데이터 연결 방법(라이브바인딩 활용)

26

데이터베이스 애플리케이션 배포

데이터베이스를 액세스하는 애플리케이션은 호스트 컴퓨터에 프로그램의 실행 파일을 복사하는 것

이외에 특별한 설치 고려 사항들을 포함합니다. 데이터베이스 액세스가 별도의 데이터베이스 엔진에

의해 처리됩니다 그 파일들은 프로그램의 실행 파일에 링크될 수 없습니다.

데이터 파일은 사전에 생성되지 않았을 때, 애플리케이션 사용할 수 있어야 합니다. 애플리케이션을

구성하는 파일이 일반적으로 여러 대의 컴퓨터에 있기 때문에 멀티-티어 데이터베이스 애플리케이션

설치에 대한 추가 처리가 필요합니다.

여러 가지 다른 데이터베이스 기술 (dbExpress 및 InterBase Express는)이 지원되기 때문에(dbExpress와

InterBase Express) 배포 요구 사항은 각각 다릅니다. 사용하는 데이터베이스가 무엇이든 상관없이,

클라이언트 측 소프트웨어가 데이터베이스 애플리케이션을 실행하려는 시스템에 설치되어 있는지

확인해야 합니다.

dbExpress와 InterBase Express(IBX)도 또한 데이터베이스의 클라이언트 측 소프트웨어와 상호 작용하기

위해 드라이버가 필요합니다.

dbExpress 및 멀티-티어 데이터베이스 애플리케이션을 배포하는 방법에 대한 자세한 정보는 다음

주제에서 다룹니다::

dbExpress 데이터베이스 애플리케이션 배포 -

http://docwiki.embarcadero.com/RADStudio/en/Deploying_db Express_Database_Applications

3-티어 애플리케이션 개요(9장에서 다룰 것입니다) -

http://docwiki.embarcadero.com/RADStudio/en/Overview_of_a_Three -tiered_Application

TClientDataSet와 같은 클라이언트 데이터셋 또는 데이터셋 프로바이더를 사용하는 데이터베이스

애플리케이션은 midas.dcu (델파이용) 또는 midas.hpp (C ++용)를 포함해야 합니다(독립 실행 파일을 제공

할 때 정적 연결에 대한); 애플리케이션을 (실행 파일 및 필요한 DLL을 포함)패킹하는 경우, Midas.dll을

포함시킬 필요가 있습니다.

IBX를 사용하는 데이터베이스 애플리케이션을 배포 할 때, 애플리케이션을 실행하려는 위치에

인터베이스 클라이언트 모듈이 시스템에 설치되어 있는지 확인해야 합니다. 인터베이스는 gds32.dll와

interbase.msg이 접근 가능한 디렉터리에 위치해 있어야 합니다. 다른 배포 단계는 필요하지 않습니다.

IBX 컴포넌트는 인터베이스 클라이언트 API로 직접 통신하며 추가 드라이버가 필요하지 않습니다.

MS SQL 2008은 이제 완전하게 RAD 스튜디오 엔터프라이즈에서 지원됩니다. 모든 데이터 유형 매핑이

dbExpress와 MS SQL Server 2008 사이에 제대로 지원됩니다. 그러나, 이러한 데이터 유형 매핑을

사용하기 위해, 네이티브 SQL 클라이언트를 설치해야 하는데 SQLNCLI10.DLL 파일의 복사본이 있는지

확인합니다. MS SQL Server 2008 네이티브 클라이언트는 이 링크에서 다운로드 할 수 있습니다. 운영

체제가 MS SQL 2008 버전을 지원하지 않는 경우에 RAD Studio 엔터프라이즈도 또한 MS SQL Server

2005의 전체 지원을 제공합니다. 이 경우, 애플리케이션에 의해 액세스 할 수 SQLNCLI.DLL 파일의

복사본이 있어야 합니다.

파이어버드를 사용하는 데이터베이스 애플리케이션을 배포하는 경우, 애플리케이션을 실행하려는

시스템에 FBCLIENT.DLL 파일의 복사본을 가지고 있는지 확인해야 합니다. 파이어버드 클라이언트를

Page 27: 손쉬운 데이터 연결 방법(라이브바인딩 활용)

27

설치해야 합니다.

Oracle 11g를 사용하는 데이터베이스 애플리케이션을 배포하려면 애플리케이션을 실행 시스템에 오라클

인스턴트 클라이언트를 설치 합니다.

여기에 설명 된 기술 외에도 데이터베이스 액세스를 제공하기 위해 타사 데이터베이스 엔진을 사용할

수 있습니다. 재 배포 권한, 설치 및 구성에 관한 데이터베이스 엔진에 대한 설명서를 참조하거나 공급

업체에 문의하십시오.

사용 된 기술에 해당하는 라이브러리가 발견되지 않으면, 오류 메시지가 표시되고 애플리케이션이

제대로 실행되지 않을 수 있습니다.

Project > Deployment를 사용하여 dbExpress 및 MIDAS 라이브러리 기능 파일

추가

IDE 소개에서 언급한 것처럼, 파이어몽키 dbExpress 애플리케이션을 작성하고 원격의 윈도우와 맥 대상

컴퓨터에 배포하기 위해, dbExpress 드라이버 DLL/Dylib 및 MIDAS DLL/Dylib 파일들이 대상 컴퓨터에

있는지 확인해야 합니다.

이 작업을 수행하려면 Project > Deployment 메뉴 항목을 사용하여 배포 파일 창에서 “Add Feature Files”

버튼을 클릭합니다. 사용중인 데이터베이스에 대한 dbExpress 드라이버 체크박스를 체크합니다.

ClientDataSet를 사용하는 경우 MIDAS Library 체크박스를 체크합니다. OK 버튼을 클릭합니다.

이렇게 하면 필요한 파일들이 애플리케이션과 함께 배포되어서 원격 윈도우 및 맥 컴퓨터에서

dbexpress 애플리케이션을 실행하고 디버깅할 수 있습니다. dbExpress와 연결되는 데이터베이스가 있는

곳에 따라, 그 대상 컴퓨터에 데이터베이스 서버 및 데이터베이스 데이터 파일을 설치해야 합니다.

Page 28: 손쉬운 데이터 연결 방법(라이브바인딩 활용)

28

요약, 전망, 해야 할 일, 참고자료

6장에서는 RAD Studio의 새로운 라이브바인딩 기능에 대해 배웠습니다. 또한 데이터베이스에 연결하는

파이어몽키 애플리케이션을 구축하기 위해 라이브바인딩을 어떻게 사용 하는지에 대한 방법을

배웠습니다. 멀티 클라이언트, 멀티-티어, 멀티 플랫폼 윈도우 및 맥 애플리케이션을 구축하는 방법에

대한 자세한 내용은 9장 데이터베이스에서 다시 다루겠습니다.

7 장에서, 첫 번째 3D 파이어몽키 애플리케이션을 작성하는 방법을 배울 수 있습니다.

한편, 여기에 6 장에서 배운 내용을 복습하고 7장을 준비하기 위해 읽어야 할 기사와 볼 동영상이

있습니다.

해야 할 일

Jim Tierney의 CodeRage 6 라이브바인딩 동영상 (아래의 링크를 사용)를 보십시오. 라이브바인딩을

사용하여 파이어몽키 HD 애플리케이션을 만들기: TEdit 외 TTrackBar 컴포넌트를 내려 놓고 TTrackBar의

Value 속성을 라이브바인딩을 사용하여 TEdit의 Text 속성으로 연결합니다. BioLife ClientDataSet 데이터

파일을 사용하여 어떠한 코드라인 없이 파이어몽키 HD 애플리케이션을 작성하기 위해 단계를

순서대로 수행합니다.

추가 자료에 대한 링크

코스 시작하기 방문 페이지 -

http://www.embarcadero.com/firemonkey/firemonkey-e-learning-series

Jim Tierney의 라이브바인딩 CodeRage 6 동영상(Jim Tierney는 엠바카데로 테크놀로지의

엔지니어 장입니다. 델파이 3 버전 이후, 짐은 많은 델파이와 C + + 빌더 기능)을 개발할 수

있도록 도와 주었습니다:

o 라이브바인딩 소개 - 이 세션은 라이브바인딩을 소개합니다. 라이브바인딩은 VCL과

파이어몽키에 대한 새 데이터 바인딩 시스템입니다. 이 세션에서는 바인딩 엔진, 범위,

컨버터, 메소드, 바인딩 컴포넌트 및 사용자 지정 컴포넌트를 포함하여 주요 개념을

소개하고 있습니다 -http://cc.embarcadero.com/Item/28544

o 라이브바인딩: 실습 예제 - 본 세션은 실습에서 라이브바인딩을 사용하는 방법을

보여줍니다. 예를 들면 리스트, TDataSet 편집, 컨트롤 동기화, 사용자 정의 데이터를 사용

등이 포함된 예제. VCL 및 파이어몽키 모두 애플리케이션이 시연됩니다-

http://cc.embarcadero.com/Item/28545

Cary Jensen가 쓴 RAD Studio XE2에서 라이브 바인딩 사용 방법 배우기: 웹 세미나 재생, 백서,

짧은 튜토리얼 비디오 - http://w ww.embarcadero.com/rad-in-action/livebindings

코드 없이 파이어몽키 데이터베이스 애플리케이션을 만들기 위한 라이브바인딩 사용 -

http://docwiki.embarcadero.com/RADStudio/en/Tutorial:_Using_LiveBinding_to_Create_an_Application_Without_Code

이 장은 “윈도우와 맥 개발의 시작을 위한 파이어몽키 코스북”의 6장 내용 전체입니다.

코스북 전체를 PDF로 다운로드 받을 수 있습니다: http://tech.devgear.co.kr/13556