반응형


asp에서 보통 디비 연결할때 대충 요런식으로 많이들 쓰져..


conn.asp


set conn = Server.CreateObject("ADODB.Connection")

dbstr = "PROVIDER=SQLOLEDB;DATA SOURCE=sqlservername;UID=username;PWD=password;DATABASE=mydatabase"

conn.open dbstr




근데 요렇게 쓰지 말구 함수를 만들어서 쓰는 방법을 권장해 드립니다.


conn.asp


set conn = Server.CreateObject("ADODB.Connection")

dbstr = "PROVIDER=SQLOLEDB;DATA SOURCE=sqlservername;UID=username;PWD=password;DATABASE=mydatabase"


'객체 열기

Sub DbOpen()

If isobject(objCon) Then          '객체 존재여부 체크

Else

objCon.Open (dbstr)

End If

End Sub


'객체닫기

Sub DbClose()

If isobject(objCon) Then          '객체가 존재하면 닫기

objCon.close

Set objCon = Nothing

End If

End Sub



index.asp


<!--#Include Virtual = "conn.asp" -->

<%

Call DbOpen()

'디비작업....

...


%>

<html>

<head>...</head>

<body>...</body>

</html>

<%

Call DbClose()

%>



요렇게 하면 중간 중간 include 파일들에 Call DbOpen() 이나 Call DbClose() 가 중복이 돼도 에러가 안나요~


그런데 만약에 객체로 이미 지정이 되어있는 다음과 같은 경우!

objCon 자체가 이미 object 로 선언을 했기때문에 이 경우에는 state 를 이용해서 객체 상태를 체크하는 방법으로 사용해야합니다.


conn.asp


<object runat="Server" PROGID="ADODB.Connection" Id="objCon" VIEWASTEXT></object

....

<%

'객체 열기

Sub DbOpen()

If objCon.state = 0 Then          'state 를 이용

objCon.Open (objCn_Str)

End If

End Sub

'객체닫기

Sub DbClose()

If objCon.state = 1 Then

objCon.close

End If

End Sub

%>



반응형

+ Recent posts