sub_title
 ASP
제   목 ASP에서 OLE DB를 이용하여 MSSQL 연결하기
작성자 다자래 등록일 2007-09-07 21:19:17 조회수 243,066

[ASP] ASP에서 OLE DB를 이용한 MSSQL 연결하기

OLE DB란?

OLE DB는 마이크로소프트 UDA(Universal Data Access)의 핵심에 위치하고 있는 기술입니다. 그럼 UDA란 무엇이냐?
묻는 분이 있을거 같은데 간단히 말씀드리면 위에 Universal이란 단어에 답이 있습니다. Universal의 뜻을 영어사전에서 찾아보면 "보편적인,전반적인,일반적인,만국의,전세계의..." 이런 뜻들이 나열되는데 그 Universal이 뜻하는 것과 마찬가지로
UDA란 어떤 데이타든 제한없이 접근할 수 있게 해주는 개념이라고 이해하시면 됩니다.

UDA에 근간하고 있는 마이크로소프트의 데이타 접근 기술에는 다음과 같은 것들이 있습니다.

- ODBC(Open Database Connectivity)
- OLE DB
- ADO(ActiveX Data Object)
- RDS(Remote Data Service)

우리가 ASP에서 자주 사용하는 ODBC가 보이고, ADO가 보입니다. ODBC, ADO역시 UDA를 기반으로 한 데이타베이스 접근기술 입니다. 사실 OLE DB, ODBC, ADO등을 여기서 자세히 다루기에는 무리가 있고, 제 지식또한 충분치 않기 때문에 몇가지 사항만 더 설명하고 본론으로 들어가겠습니다.

OLE DB는 ODBC의 단점을 보완하기 위해서 등장한 COM기반의 데이타 엑세스 기술입니다. (OLE DB를 정확히 이해하기 위해서는 COM에 대한 기초지식이 어느정도 있어야 합니다. )

ODBC의 단점중 가장 치명적인 것은 드라이버 버전 관리 입니다. 다음은 ODBC 설정없이 SQL Server와 연결하는 방법입니다.

Set dbCon =Server.CreateObject("Adodb.Connection")
dbCon.open("Driver={SQL Server};Server=서버이름 또는 IP;Database=데이타베이스명;uid=아이디;pwd=패스워드")

dbCon.open 다음에 Driver라는 항목이 들어가는 것이 보일것입니다. "Driver=SQL Server" 이 부분에서 "SQL Server"는 우리 서버에 설치되어 있는 MSSQL 드라이버를 뜻합니다. 만약 이 드라이버가 호환되지 않는다면 우리는 새로운 드라이버를 구해다가 서버에 설치해야 만 합니다.

이전에 "ASP에서 MySQL연동하기"에서 소개해 드렸지만 MySQL을 사용하기 위해서는 MySQL 3.51 ODBC 드라이버를 설치해야 만 했었습니다. MySQL버전이 높아져서 MySQL3.51 ODBC 드라이버가 호환이 안된다면 우리는 새로운 버전에 맞는 드라이버를 설치해야 만 합니다.

ODBC의 또 한가지 단점은 속도문제입니다. OLE DB는 더 향상된 데이타 엑세스 속도로서 ODBC의 속도에 대한 단점을 보완합니다.

"더 향상된 데이타 엑세스 속도"라고 써놓고 보니 무슨 광고 카피같은 느낌이 팍팍 드는데 할 수 없습니다. 이미 광고홍수에 찌들어서 저도 모르게 써버린 표현이라서 대충넘어 가기로 하겠습니다.

밑에 그림은 ASP또는 응용프로그램(Application)에서 어떻게 OLE DB를 통해서 데이타에 접근하는 가에 대한 계층도 입니다. ODBC Driver와 각 Provider 밑에는 우리가 접근하려는 데이타들이 있을 것입니다.



제 아이디에도 등장하는 mfc(Microsoft Foundation Class)를 이용하는 C++같은 경우에는 OLE DB를 직접적으로 사용할 수 있습니다. 아니 그것보다는 OLE DB를 직접적으로 사용하기 위해서는 C++ 클래스와 COM에 대한 지식이 필수적이라고 할 수 있는데 Visual Basic과 ASP기반 스크립트를 사용하는 프로그래머에게는 상당한 부담감을 안겨주는 요인이 됩니다.

ADO는 바로 Visual Basic이나 ASP기반 스크립트에서 쉽게 OLE DB를 사용하기 위해서 등장한 기술입니다. 윗 그림에서 ADO는 OLE DB의 상위 레이어에 자리잡고 ASP또는 Application과 소통하고 있습니다.

결국 여기에 소개해 드릴 ASP에서 OLE DB를 이용한 MSSQL 연결하기는 ASP에서 OLE DB와 ADO를 이용한 MSSQL연결하기가 맞는 제목일 것 같습니다.


OLE DB 연결하기


이제 OLE DB를 이용해서 MSSQL에 연결하는 소스를 알아 보겠습니다. MSSQL Server는 로컬에 설치되어 있는 것으로 가정하고 사용할 데이타베이스는 테스트를 위한 testDB를 생성합니다. 데이타베이스에 접근하기 위한 사용자 아이디는
testUser로, 비밀번호는 1234로 생성합니다.

- MSSQL Server 위치 : local
- 데이타베이스 명 : testDB
- 사용자아이디 : testUser
- 비밀번호 : 1234

사용환경에 위와 같다고 했을때 OLE DB를 연결하기 위한 소스는 다음과 같습니다.

<%
Set dbCon = Server.CreateObject("ADODB.Connection")
strConnect = "Provider=SQLOLEDB;Data Source=(local);Initial Catalog=testDB;User ID=testUser;Password=1234;"
dbCon.open strConnect
%>

위에 보시면 strConnect 문자열 중 Provider, Data Source, Catalog, ID, Password가 보이 실 겁니다.

Provider는 OLE DB의 인터페이스를 구현하고 있는 컴포넌트로서 ODBC Driver와 거의 같은 역할을 한다고 이해하시면 됩니다. 우리는 여기서 MSSQL Server에 연결 할 것이므로 Provider는 SQLOLEDB를 적어 주시면 됩니다.

Data Source는 MSSQL Server가 있는 위치를 의미합니다. 여기서는 당연히 로컬입니다. 다른 물리적 머쉰에 설치되어 있으면 그곳의 IP를 적어 주시면 됩니다.

Initial Catalog는 우리가 생성한 Database의 이름입니다.

ID는 데이타베이스의 사용자 아이디입니다. Password는 데이타베이스 사용자의 비밀번호입니다.

 

작성자: 다자래(mfcchang@naver.com)
웹제작 토탈 커뮤니티 http://www.webmadang.net

 

 
2
    
 
2
        list
 
※ 짧은 댓글일수록 예의를 갖추어 작성해 주시기 바랍니다.
line
reply cancel
 
번호 제목 글쓴이 추천 조회 날짜
6  DateDiff 함수를 이용한 경과시간 체크하기   member 다자래 0 / 1 208172 2007-08-20
5  파일(File) 읽기   member 다자래 0 / 0 205430 2007-08-20
4  On Error Resume Next를 이용한 에러처리   member 다자래 0 / 0 209823 2007-08-17
3  ASP 트랜잭션(Transaction) 처리 이미지   member 다자래 0 / 0 221589 2007-08-17
2  global.asa를 이용한 사이트 접속 카운터 예제   member 다자래 0 / 0 206160 2007-08-16
1  난수를 이용한 쿠폰번호(알파벳+숫자) 생성  [6] member 다자래 1 / 0 215418 2007-08-14
write
button [1] [2] [3]