반응형
강좌라고 하기에는 어쩐지 부끄러운 내용일 것 같습니다만.. ^^;;
디자인 분리를 위해서 기초작업을 하도록 하겠습니다.
보통 일반적으로 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 %>
이상입니다.. 쉽죠잉?? ^^;;
반응형