C++ Builder ADO Programming (3) - ConnectionString Core

Similar documents
Windows 8에서 BioStar 1 설치하기

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

OnTuneV3_Manager_Install

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

초보자를 위한 ADO 21일 완성

Microsoft Word - src.doc

ISP and CodeVisionAVR C Compiler.hwp

JDBC 소개및설치 Database Laboratory

Chapter 1

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

슬라이드 1

Install stm32cubemx and st-link utility

server name>/arcgis/rest/services server name>/<web adaptor name>/rest/services ArcGIS 10.1 for Server System requirements - 지

untitled

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

슬라이드 1

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아

슬라이드 1

PowerPoint Template

C++Builder ADO Programming (5) - ADO Transaction, Errors

Data Sync Manager(DSM) Example Guide Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager

목차 데모 홖경 및 개요... 3 테스트 서버 설정... 4 DC (Domain Controller) 서버 설정... 4 RDSH (Remote Desktop Session Host) 서버 설정... 9 W7CLIENT (Windows 7 Client) 클라이얶트 설정

NTD36HD Manual

Microsoft PowerPoint - 10Àå.ppt

01장

6. 설치가시작되는동안 USB 드라이버가자동으로로드됩니다. USB 드라이버가성공적으로로드되면 Setup is starting( 설치가시작되는중 )... 화면이표시됩니다. 7. 화면지침에따라 Windows 7 설치를완료합니다. 방법 2: 수정된 Windows 7 ISO

PowerPoint Template

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

JDK이클립스

슬라이드 1

Microsoft Word - Armjtag_문서1.doc

BEA_WebLogic.hwp

WebPACK 및 ModelSim 사용법.hwp

4S 1차년도 평가 발표자료

Splentec V-WORM Quick Installation Guide Version: 1.0 Contact Information 올리브텍 주소 : 경기도성남시분당구구미로 11 ( 포인트타운 701호 ) URL: E-M

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상

슬라이드 제목 없음

아래 항목은 최신( ) 이미지를 모두 제대로 설치하였을 때를 가정한다

ThinkVantage Fingerprint Software

PCServerMgmt7

단계

윈도우시스템프로그래밍

ODS-FM1

서현수

Admin Guide for dummy

arcplan Enterprise 6 Charting Facelifts

Endpoint Protector - Active Directory Deployment Guide

Microsoft PowerPoint - 03_DB Migration 방법론 및 툴 사용법-인쇄.ppt

<41736D6C6F D20B9AEBCADBEE7BDC42E687770>

서비스) 와서버( 관리대상서버) 간에자격증명을사용하여서로의 ID 를확인하고서로주고받는데이터를검사하고암호화하는프로세스 이다. 높은인증수준은일반적으로성능의저하를가져올수있지만높은 수준의보안과데이터무결성을제공한다. 기본값 - 관리대상서버에설정되어있는 DCOM 인증수준기본 값을

기존에 Windchill Program 이 설치된 Home Directory 를 선택해준다. 프로그램설치후설치내역을확인해보면 Adobe Acrobat 6.0 Support 내역을확인할수 있다.

Microsoft PowerPoint - chap01-C언어개요.pptx

슬라이드 1

vRealize Automation용 VMware Remote Console - VMware

1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation

게임 기획서 표준양식 연구보고서

VPN.hwp

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

희망브리지

슬라이드 1

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

FileMaker 15 ODBC 및 JDBC 설명서

System Recovery 사용자 매뉴얼

Cloud Friendly System Architecture

Remote UI Guide

B.3 JDBC 설치 JDBC Java DataBase Connectivity 는자바에서 DBMS의종류에상관없이일관된방법으로 SQL을수행할수있도록해주는자바 API Application Program Interface 다. 이책에서는톰캣과 SQL Server 간의연결을위

슬라이드 1

작동 원리

윈도우시스템프로그래밍

DBMS & SQL Server Installation Database Laboratory

< 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10

MF5900 Series MF Driver Installation Guide

Windows Server 2012

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

A SQL Server 2012 설치 A.1 소개 Relational DataBase Management System SQL Server 2012는마이크로소프트사에서제공하는 RDBMS 다. 마이크로소프트사는스탠다드 standard 버전이상의상업용에디션과익스프레스 exp

메뉴얼41페이지-2

View Licenses and Services (customer)

gcloud storage 사용자가이드 1 / 17

Contents Test Lab 홖경... 3 Windows 2008 R2 서버를도메인멤버서버로추가... 4 기존 Windows 2003 AD 홖경에서 Windows 2008 R2 AD 홖경으로업그레이드를위한사젂작업 7 기존 Windows 2003 AD의스키마확장...

Keil Flexlm 라이선스 설명서

Network Security - Wired Sniffing 실습 ICNS Lab. Kyung Hee University

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

<4D F736F F D20BEC8C0FCC7D120B8DEC0CF20B9D720C6C4C0CF20C0FCBCDB2E646F6378>

쉽게 풀어쓴 C 프로그래밊

ArcGIS Desktop 9.2 Install Guide

PWR PWR HDD HDD USB USB Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl Cable PC PC DDNS (

목차 1. 시스템요구사항 암호및힌트설정 ( 윈도우 ) JetFlash Vault 시작하기 ( 윈도우 ) JetFlash Vault 옵션 ( 윈도우 )... 9 JetFlash Vault 설정... 9 JetFlash Vault

Mango-E-Toi Board Developer Manual

sms_SQL.hwp

RealDSP UT 프로그램 메뉴얼

소개 TeraStation 을 구입해 주셔서 감사합니다! 이 사용 설명서는 TeraStation 구성 정보를 제공합니다. 제품은 계속 업데이트되므로, 이 설명서의 이미지 및 텍스트는 사용자가 보유 중인 TeraStation 에 표시 된 이미지 및 텍스트와 약간 다를 수

untitled

³»Áö¼öÁ¤

untitled

Dialog Box 실행파일을 Web에 포함시키는 방법

Microsoft Outlook G Suite 가이드

1

Studuino소프트웨어 설치

Transcription:

C++Builder ADO Programming (3) - ConnectionString Core 이전강의에서 Connection 객체의생성과해제에대해서살펴보았다. TADOConnection Component를사용한다면간단히원하는곳에떨어뜨려인스턴스를생성하고연결을설정한뒤사용하고연결을끊을수있었다. 이점에있어선 Connection 객체의해제는신경을쓸필요가없었다. TADOConnection Class를사용하여코드를통해 Connection 객체를동적으로생성한다면연결을설정하고사용한후연결을닫은뒤 Connection 객체를명시적으로해제시켜야만했다. 두가지방법모두어려운점은없었으며간단한것을알수있었다. 자그럼이번에는이전강의에서생성한연결을설정하는방법에대해알아보자. 먼저 Connection 객체를통해어떤데이터공급자에어떻게연결할것인지를지정하기위한 ConnectionString 속성부터시작하자. ConnectionString 속성 ConnectionString 속성은 Connection 객체로어떤데이터원본에연결하는데필요한모든정보를담는다. 이전강의에서 Open 메소드를호출하여 Connection 객체를열기전엔항상이속성이미리지정되어있어야한다. 이속성에포함될수있는정보를살펴보자. OLEDB를위한데이터공급자 ( 이는 Provider 속성을통해서도접근가능하다 ) 데이터원본 ( 서버이름, SQL 서버를사용하는경우 ) 접근하고자하는기본데이터베이스 사용자이름과패스워드 ODBC 데이터원본이름 --- DSN을사용하는경우 데이터공급자에따라위의항목들을모두요구하기도하고일부만요구하기도하는데그렇다면이속성에포함되는항목들을구체적으로알아보자. 항목 설명 Provider 데이터공급자 데이터원본을위한드라이버 Data Source 데이터베이스의서버이름또는데이터원본파일이름 혹은 Server Initial Catalog 데이터베이스이름 혹은 Database User Id 혹은 UID 데이터베이스에연결하고자하는사용자의이름. Password 혹은 PWD 사용자의패스워드 File Name 공급자의연결정보를담고있는파일이름 Remote Provider RDS를사용하는경우공급자의이름 Remote Server RDS를사용하는경우서버의이름 URL 데이터원본의역할을할파일또는폴더의위치 DSN ODBC를사용할경우 Data Source Name 위의표에서 File Name과 Provider는상호배타적이라는점을주의하기바란다. Provider를통해 ConnectionString에공급자이름을포함시킨경우공급자정보를위한파일이름을지정할필요는없으며그반대도마찬가지이다. URL 항목또한그런데 Provider를통해공급자를설정한경우 URL 항목을설정할수없다. URL 항목만을지정했을경우데이터공급자가인터넷게시를위한 OLEDB 공급자 MSDAIPP.DSO로자동적으로설정된다. Remote Provider와 Remote Server는 RDS와함께사용되는것으로서버의공급자와데이터원본정보를뜻

한다. URL 항목은 ADO 2.5 버전에새로도입된것으로파일이나디렉터리에대한연결을여는데쓰인다. 파 일이나디렉터리를연후에는파일들과폴더들을관리할수가있다. 이두가지사항에대해서는이후의강 의에서살펴보도록하자. ConnectionString 속성은위의항목들의조합으로구성되며두가지방법으로설정할수있다. 첫번째는 Object Inspector를통한것으로 ConnectionString 속성창의 부분을클릭하면 ConnectionString 생성창이뜨며자신에맞는설정을차례차례입력하면 ConnectionString이자동적으로만들어진다. 두번째방법은자신이직접위의항목들을조합해코딩을통해 ConnectionString을생성하고설정하는방법이있다. 이방법은코드를통해동적으로 TADOConnection의인스턴스를생성했을때 ConnectionString을설정하는방법이며 Visual 하지않은어플리케이션을제작할때유용한방법이다. 그렇다면이두가지방법에대해자세하게알아보도록하자. 먼저첫번째방법을살펴보자. 예제로우리의레밍은다음의작업을통해서생성된 ConnectionString 설정으 로 MS SQL Server 에접속할것이다. 1. ADOConnection Component 를클릭한후 Object Inspector 의 ConnectionString 속성부분의 버튼을클 릭한다. 2. 갈림길이나왔다. 두번째항목이 Default 로지정되어있다. 첫번째 use Data Link File 은나중에알아보 도록하자. Build 버튼을클릭한다. 3. 앞의표에서설명한 Provider 항목을설정할수있는창이뜬다. 자신에게적합한 Provider 를설정하고 Next 버튼을누른다. 함살펴보면여러가지종류의 Provider 들이있는것을볼수있다. 이리스트들은로컬 머신의셋팅상태에따라다르다. 우리의레밍은 SQL Server 용 OLEDB Provider 를선택했다.

4. Provider 를선택한후 Next 버튼을누르면나머지세부항목을설정하는 Connection 탭으로전환된다. 정 보를입력하자. 예제에서는서버이름이 SIGULS, 데이터원본인 SQL Server 의사용자명이 lemming, 패스 워드는 0000 이고 MS-SQL Server 의기본예제데이터베이스인 pubs 에 SQL Server 인증으로접속한다.

이것만으로도 ConnectionString 을생성하는데필요한핵심사항들은충분하므로위의모든입력을마쳤다면 Test Connection 버튼을클릭하자. 만약연결과정보에문제가없다면다음과같은 Modal 창이뜬다. Test Connection 이성공했다면확인버튼을누르고위의데이터링크프로퍼티창을닫으면 ConnectionString 이만들어진다. 위의작업에서우리의레밍이만든 ConnectionString 을한번살펴보자. Provider=SQLOLEDB.1;Data Source=SIGULS;Password=0000;User ID=lemming; Initial Catalog=pubs;Persist Security Info=True 빨간글씨의 ConnectionString, 위의표의항목들, 연결정보를다시한번살펴보자. Provider=SQLOLEDB.1; 데이터공급자가 MS SQL Server 용 OLEDB 공급자라는것을의미한다. Data Source=SIGULS; 데이터베이스서버 ( 인스턴스 ) 네임이 SIGULS라는것을나타낸다. Server=SIGULS; 을사용해도된다. 여기서클라이언트어플리케이션과데이터베이스서버가다른머신에있는 --- 서버가지역서버가아닌 --- C/S 어플리케이션이나웹서버와데이터베이스서버가다른머신에각각분리되어있는웹어플리케이션, 그리고비즈니스 Component 층 ( 흔히말하는 MTS / COM+ 층, 일종의어플리케이션서버층 ) 과데이터베이스서버가역시다른머신에분리되어있다면 Client Network Utility로생성한 Alias명을써야한다. 일단은그렇게알아두라. 그것은또하나의주제로서 MS-SQL을개발자의눈에서다룬차후의장에서논의하도록하자. Password=0000;User ID=lemming; 뭐이것은직관적으로알수있을것이다. SQL Server의인증을받은 lemming이라는사용자 ( 로그인명 ) 가있고그것의패스워드가 0000이라는말이다. 당연히이것은 SQL Server 내의설정정보로존재해야됨을의미한다. 아래의그림은 SQL Server에설정되어있는레밍에대한로그인정보이다.

Persist Security Info=True; 이것은 SQL Server 인증을가지고위에서설명한로그인정보로데이터베이스서버에연결을얻겠다는의미이며바로위줄의로그인정보가 ConnectionString내에서사용되면자동적으로설정되는사항이며생략가능하다. 만약잠재적인데이터베이스보안의위험성을경계하거나국지적이고폐쇄적인소규모의 Windows

Network로구성되어있으며클라이언트웍스테이션으로로그인하는 LAN 상의사용자만을위한어플리케이션을작성시에는 SQL Server 인증을사용하는대신 Windows NT 통합인증을사용하기도하는데 --- 물론여기서전제되어야하는것은훌륭한도메인모델이나 Active Directory, 그룹과계정정책등이하부구조로잘구축되어있어야된다 --- 그때의 ConnectionString은이부분이다음과같이바뀐다. Integrated Security=SSPI;Persist Security Info=False; Initial Catalog=pubs; 위의사용자정보로연결을해서사용할수있는기본적인데이터베이스이름이다. 이속성은 MS SQL Server가데이터베이스위주의스키마를가진 RDBMS이기때문에설정가능한항목이며 Database=pubs; 로해도된다. 덧붙여설명하자면이속성은 Oracle을 RDBMS로사용하는경우엔설정되지도않고쓰이지도않는다. Oracle은기본적으로사용자위주의스키마를가진 RDBMS이기때문이다. Oracle을사용할때의 ConnectionString을설정하는방법에대해서는차후의강의에서살펴보도록하자. 자이것으로 ADO를통해 OLEDB를사용하는 MS SQL Server 용의 ConnectionString이다만들어졌다. 그러면이제다른방법을한번알아보자. 분명이서툰강의를그나마유심하게본사람이라면첫번째강의에서필자가그린어플리케이션과데이터저장소사이의여러증에대한그림을기억할것이다. 거기를보면맨위의같은 ADO층을거치더라도직접자체 Native OLEDB Provider를통한방법이있고 ODBC에대한 OLEDB Provider들을통한방법이있다는것을알수있었을것이다. 혹시그림이서투르고형편없어서몰랐다면이번기회에그그림이이말이었다는것을알아두자. 그리고이번강의바로앞의예제에서우리의레밍은 Native OLEDB Provider for SQL Server를사용한 ConnectionString을얻을수있었다. 알아볼다른방법이란 ODBC에대한 OLEDB Provider들을사용한 ConnectionString을얻는방법이다. 그렇다면왜연결층을한층더거치고속도도느린방법을알아보려고하는지에대한의문을가질것이다. 그러나분명히이문제는성능을떠난신뢰성의문제와밀접한관련이있다. 사실간략하게말하면 ODBC는표준에다가광범위하게지원받고있고널리사용되고있는데 OLEDB는표준이아니기때문이다. 또지나치게 MS 지향적이라항상신뢰성을기대할수있는만능이아니기때문이다. 이것은 ORACLE이나 SYBASE같은다른 RDBMS를사용할때연결의문제에서절실하게느끼게되는어려움중의하나인데아무튼이방법을알아두면나름대로해결책이하나더생기므로유용하다. 또한가지레밍이그린서툰그림에서 ADO를거치지않고직접 OLEDB를사용하여연결하는방법을볼수가있는데그것이속도도제일빠르지만생산성에대해서는의문을가질만하며분명히삽질이고이강의에서논외의문제라다루지않겠다. 자레밍을재촉해서둘러가자. 이전예제와같은설정으로 MS SQL Server에접속하자. 1. 우리의레밍은 ODBC Driver들을위한 OLEDB Provider를통해연결을얻어야하므로먼저 MS SQL Server 에접속할수있는 ODBC DSN( 데이터소스네임 ) 이있어야한다. 없으므로하나만들자. ODBC Data Source Administrator 창을띄우고 System DSN 탭을클릭하면현재이로컬머신에있는 ODBC 데이터원본들의목록을볼수있다. 하나만들기로했으니깐 Add 버튼을누르자.

2. 버튼을누르면 Create New Data Source 창이뜨면서각종드라이버들의목록이보인다. 원하는것을택 하고마침버튼을누르면되는데우리의레밍은 MS SQL Server 를택하고그작은발로마침버튼을지긋이 눌렀다. 3. SQL Server 에대한새로운데이터소스네임을설정하는부분이다. 이름과설명, 그리고서버를입력한다. 원하는이름을입력하고서버를선택한다. 앞의예제와같은설정이므로서버명은같은 SIGULS 이다.

서버 ComboBox 를선택하면현재이컴퓨터에서연결할수있는 SQL Server 의목록들이표시된다. 물론 Client Network Utility 로설정한, 외부서버에접속할수있는 Alias 목록들도표시된다. 정보를입력한후다 음버튼을누른다. 4. 다음은새로운 SQL Server 에대한 Data Source 의로그인정보와인증방법을설정하는단계이다. 아래의 그림에서설정한것과같이우리의레밍은이전의정보대로 SQL Server 인증과 lemming 사용자정보를가 지고정보를입력했다. Client Configuration 버튼을눌러 SQL Server 와통신하는데사용되는네트웍라이브러리를바꿀수있다. 한 번눌러보면아래와같은창이뜨며왼쪽에서네트웍라이브러리를바꿀수있다.

그러나일반적으로 TCP/IP가무난하며다른네트웍라이브러리와이와관련된자세한사항에대해서는별도의강의를통해알아보자. 여기서중요한것은 Server Alias와 Connection Parameters 부분의 Server name 부분이다. Server Alias는다른이름으로바꿔도상관없지만복잡하니그냥두기로하자. 만약원격의데이터베이스서버에접속하려한다면데이터베이스서버의 IP 주소를 Server name에입력한다. 여기서는로컬데이터베이스서버이므로디폴트설정을그대로둔다. Ok 버튼을누르고원래창으로돌아와다음버튼을누르자. 5. 다음은기본데이터베이스설정, 준비된 SQL 문에대한처리방식과각종 ANSI 규칙들과언어및데이터타입에대한세부설정, 로그와로그파일에대한각종세부설정을마무리하는작업이다.

6. 설정을다하고마침버튼을누르면지금까지설정한정보들의리스트와 Data Source 를테스트하는창이 뜬다. Test Data Source 버튼을눌러서테스트를해보자.

테스트가성공했다는창이뜨면 Data Source에대한설정이올바로되었다는것이며만약성공하지못했다는메시지가뜨면창을닫고이전의단계로돌아가서여러연결정보들을다시한번살펴보고올바른설정을해다시연결을테스트하길바란다. 연결에대한문제는데이터베이스프로그래밍을하는데있어서전제가되는작업이며때때로많은시간이드는작업이다. 천천히그리고꼼꼼하게여러정보를살피고올바른설정을하자. 7. ODBC Data Source 에대한설정을마치고연결도성공하였으므로모든창을닫자. 그러면 ODBC Data Source Administrator 창의 System DSN 탭에우리의레밍이만든 ODBC Data Source for SQL Server 가보인 다. 8. ODBC Data Source for SQL Server 가만들어졌으므로다시 TADOConnection Component 로돌아가 ConnectionString 을만들자. 이전예제 3 의과정으로돌아가 OLEDB Provider 들의리스트에서 ODBC Driver 들을위한 OLEDB Provider 를선택한다.

9. Provider 를지정하고 Next 버튼을눌러연결에대한정보를완성하자.

1 번의 Use Data Source Name 를체크하고미리만들어둔 Data Source Name 인 ODBCSQL 을사용하자. 단지 이것만을설정해도된다. 왜냐하면 ODBC 설정정보에서이미모든정보를입력했기때문이다. Test Connection 버튼을눌러연결을검사하자. 역시다음과같은창이뜨면연결에성공한것이다. 연결에성공했다면확인버튼을눌러모든사실을확인한뒤 ConnectionString 을얻자. Provider=MSDASQL.1;Persist Security Info=False;Data Source=ODBCSQL 이번에는위와같은 ConnectionString을얻었다. 유심히볼만한것은 Provider 속성으로지정된 MSDASQL인데이는 Object Inspector에서 TADOConnection Component의 Provider 프로퍼티값으로살펴볼수있다. 액세스데이터베이스를같은방법 --- OLEDB for ODBC Driver for Access --- 으로설정, 연결하는데에도이공급자가사용된다. 만약 System DSN에 ODBCACCESS란 Access Driver 용 Data Source Name이있다면그에대한 ConnectionString은 Provider=MSDASQL.1;Persist Security Info=False;Data Source=ODBCACCESS 가된다. 이외에도 Provider 프로퍼티값은여러가지가있는데이후의강의에서차례차례소개될것이다 이것으로 MS SQL Server를예로 native OLEDB Provider를사용하여 ConnectionString을생성하는방법과 ODBC용 OLEDB Provider를사용하여 ConnectionString을생성하는방법에대해자세하게알아보았다. 훌륭한로컬데이터베이스인 Access의경우도기본적인과정은 MS SQL Server와비슷하니중요한과정과결과만을보자. Access 의경우도 SQL Server 와같이 2 가지 Provider 와방법을통해 ConnectionString 을생성할수있다. 먼 저 Access 용 native OLEDB Provider 로 ConnectionString 을얻자. Access 2000 의경우 native OLEDB Provider 는아래의 Provider 를선택한다. Access 97 의경우 native OLEDB Provider 는아래의 Provider 를선택한다. 위의그림에서 Provider 를택하고 Next 버튼을누르면 MS SQL Server 와같이연결정보를설정하는창이뜬

다. 여기서 버튼을클릭하여데이터베이스명을입력하고데이터베이스 Logon 에필요한정보를입력하자. 역시사용자정보는 SQL Server 때와같다. 로그인정보가없는경우나필요하지않은경우기입하지않아도된다. 하지만설정은같이해보자. 역시입 력을마친후 Test Connection 버튼을클릭하여제대로연결이되는지테스트하자. 역시위의창이뜨면연결에성공한것이다. 다음은그렇게하여얻어진 ConnectionString 이다. 먼저 Access 2000 의경우 Provider=Microsoft.Jet.OLEDB.4.0;Password=0000;User ID=Lemming; Data Source=D: CppBuilder Lecture 2 부 db1.mdb;persist Security Info=True 다음은 Access 97 의경우이다. Provider=Microsoft.Jet.OLEDB.3.51;Password=0000;User ID=Lemming; Data Source=D: CppBuilder Lecture 2 부 db1.mdb;persist Security Info=True 단지 Provider 항목의값이 Access 용 native OLEDB Provider로바뀌고 Data Source 항목의값이데이터베이스서버인스턴스명에서 Access Database File의패스로바뀐것을제외하고는 SQL Server 때와같다. 만약 Access 파일자체에사용자아이디와암호가걸려있다면위와같은 ConnectionString들이생성될것이다. 그런로그인정보가없다면 Password=0000;User ID=Lemming; 부분은없어지고 Persist Security

Info=False 가될것이다. 물론없어도상관없다. 자다음은 Access ODBC 용 OLEDB Provider 를이용하는방법이다. 먼저 Access 용 ODBC Driver 를하나만든 다. 만드는방법역시 SQL Server 때와비슷하다. ODBC Data Source Administrator 창을띄우고 System DSN 탭에서 Add 버튼을클릭하여 Microsoft Access Driver 를선택한다. 마침버튼을누르면아래와같은 ODBC Microsoft Access 설정창이뜬다정보를입력하자. 데이터원본이 름에원하는이름을써넣고데이터베이스선택버튼을눌러액세스파일을선택한다. 전의예제에서사용자정보가있었으므로고급버튼을눌러로그인에대한정보를입력하자. 물론액세스파 일에대한로그인정보가없다면이과정은필요없다. 나머지옵션항목도정보가필요하다면설정하도록

하자. 설정을마쳤으면확인버튼을누른다. 이전의창으로돌아와확인버튼을누르면아래그림과같이 ODBC 용 Access Driver 의 Data Source Name 이 만들어진다. 자그럼빌더의 TADOConnection Component 로돌아와 ConnectionString 을완성하자. SQL Server 와마찬가 지로 ODBC 용 OLEDB Provider 를선택한후 Next 버튼을누르자.

Data Source Name 을사용하므로다음의그림과같이만들어둔 Access 용 ODBC Driver 를사용하면된다. Test Connection 을클릭하여연결을검사한다. 이와같은친숙하고즐거운창이뜨면연결에성공한것이며우리의레밍도기쁠것이다.

다음은위와같이했을때얻어지는 ConnectionString 이다. Provider=MSDASQL.1;Persist Security Info=False;Data Source=ODBCACCESS SQL Server 때와같이동일한 Provider 에단지 Data Source 항목의값만 ODBC 용 Access Driver Data Source Name 으로바뀐것을알수있을것이다. 이것으로지루하고다소복잡한방법으로 ConnectionString을얻는과정을 SQL Server와 Access를통해알아보았다. 우리의레밍은연결은성공하였으나지루하고고된여행에지쳐졸고있다. 여기서목적중심의사고를약간한다면위의다소복잡한설정단계와마우스를여리고작은발로부비는고통과는별도로우리레밍은필요한기반설정에맞는 ConnectionString만을가지면된다는것이다. 이것은동적으로 TADOConnection을생성했을때의 ConnectionString의설정방법과같은맥락인데물론 Test Connection 버튼을눌러그친근하고즐거운느낌이나는연결성공창을볼순없지만눈치가빠르고여러번고통을느껴봐서통박을깨우친일부레밍들은연결정보를사용, 자기가직접 ConnectionString을만들어직접코드에들이미는놀라운대담성을보인다. 사실연결을동적으로열거나비주얼하지않은어플리케이션내에서는이런방법이큰도움이된다. 자그럼그것에대해알아보자. 뭐별게있는게아니라이제까지얻은 ConnectionString 을일일이코딩으로쳐주면된다. 다음코드는이전강의연결의생성과해제부분의소스인데이번강의의내용을끼워넣었다함보자. 대략간단한구조는위의코드와같다. 분명이와같은방법으로 ConnectionString을열면일일이누르고설정할필요가없어진다. 종종게으르고무대포인레밍중의일부는 Native OLEDB Provider뿐아니라 ODBC용 OLEDB Provider도이런방법으로 ConnectionString을생성하는데이러면일일이 ODBC용 Data Source Name을생성할필요가없어진다. 간단히말해 DSN 없이 ODBC 접속을사용하는것이된다. 이방법의이점은 ODBC를통해접속할때별다른 Setting이필요없고모두코딩상으로설정이해결된다는장점이있다. 자그럼 ConnectionString을알아보자. 연결정보는앞의예제와같다. 먼저 Access 의경우 Driver={Microsoft Access Driver (*.mdb)}; DBQ=D: CppBuilder Lecture 2 부 db1.mdb

다음 SQL Server 의경우 Driver={SQL Server}; Server=SIGULS; Database=Pubs; UID=lemming; PWD=0000 여기서주의깊게볼부분은두가지경우가다 Provider가아니라 Driver 항목이사용되었다는점이다. SQL Server의경우 Driver={SQL Server} 대신 Provider=SQLOLEDB.1 을사용할경우 ODBC가아니라 OLEDB를사용해연결하는 ConnectionString 임을알수있다. ConnectionString을생성할때 OLEDB Provider들의리스트를보면 ODBC에대한 OLEDB Provider가항상디폴트로설정되어있음을보았을것이다. 그러므로여러분이만약 Provider= 부분을쓰지않았거나그대로남겨두었다면자동적으로여러분은 ODBC를사용하게되는것이다. 앞에서이전강의의서툰그림을들먹거리며 ADO Data Layer를언급한적이있었는데이제그것을정리하는입장에서개요가아닌이번강좌의내용에맞는그림으로살펴보도록하자. 또 Provider와 Driver에대해자세하게알아보자. 처음강의에서도이번강의에서도언급하지만한가지중요한사실은 OLEDB Provider가 ODBC를포함한다는것이다. 이사실때문에 OLEDB가기존의 ODBC 데이터소스들을액세스할수있었고우리는앞의예제에서알아보았다. 그리고이것의가장큰이점이 ODBC가 OLEDB보다더많이퍼져있기때문에 OLEDB Provider들보다훨씬더많은개수의 ODBC 드라이버들을사용할수있다는점이라는것을여러분도볼수있었다. 이런기능은각벤더들에서 OLEDB Provider들을제공할때까지우리가별도로기다리지않더라도데이터원본에대한액세스를할수있다는의미이다. 또 Provider와 Driver를혼동하지않는것이중요하다. 자그림을보자. 위의그림은앞에서말한그런분할을명확하게나타내고있는데 Provider들은 OLEDB 층에있으며드라이버들은 ODBC층에있다. 이전의예제들에서살펴본것같이여러분이 ODBC 데이터소스를사용하고자한다면여러분은 ODBC에대한 OLEDB Provider들을사용하게되고그러면 ODBC는적절한 ODBC Driver들을사용하게된다. 반대로 ODBC 데이터소스를사용할필요가없다면적절한 native OLEDB Provider들을사용할수있다. 또한첫번째강의에서도언급했지만이그림에서도역시볼수있는데 ODBC 에대해 OLEDB Provider 들을 사용한다는것은또하나의층을거쳐야된다는것을분명히볼수있다. 이런이유로동일한데이터원본에

액세스할경우 ODBC 에대한 OLEDB Provider 는 native OLEDB Provider 들보다약간느리게작동한다. 그럼마지막으로갈림길로돌아가서 ConnectionString에 Data Link File을사용하는방법에대해서알아보자. 이것은특별한것이아니라 ConnectionString을확장자가 udl인텍스트파일에입력한뒤 ConnectionString 을만드는항목중에서 Provider와배타적인 File Name 항목을이용, 데이터원본과연결을얻는것이다. 이런데이터링크파일을사용하게되면 ConnectionString을설정한뒤에나중에 ConnectionString이변경되어도어플리케이션을재 Compile할필요없이 udl 파일내의 ConnectionString만을변경하면된다. 이것은분명 ADO 어플리케이션의이식과배포, 유지보수에상당한장점으로작용한다. 반대로단점도존재하는데바로연결정보중에데이터베이스로그인정보와같은보안에중요한정보가드러나는것에관계된문제이다. 이와같은득실의문제는프로젝트중에고려해야될중요한문제이다. 필자의경우보안이중요하지않고반대로이식과배포의비중이높은간단한로컬데이터베이스를사용하는어플리케이션을제작할때이방법을사용한다. 그리고 Web 어플리케이션의경우이방법을사용하려면 udl 파일을 Web Site 내의 URL로 mapping된디렉터리에두지않는것이좋다. 자그럼구체적으로살펴보자. 이전예제에서얻은 ConnectionString 으로 udl 파일을만드는것은여러분에게맡긴다. 위의 BCDEMOS.udl 은 C++ Builder 가설치되면함께설치되는 Default udl 파일이다. 파일의내용에 ConnectionString 을볼수있을것이다. 위의 2 번째그림은필자가 ODBC Data Source Administrator 의 File DSN 에서만든 example1.dsn 의내용이다. 특히 ODBC 용 OLEDB Provider 를사용할경우 File DSN 을만든후메모장으로읽고그내용을 Copy 하여 udl 파일을만들면쉬울것이다. 아래의그림을보자.

Add 버튼을눌러 ODBC Driver 를설정하고저장하고자하는디렉터리패스를선택한후적당한이름을입력 하면 dsn 파일이만들어진다. 그내용을 Copy 하여새로운 udl 파일을만든다. udl 파일을만든후 C++ Builder 로돌아가자. ConnectionString을생성하는창에서첫번째항목인 Use Data Link File을택하고 Browse 버튼을눌러위에서생성한 udl 파일을선택하면된다. OK 버튼을누르면얻어지는 ConnectionString은다음과같다. FILE NAME=C: Program Files Common Files System Ole DB Data Links BCDEMOS.udl 연결에필요한정보들은모두 udl 파일내에있으므로다른항목에대한설정은필요없다. udl 파일은기본적으로텍스트파일이므로어플리케이션내에서 TStringList 객체를사용하여동적으로생성하는등다양한응용또한가능하다. 그것은전적으로여러분의몫일것이다. 자그럼마칠시간이다. 이번강의는생성된연결객체를통해데이터원본에접근하는데가장핵심적인설정인 ConnectionString에대해알아보았다. 이번강의는매우중요하며이후의강의의전제가된다. 연결에필요한나머지세부설정들과그에관련한 TADOConnection 프로퍼티를알아보고직접연결을열어보자. 갈길이앞으로멀다. 우리의레밍을격려해서다음엔조심스레문을열어보자. Mortalpain