반응형
=======================
=======================
=======================
출처:
http://fendee.egloos.com/2232400
HOWTO: ASP 페이지에서 데이터베이스 연결 작성: 연결 문자열 예제
이 문서는 이전에 다음 ID로 출판되었음: KR300382
작업 내용
요약
데이터베이스에 연결하는 방법은 여러 가지가 있습니다. 이 문서에서는 다양한 종류의 데이터베이스와 데이터베이스 연결에 대한 예제 연결 문자열에 대해 단계별로 설명합니다.맨 위로
요구 사항
다음은 데이터베이스 연결을 위한 요구 사항입니다.- Microsoft Data Access Components(MDAC) 버전 2.5 또는 2.6(Jet 데이터베이스 엔진 포함)이 있는 Active Server Pages(ASP) 사용 Internet Information Services(IIS) 버전 5.0 웹 서버
- 로컬 또는 원격 데이터베이스로의 연결
- ASP 사용 Microsoft Internet Explorer 버전 5.0 이상
예제 데이터베이스 연결 문자열
다음 예제는 설명 목적으로 제공됩니다. 특정 데이터베이스로 연결하려면 이 코드를 작성 중인 ASP 코드에 붙여 넣어야 합니다. 참고로, 데이터베이스 이름, 서버 이름, 데이터베이스 위치, 데이터 원본 이름(DSN) 등의 요소는 해당 정보로 대체되어야 합니다.맨 위로
Microsoft Access
DSN이 없는 경우<%Set Cnn = Server.CreateObject("ADODB.Connection")Cnn.open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=c:mydatabase.mdb"%>
OLE DB
<% Set Cnn = Server.CreateObject("ADODB.Connection") Cnn.open "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=c:mydatabase.mdb"%>
파일 DSN
<% Set Cnn = Server.CreateObject("ADODB.Connection") Cnn.open "FILEDSN=ADSN"%>
DSN은 있고 사용자 ID/암호는 없는 경우
<% Set Conn = Server.CreateObject("ADODB.Connection") Conn.open "DSNname"%>
DSN과 사용자 ID/암호가 모두 있는 경우
<% Set Conn = Server.CreateObject("ADODB.Connection") Conn.open "DSNname","username","password"%>
DSN 없이 실제 경로를 참조로 사용하는 경우
<% Set Conn = Server.CreateObject("ADODB.Connection") DSNtest="DRIVER={Microsoft Access Driver (*.mdb)}; " DSNtest=dsntest & "DBQ=c:mydatabase.mdb" Conn.Open DSNtest %>
DSN 없이 Server.MapPath를 사용하는 경우참고: Server.MapPath는 웹 서버 루트에서의 경로로 기본값은 C:InetpubWwwroot입니다.
<% Set Conn = Server.CreateObject("ADODB.Connection") DSNtest="DRIVER={Microsoft Access Driver (*.mdb)}; " DSNtest=dsntest & "DBQ=" & Server.MapPath("/databases/mydatabase.mdb") Conn.Open DSNtest %>
맨 위로
Microsoft SQL Server
OLE DB<%Set cnn = Server.CreateObject("ADODB.Connection")cnn.open "PROVIDER=SQLOLEDB;DATA SOURCE=sqlservername;UID=username;PWD=password;DATABASE=mydatabase " %>
DSN이 있는 경우
<% Set Conn = Server.CreateObject("ADODB.Connection") Conn.open "DSN=MyDSN;UID=user;PWD=password;DATABASE=mydatabase" %>
DSN이 없는 경우
<% Set Conn = Server.CreateObject("ADODB.Connection") DSNtest="DRIVER={SQL Server};SERVER=ServerName;UID=USER;PWD=password;DATABASE=mydatabase" Conn.open DSNtest %>
맨 위로
Microsoft Visual FoxPro
DSN이 없는 경우<%Set Conn = Server.CreateObject("ADODB.Connection")ConnStr= "Driver=Microsoft Visual Foxpro Driver; UID=userID;SourceType=DBC;SourceDB=C:databasesmydatabase.dbc" Conn.Open ConnStr %>
맨 위로
Oracle
DSN이 있는 ODBC<%Set Conn = Server.CreateObject("ADODB.Connection")Conn.cursorlocation=adUseClient ' requires use of adovbs.inc; numeric value is 3 Conn.open "DSN=test;UID=name;PWD=pass" %>
OLE DB
<% Set Conn = Server.CreateObject("ADODB.Connection") Conn.cursorlocation=adUseClient ' requires use of adovbs.inc; numeric value is 3 DSNTest="Provider=MSDAORA.1;Password=pass;User ID=name;Data Source=data.world" Conn.open DSNtest %>
맨 위로
참조
데이터 유형, 데이터 연결 또는 MDAC 구성 요소에 대한 자세한 내용은 다음의 Microsoft 웹 사이트를 참조하십시오. 맨 위로본 문서의 정보는 다음의 제품에 적용됩니다.
- Microsoft Internet Information Services 5.0 다음과 함께 사용
운영 체제: Microsoft Windows 2000
최종수정일: | 2003-05-05 (2.0) |
키워드: | kbhowto kbHOWTOmaster KB300382 kbAudDeveloper |
=========================
그런데, 막상 처음 ASP를 접한 사람들은 위의 내용으로는 잘 이해가 가지 않을것이다.
우선, ASP의 용법들이 익숙하지도 않을뿐더라, 초보자의 입장에서 쉽게 설명이 되지 않았기 때문이다.
나름대로, 몇가지 간단한 설명을 붙여보려 한다.
1.MDB(Microsoft Access Data Base) 연결.
위의 설명에 보면 연결방법이 여러가지가 나와있는데, 자신만이 쓰는 방법 한가지를 정해놓으면 된다.굳이 여러가지 용법을 다 쓸필요는 없다.
개인적으로는
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSNtest="DRIVER={Microsoft Access Driver (*.mdb)}; "
DSNtest=dsntest & "DBQ=c:mydatabase.mdb"
Conn.Open DSNtest
%>
Set Conn = Server.CreateObject("ADODB.Connection")
DSNtest="DRIVER={Microsoft Access Driver (*.mdb)}; "
DSNtest=dsntest & "DBQ=c:mydatabase.mdb"
Conn.Open DSNtest
%>
문장을 권하고 싶다.
누군가는
<%
Set Cnn = Server.CreateObject("ADODB.Connection")
Cnn.open "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=c:mydatabase.mdb"
Set Cnn = Server.CreateObject("ADODB.Connection")
Cnn.open "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=c:mydatabase.mdb"
%>
이 용법이 더 빠르다고 하는 사람이 있는데, 후자의 경우, 간혹 에러가 발생하는 것을 경험했다.
이 용법이 더 빠르다고 하는 사람이 있는데, 후자의 경우, 간혹 에러가 발생하는 것을 경험했다.
이미 DB가 열려있다는둥의 메세지가 출력되어 DB정보를 뽑아오지 못하는 문제가 발생했다.
전자의 경우, 무난히 사용할수 있는것 같다.
MDB에 비밀번호를 걸어두고 사용하는 경우도 있다.
MDB에 비밀번호를 걸어두면, 만약의 경우 MDB 파일이 외부에 유출되었을 경우, 이 비밀번호를 알아야 DB를 열어볼수 있다는 보안상의 좋은 점이 있긴 하지만, 이 비밀번호를 깨는 유틸이 구하기 쉬우므로, 구태여 비밀번호를 걸어둘 필요는 없을것 같다.
또한, 비밀번호를 걸어둘경우, 몇몇 DB 호출에서 에러가 발생하므로, 그냥 걸어두지 않는편이 나은것 같다.
위의 연결구문에서 직접 사용자가 변경하여 사용하는 부분은
전자의 경우 DBQ="DB파일의 물리적경로" 사이에 들어가는 물리적 경로 부분이다.
후자의 경우 DATA SOURCE=DB파일의 물리적경로 이다.
이전에 설명했듯이, DB파일의 물리적 경로는 실제 하드드라이브에서 물리적으로 어느 위치에 이 파일이 존재하는지 경로를 정확히 써주어야 이 DB파일에 연결된다.
이 경우, SerVer.MapPath(".") 를 응용하여, 물리적 경로를 지정해준다.
만약, MDB파일이(***.mdb) D:webfolder 의 루트에 존재한다면,(이 폴더를 도메인의 루트로 지정된 경로로 가정)
<%
dbfileurl = SerVer.MapPath("") & "DB파일명"
'-------
Set Conn = Server.CreateObject("ADODB.Connection")
DSNtest="DRIVER={Microsoft Access Driver (*.mdb)}; "
DSNtest=dsntest & "DBQ="&dbfileurl
Conn.Open DSNtest
%>
Set Conn = Server.CreateObject("ADODB.Connection")
DSNtest="DRIVER={Microsoft Access Driver (*.mdb)}; "
DSNtest=dsntest & "DBQ="&dbfileurl
Conn.Open DSNtest
%>
처럼 변수로 지정해주면 된다.
MDB 연결과는 달리, MS SQL 의 연결은 아이피와 비밀번호, 테이블명 등으로 연결된다.
SQL 은 일차적으로 DB 가 존재하는 SQL 서버가 미리 준비되어 있어야 한다.
웹서버와는 별도로 SQL이 설치되며, 같은 서버PC에 설치하기도 하지만(유틸리티의 개념이므로), 다른 서버 PC(별도의 SQL 서버컴퓨터)에 설치하기도 한다.
SQL 서버란, SQL 서버 유틸리티가 설치된 서버 컴퓨터를 말하는것이라 보면 되겠다.
즉, windows 서버 OS 와 다른 별도의 OS가 아니라, 1차적으로 windows 서버가 설치된 OS 컴퓨터에 SQL 서버라는 프로그램을 설치한다고 보는것이 정확할것 같다.
ASP 에서 SQL 서버로의 연결은 물리적경로로 연결되지 않으며, 아이피로 연결이 된다.
권장하는 연결 방법은 아래와 같다.
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSNtest="DRIVER={SQL Server};SERVER=도메인,혹은아이피;UID=접속아이디;PWD=비밀번호;DATABASE=데이터베이스이름"
Conn.open DSNtest
%>
Set Conn = Server.CreateObject("ADODB.Connection")
DSNtest="DRIVER={SQL Server};SERVER=도메인,혹은아이피;UID=접속아이디;PWD=비밀번호;DATABASE=데이터베이스이름"
Conn.open DSNtest
%>
위에서
SERVER= 부분에 연결할 도메인 또는 할당받은 아이피를 입력해준다.
UID= 에는 할당받은 접속 아이디를,
PWD= 에는 할당받은 접속아이디의 비밀번호를,
DATABASE= 에는 할당받은 데이터베이스 이름을 넣어주면 된다.
웹호스팅 업체에서 SQL 정보를 알려주기 때문에 이때 할당받은 아이디와 비밀번호,데이터베이스 이름을 여기에 기록해주면 된다.
내가 추천한 몇가지 방법이 있긴 한데, DB 연결법은 계속 연구가 되고 있으며, 어떤 연결법이 낫다, 어떤 연결법은 어떤 문제가 있다는 등의 문제가 아직도 계속 연구되고 있으므로, 꼭 어떤 방법을 추천하기에는 다소 문제가 있지만, 가장 일반적으로 사용하는 연결법을 추천한 것이다.
=======================
=======================
=======================
반응형
'프로그래밍 관련 > DB SQL' 카테고리의 다른 글
ADO(ActiveX Data Object) - CONNECTION객체 (0) | 2011.02.09 |
---|---|
사내 공통 DB 서버 mssql , ADO 연결시 80004005에러코드 문제점(WIN NT계열아니면 많이 일어남) (0) | 2011.02.09 |
계정 삭제시 스키마문제로 안지워질떄 (0) | 2011.01.19 |
데이터베이스 로컬인증만 그리고 혼합인증 (새로사용자로그인시 확인해야할것) (0) | 2011.01.19 |
MSSQL 저장 프로시져 (0) | 2011.01.13 |