독까의 이야기

ADODB.Connection 오류 '800a0e78'

개체가 닫혀 있으면 작업이 허용되지 않습니다.

/customer/news_view.asp, 줄 19



게시판 리스트는 확인이 되는데 게시글 클릭시 에러 메시지 출력 된다.

DB 커넥션 부분이 문제가 되었다. 

원본 : 

Set db = Server.CreateObject("ADODB.Connection")
db.Open dbcon

수정본 : 

Set db = Server.CreateObject("ADODB.Connection")
db.open "Provider= SQLOLEDB; Data Source=디비 서버 아이피; Initial Catalog=디비명; User id=디비 계정; password=디비 패스워드;"

소스 안에 직접 DB 커넥션 작성한다.

게시글 클릭시 오류 없이 확인 된다.



* 참고 페이지


데이터베이스에 연결하는 방법은 여러 가지가 있습니다. 이 문서에서는 다양한 종류의 데이터베이스와 데이터베이스 연결에 대한 예제 연결 문자열에 대해 단계별로 설명합니다.

요구 사항

다음은 데이터베이스 연결을 위한 요구 사항입니다.
  • MDAC(Microsoft Data Access Components) 버전 2.5 또는 2.6(Jet 데이터베이스 엔진 포함)이 있고 ASP(Active Server Pages)를 사용하는 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:\Inetpub\Wwwroot입니다.
<%
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:\databases\mydatabase.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
%>