ODBC (Open DataBase Connectivity)

ODBC는 데이터베이스를 엑세스하기 위한 표준 개방형 응용 프로그램 인터페이스를 말합니다.

마이크로소프트사에 의해 만들어진, 데이터베이스에 접근하기 위한 소프트웨어의 표준 규격으로,

프로그램 내에 ODBC 문장을 사용하면 여러 종류의 데이터베이스에 접근할 수 있습니다.

 

ASP 페이지에서 데이터베이스 연동

ASP에서는 데이터베이스와의 연동을 위해서 3가지 개체를 제공하고 있습니다.

  • Connection Object (ADODB.Connection)
  • Recordset Object (ADODB.Recordset)
  • Command Object (ADODB.Command)

 

1. Connection 개체

Connection 개체는 특정 데이터베이스와 연결을 할 수 있게 해주는 개체이며, 리턴 결과 레코드가 없는 간단한 쿼리를 수행할 수 있습니다.

Set oraConn = Server.CreateObject("ADODB.Connection")
oraConn.Open("dsn={dsn};uid={uid};pwd={pwd}")

Server.CreateObject가 하는 역할은 ASP에서 사용이 가능한 개체의 인스턴스를 만들어주는 역할을 하는 메소드입니다. Connection 개체의 가장 큰 역할은 데이터베이스와 연결(Open메소드) 하는 것입니다.

그 이외에도 반환 결과 레코드가 없는 쿼리(INSERT, UPDATE, DELETE)의 경우를 실행할 수 있는 기능(Execute 메소드)도 가지고 있습니다. 

 

2. Recordset 개체

Recordset 개체는 쿼리 결과로 추출된 데이터를 보관하는 역할을 해주는 개체이며, Connection 개체와 마찬가지로 Open메소드를 가지고있습니다.

첫 번째 인자는 쿼리문으로 넣고, 두 번째 인자는 데이터베이스 Connection 개체입니다.

Set oraRec = Server.CreateObject("ADODB.Recordset")
sql = "SELECT * FROM BOARD"
oraRec.Open sql, oraConn

 

ASP에서 데이터 보여주기 (SELECT)

<%
Set oraConn = Server.CreateObject("ADODB.Connection")
oraConn.Open("dsn={dsn}; uid={uid}; pwd={pwd}") 

Set Rs = Server.CreateObject("ADOBO.RecordSet")
SQL = "SELECT * FROM BOARD"
oraRec.Open sql, oraConn
%>

<HTML>
<HEAD><TITLE> ASP DB 연결하기 </TITLE></HEAD>
<BODY>
<% If oraRec.BOF Then %>
요구하신 데이터가 없습니다.
<% Else %>
  <% Do Until oraRec.EOF %>
	작성자는 <%=oraRec("writer")%>,
    제목은 <%=oraRec("title")%> 입니다.
  <% oraRec.MoveNext %>
  <% Loop %>
<% End If %>
</BODY>
</HTML>

13줄은 데이터가 하나도 없을 경우를 위한 처리입니다.

BOF는 Begin Of File로 레코드 셋의 시작, EOF는 End Of File로 레코드 셋의 끝을 의미한다. 레코드가 하나가 아닌 경우 가상 테이블의 형태로 레코드셋이 저장되고 그 시작과 끝을 구분해주는 것이 BOF와 EOF이다.

DB에 데이터가 있는 경우 oraRec.EOF와 oraRec.BOF는 false가 되고 데이터가 없는 경우 true가 된다.

 

ASP에서 데이터 입력하기 (INSERT, UPDATE, DELETE)

ASP에서 데이터를 출력할 때는 그 데이터를 담을 Recordset개체가 필요했지만

데이터 입력의 경우 Connection 개체와 함께 쿼리를 실행할 Execute 메소드를 통해 데이터를 입력합니다. (데이터를 담을 필요가 없기 때문에 Recordset개체는 필요 없습니다.)

<%
Writer = "작성자"
Title = "제목"

Set oraConn = Server.CreateObject("ADODB.Connection")
oraConn.Open("dsn={dsn};uid={uid};pwd={pwd}")

Set oraRec = Server.CreateObject("ADODB.Recordset")
sql = "INSERT INTO BOARD(WRITER, TITLE) VALUES " 
sql = sql & Writer &"' WRITER, '"
sql = sql & Title &"' TITLE)" 

oraRec.Execute sql
%>

 

[출처] m.blog.naver.com/PostView.nhn?blogId=passith&logNo=70150438074&proxyReferer=https:%2F%2Fwww.google.com%2F

+ Recent posts