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 %> |