본문 바로가기
Programming

[ASP] 강좌#2. db connection class 만들기

by BitSense 2009. 2. 24.
반응형
강좌라고 하기에는 어쩐지 부끄러운 내용일 것 같습니다만.. ^^;;

디자인 분리를 위해서 기초작업을 하도록 하겠습니다.

보통 일반적으로 asp 에서는 function을 사용해서 기능을 정리할 것입니다.
하지만 저는 function 대신에 재사용성을 고려해 대부분의 기능을 class화 하여 정리해서 사용하겠습니다. 살짝 OOP(객체 지향) 흉내도 낼 겸이요.. ^^:;

그 1차 관문!!
기본인 db connection class를 만들어 보도록 하겠습니다.

공용파일의 lib 디렉토리 위치는
/wwwroot/_CMS/lib/common/
입니다.

파일명은 dbConn.asp로 하겠습니다.

<% 
Class dbConn
    Private objConn 'as ADODB.Connection
    Public connString
    
    dim DBHost, DBName, DBUser, DBPass
 
    '클래스 생성자
    Sub Class_Initialize()
        Set objConn = Nothing
        
        DBHost = "localhost"
        DBName = "public"
        DBUser = "test"
        DBPass = "test"
        
        connString = "Provider=SQLOLEDB.1;Password=" & DBPass & ";Persist Security Info=False;User ID=" & DBUser & ";Initial Catalog=" & DBName & ";Data Source=" & DBHost
    End Sub
 
    '클래스 소멸자
    Sub Class_Terminate
        Set objConn = Nothing
    End Sub
 
    'Connection 프로퍼티 Get
     Public Property Get Connection() 'as ADODB.Connection
         If objConn Is Nothing Then
             Set objConn = Server.CreateObject("ADODB.Connection")
             objConn.Open connString
         End If

         Set Connection = objConn
     End Property


     '레코드셋 질의
     Public Function ExecuteQuery(strSQL) 'as ADODB.Recordset
        Dim objRs 'as ADODB.Recordset
        Set objRs = Server.CreateObject("ADODB.Recordset")

        
        On Error Resume Next

        objRs.CursorLocation = 3 
        objRs.Open strSQL, Me.Connection, 0

        If Err.Number <> 0 Then
            Response.Write "<b>데이터베이스 에러</b> (ExecuteQuery)<br>" & _
                "질의어 : " & strSQL & _
                Err.Description

            objRs.Close
            Set objRs = Nothing
            Me.Close
            Response.End
        End If

  
        On Error GoTo 0

        Set ExecuteQuery = objRs
    End Function
 
    '업데이트 질의
    Public Sub ExecuteCommand(strSQL)
        On Error Resume Next
  
        Me.Connection.Execute strSQL
  
        If Err.Number <> 0 Then
            Response.Write "<b>데이터베이스 에러</b> (ExecuteCommand)<br>" & _
                "질의어 : " & strSQL & _
                Err.Description
            Response.End
            Me.Close
        End If
   
        On Error GoTo 0
  
    End Sub

    
    '데이터베이스 연결 닫기
    Public Sub Close()
       Set objConn = Nothing
    End Sub
End Class
%> 

DB Connection을 사용해 보셨다면 위 클래스의 구조는 익히 아실 것이라고 봅니다.
Class의 생성자와 소멸자, 그리고 Public Property Get 으로 ADODB.connection 객체 정보를 받아오는 부분도 눈여겨 보실만 할겁니다.

사용 샘플 소스는 아래와 같습니다.

<!-- #include virtual="/_CMS/lib/common/dbConn.asp" -->
<%
Set oDB = new dbConn

getQuery = "" &_
   "select * " &_
   "from ps_member " &_
   "order by " &_
   "  mem_id"
Set rs = oDB.ExecuteQuery(query)

Do While Not rs.EOF
   ...
Loop

oDB.Close
%>

이상입니다.. 쉽죠잉?? ^^;;

반응형