내 블로그 목록

금요일, 9월 04, 2009

ADO 사용을 위한 준비 (ODBC/OLEDB)

출처 : http://www.dragoneye.co.kr/lecture/asp/ado4.asp

ADO가 데이타베이스를 다루는 객체라는 것은 앞에서 설명드렸으니까 이 데이타베이스를 다루려면 데이타소스에 연결해야한다.

연결방법으로는 ODBC와 OLEDB 중에 선택해야 한다. ODBC는 다시 DSN 설정과 비설정으로 나눠지므로 선택의 폭은 총 3가지인데 나머지는 대략 살펴보고 OLEDB는 자세히 살펴보기 바란다.

연결에 필요한 정보를 살펴보면

1) 어떤 연결단자를 사용할 것인지(앞에서 ODBC와 OLEDB가 있다고 했음)
2) 어떤 종류의 데이타베이스이며,
3) 위치가 어디인지,
4) ID와 비밀번호는 무엇인지가 필요하다

결국 사용자가 asp문서를 클릭한다는 것은 asp문서속에 프로그래머가 준비해준 디비에 들어가는 정보(열쇠)를 갖고 준비해준 쿼리를 실행시켜 asp문서의 결과를 보는 셈이다.


(1) 연결단자로 ODBC를 사용하면서 DSN을 설정하여 연결하는 방법
제어판->(win2000경우 관리도구)-> 데이타원본 -> 시스템DSN 에서 [추가]를 선택하여 DSN을 추가한다 제대로 설정이 되었다면 이 DSN(Data Source Name)이 데이타 베이스의 종류,이름, 위치 정보를 가지게 된다.

이렇게 DSN이 설정되면 앞으로 이 Name(DSN)을 사용해서 데이타베이스에 연결하게 된다 *물론 Access의 경우는 ID와 비밀번호가 없다.

*이때 준 Name을 잘 기억해야겠다 . 소스중에 적어 주어야 하므로...

Connection,Recordset객체는 뒤에서 다룰 것이므로 연결문자만 참조하기 바란다.
 
*데이타베이스가 TestDB이고, DSN설정에서 별칭을 Test라고 했다면

Access/SQL의 경우

1) Connection 객체에서
Set DbCon=Server.CreateObject("ADODB.Connection")
DbCon.open "DSN=Test;UID=;PWD=;"

2) Recordset 객체에서
Set Rs=Server.CreateObject("ADODB.Recordset")
SQL="Select * from 테이블이름"
Rs.open SQL, "DSN=Test;UID=;PWD=;"

*SQL Server경우는 User ID와 Password의 값을 넣어준다
*물론 Access의 경우는 DSN뿐이므로 "Test"로 단축가능하다. 다른 데이타베이스를 사용할 경우 및 코드를 일목요연하게 하려면 변수를 사용할 수 있다.

1)Connection 객체에서 (변수에 두고 사용)
Set DbCon=Server.CreateObject("ADODB.Connection")
ConnString= "DSN=Test;UID=;PWD=;"
DbCon.open ConnString

2)Recordset 객체에서 (변수에 두고 사용)
Set Rs=Server.CreateObject("ADODB.Recordset")
ConnString= "DSN=Test;UID=;PWD=;"
SQL="Select * from 테이블이름"
Rs.open SQL, ConnString


 
(2) 연결단자로 ODBC를 사용하면서 DSN을 설정하지 않고 연결하는 방법

*DSN에 설정에 사용했던 정보들을 연결문자열에 그대로 사용한다

Access의 경우

1) Connection 객체에서 (변수에 두고 사용)
Set DbCon=Server.CreateObject("ADODB.Connection")
ConnString= "Driver={Microsoft Access Driver (*.mdb)};DBQ=d:/test/TestDB.mdb;"
DbCon.open ConnString

2) Recordset 객체에서 (변수에 두고 사용)
Set Rs=Server.CreateObject("ADODB.Recordset")
ConnString= "Driver={Microsoft Access Driver (*.mdb)};DBQ=d:/test/TestDB.mdb;"
SQL="Select * from 테이블이름"
Rs.open SQL, ConnString

  *위에서 ODBC드라이브이름으로 Access Driver를 ,Access D/B의 경로와 이름을 지정해 주었다

SQL Server의 경우

1) Connection 객체에서 (변수에 두고 사용)
Set DbCon=Server.CreateObject("ADODB.Connection")
ConnString= "Driver={SQL Server};Server=SON;Database=TestDB;UID=sa;PWD=;"
DbCon.open ConnString

2) Recordset 객체에서 (변수에 두고 사용)
Set Rs=Server.CreateObject("ADODB.Recordset")
ConnString= "Driver={SQL Server};Server=SON;Database=TestDB;UID=sa;PWD=;"
SQL="Select * from 테이블이름"
Rs.open SQL, ConnString

* M/S SQL Server의 경우 SQL 서버이름(여기서는 SON)과 D/B이름(여기서는 TestDB)과 User ID(여기서는 표준사용자 sa)와 Password를 지정하였다
 


(3) 연결단자로 OLEDB를 사용하는 경우- 권장합니다

* OLEDB는 연결문자열을 사용한다

Access의 경우

1) Connection 객체에서
Set DbCon=Server.CreateObject("ADODB.Connection")
ConnString= "Provider=Microsoft .Jet.OLEDB.4.0;Data Source=d:/test/TestDB.mdb;"
DbCon.open ConnString

2) Recordset 객체에서
Set Rs=Server.CreateObject("ADODB.Recordset")
ConnString= "Provider=Microsoft .Jet.OLEDB.4.0;Data Source=d:/test/TestDB.mdb;"
SQL="Select * from 테이블이름"
Rs.open SQL, ConnString

*위에서 OLEDB제공자로 Microsoft.Jet.OLEDB.4.0을 지정하였고 D/B경로 및 이름 을 지정하였다

SQL Server의 경우

1) Connection 객체에서 (변수에 두고 사용)
Set DbCon=Server.CreateObject("ADODB.Connection")
ConnString= "Provider=SQLOLEDB;Data Source=SON;Initial Catalog=TestDB;User ID=sa;Password=;"
DbCon.open ConnString

2) Recordset 객체에서 (변수에 두고 사용)
Set Rs=Server.CreateObject("ADODB.Recordset")
ConnString= "Provider=SQLOLEDB;Data Source=SON;Initial Catalog=TestDB;User ID=sa;Password=;"
SQL="Select * from 테이블이름"
Rs.open SQL, ConnString

*위에서 OLEDB제공자로 SQLOLEDB를 지정하였고 SQL서버이름(SON)과 D/B이름 및 USer ID와 Password를 지정하였다


ASP에서 주로 사용하는 데이타베이스인 Access 및 SQL Server는 ODBC 및OLEDB 모두 이용할 수 있다. ODBC를 익힌 다음 실제 작업에서는 OLEDB를 사용하면 된다.

댓글 없음: