게시판 본문 ASP, ASP.NET, IIS & Script - Read Only
| ADO 활용할려고 하는데... 이부분에서 막히내요. 가르침을 주세요. ^^; |
|---|
|
작성자: 장윤태
작성일시: 2006-12-15 18:47,
조회수: 5,070
|
|
즐거운 연말 연시 되세요. ㅋㅋ
ADO 활용할려고 하는데... 이부분에서 막히내요. 가르침을 주세요. ^^; 질문 1) 제가 지금까지 발전 시킨 모듈입니다. 성능상 문제가 없을까요?? 참고 : 웹은 아파트 스레드로 되어야 하기에...이러한 식으로 구성했습니다. 질문 2) 클래스를 사용하다보니 메서드의 값을 수정해야 할때가 있습니다. 그래서 시도 해본게... let , get , set 입니다. let , get 은 용도를 알겠는데.. set 은 많이 애매하내요;; 질문 3) 전역변수 Conn 은 let 으로 설정이 가능합니다. 그래서 아래 프로퍼티로 설정했습니다. 그런데 구지 프로퍼티로 안해되 되지않나요? 그냥 sub 이나 function 으로 해도 되지 않는지요? 구지 프로퍼티를 써야 하는지 궁굼해서요. ^^; 본인 생각 : 프로퍼티로 임시적인 설정값을 주어서 메서드 자체가 변하지 않게 하는건가요? 즉 , a 의 인스턴스와 b 의 인스턴스가 다르다 이건가요? 시도 방법 1) DB.letConn= "1" 으로 변경이 되더군요. 전역이라서... 질문 3-1) 제가 let , get , set 문을 제대로 활용 하는건가요? 아니다면 어떻게 해야 할까요? ^^;;;; 제가 질문이 좀 많조 ^^;;;;;; 질문 4) 메서드 안에 있는 개체는 접근이 불가한가요? 개체의 프로퍼티를 조정할려고 하는데... 접근이 안되내요.(자바스크립은 되던데요) :: 시도이유 :: arrTable = DB.usp_RunSQLReturnGR("abc",Param) 하면 어떠한 값이 배열로 받아집니다. 이렇게 하면 받아지는건 되는데... 받는 정보를 변경 할려고 시도 해보았습니다. 시도방법 1 ) let , get , set 으로 되지 않을까 해서 시도 했습니다. 결과 : 메서드 안에 있는 변수는 전역이 아니라 접근이 안되더군요. 혹시 접근 방법이 있을까요? 시도방법 2) DB.usp_RunSQLReturnGR.rs.sort = " idx desc" 이러한 식으로 하니 접근이 안됩니다. 즉 , RS 의 기능을 전혀 활용할수가 없습니다. rs.sort , rs.filter 등등등... rs 뿐만아니라 어떠한 개채이든간에요. CMD등등등요. 어떻게 하면 개체에 접근해서 값을 변경 할수 있을까요? 질문 5) 트랜잭션을 시도 하려합니다. Conn.Open 으로 전역 개체를 생성해서 트랜잭션은 가능할거라 생각이 됩니다. 맞나요?? 시도 방법 1) '트랜잭션 시작 Public Property Let letBeingTrans(argument) Conn.beginTrans() End Property Public Property Set setBeginTrans(argument) Conn.beginTrans() End PropertyDB.letBeingTrans = "" ::: 만약 이줄이 없으면 트랜잭션은 안걸리는거조? arrTable = DB.usp_RunSQLReturnGR("abc",Param) If isEmpty(arrTable) Then DB.letRollBackTrans = "" Else DB.letCommitTrans = "" End if 이러한 식으로 하면 되나요? ^^; 아니면 어떠한 식으로 구현 해야 하나요? ^^; 이러한 식으로 트랜잭션을 걸면 각각의 인스턴스에 트랜잭션이 걸리는게 아니고. let 으로 설정한 구간만 트랜잭션이 걸리는 건가요? 질문 6) set 구문이 이해가 잘 안갑니다. DB.setBeginTrans() 등등을 시도 해도 안되내요??? ^^; ::::::::::::::::::: 현재는 ASP에서 그냥 구현 되는 것입니다. :::::::::::::::: VB에서 라이브러리로 제작하는게 아니라요. ::: 번외 ::: 그동안 알려주신거 가지고 지지고 복고 한것입니다. ^^; 통소스~~ ㅋㅋ 가르침 주시면 감사 하겠습니다. ( ^ ^) ( _ _) :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 클래스 시작 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Class DBProc
Public strConnStr , Conn
Private Sub Class_Initialize()
strConnStr = "Provider=SQLOLEDB.1;Data Source=장윤태;Persist Security Info=True;Initial Catalog=make_board;User id=sa;password=ㅇ"
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open strConnStr
End Sub
Private Sub Class_Terminate()
Conn.Close
Set Conn = Nothing
End Sub
Public Property Let letConn(Mode)
Dim strConnTemp
Select Case Cint(Mode)
case 1 : strConnTemp = "Provider=SQLOLEDB.1;Data Source=장윤태;Persist Security Info=True;Initial Catalog=make_board;User id=sa;password=ㅇ"
case 2 : strConnTemp = "Provider=SQLOLEDB.1;Data Source=장윤태;Persist Security Info=True;Initial Catalog=make_board;User id=sa;password=ㅇ"
case 3 : strConnTemp = "Provider=SQLOLEDB.1;Data Source=장윤태;Persist Security Info=True;Initial Catalog=make_board;User id=sa;password=ㅇ"
case else : strConnTemp = "Provider=SQLOLEDB.1;Data Source=장윤태;Persist Security Info=True;Initial Catalog=make_board;User id=sa;password=ㅇ"
End select
strConnStr = strConnTemp
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open strConnStr
End Property
Public Property Get getConn()
getConn = strConnStr
End Property
Public Property Set setConn(Mode)
'Set strConnStr = Mode
End Property
'트랜잭션 시작
Public Property Let letBeingTrans(argument)
Conn.beginTrans()
End Property
Public Property Set setBeginTrans(argument)
Conn.beginTrans()
End Property
Public Property Let letCommitTrans(argument)
Conn.CommitTrans()
End Property
Public Property Let letRollBackTrans(argument)
Conn.RollbackTrans()
End Property
Function RunSQLReturnGR(strSQL)
On Error Resume Next
Dim Rs , Cmd
Set Rs = Server.CreateObject("ADODB.Recordset")
Set Cmd = Server.CreateObject("ADODB.Command")
Cmd.ActiveConnection = Conn
Cmd.CommandText = strSQL
Cmd.CommandType = adCmdText
Cmd.Prepared = True
Rs.CursorType = adOpenForwardOnly
Rs.CursorLocation = adUseClient
Rs.LockType = adLockReadOnly
Rs.Open Cmd
Dim tempRs
If Not Rs.Eof Then
tempRs = Rs.GetRows()
End if
Rs.Close
Set Rs = Nothing
Set Cmd = Nothing
RunSQLReturnGR = tempRs
If Err.Number <> 0 Then
Call errorLog_write("RunSQLReturnGR",strSQL)
End if
End function
'필드명과 값만확인할대 :: 개발용
Function RunSQLReturnGR_fieldName(strSQL,maxLength)
'On Error Resume Next
Dim Rs , Cmd
Set Rs = Server.CreateObject("ADODB.Recordset")
Set Cmd = Server.CreateObject("ADODB.Command")
Cmd.ActiveConnection = Conn
Cmd.CommandText = strSQL
Cmd.CommandType = adCmdText
Cmd.Prepared = True
Rs.CursorType = adOpenForwardOnly
Rs.CursorLocation = adUseClient
Rs.LockType = adLockReadOnly
Rs.Open Cmd
RunSQLReturnGR_fieldName = Rs_fieldName(Rs,maxLength)
Rs.Close
Set Rs = Nothing
Set Cmd = Nothing
If Err.Number <> 0 Then
Call errorLog_write("RunSQLReturnGR_fieldName",strSQL)
End if
End function
Function RunSQLn(strSQL)
On Error Resume Next
Dim Cmd , LngReg
Set Cmd = Server.CreateObject("ADODB.Command")
LngReg = 0
Cmd.ActiveConnection = Conn
Cmd.CommandText = strSQL
Cmd.CommandType = adCmdText
Cmd.Prepared = True
Cmd.Execute LngReg, , adExecuteNoRecords
RunSQLn = LngReg
Set Cmd = Nothing
If Err.Number <> 0 Then
Call errorLog_write("RunSQLN",strSQL)
End if
End function
Function usp_RunSQLReturnGR(strSPName, Params())
On Error Resume Next
Dim Cmd , Rs
Set Cmd = Server.CreateObject("ADODB.Command")
Set Rs = Server.CreateObject("ADODB.Recordset")
Cmd.ActiveConnection = Conn
Cmd.CommandType = adCmdStoredProc
Cmd.CommandText = strSPName
Cmd.Prepared = True
Dim Param , i
i = 0
For Each Param In Cmd.Parameters
If Param.name <> "@RETURN_VALUE" Then
Param.value = Params(i)
i = i + 1
End if
Next
Rs.CursorType = adOpenForwardOnly
Rs.CursorLocation = adUseClient
Rs.LockType = adLockReadOnly
Rs.Open Cmd
Dim tempRs
If RsState(Rs.State) <> adStateClosed Then
If Not Rs.Eof Then
tempRs = Rs.GetRows()
End if
Rs.Close
End if
Set Rs = Nothing
Set Cmd = Nothing
usp_RunSQLReturnGR = tempRs
If Err.Number <> 0 Then
Call errorLog_write("usp_RunSQLReturnGR",strSPName)
End if
End function
'필드명과 값만확인할대 :: 개발용
Function usp_RunSQLReturnGR_fieldName(strSPName, Params(), maxLength)
On Error Resume Next
Dim Cmd , Rs
Set Cmd = Server.CreateObject("ADODB.Command")
Set Rs = Server.CreateObject("ADODB.Recordset")
Cmd.ActiveConnection = Conn
Cmd.CommandType = adCmdStoredProc
Cmd.CommandText = strSPName
Cmd.Prepared = True
Dim Param , i
i = 0
For Each Param In Cmd.Parameters
If Param.name <> "@RETURN_VALUE" Then
Param.value = Params(i)
i = i + 1
End if
Next
Rs.CursorType = adOpenForwardOnly
Rs.CursorLocation = adUseClient
Rs.LockType = adLockReadOnly
Rs.Open Cmd
If maxLength = true Or maxLength = false Then
Call viewParam(Cmd,maxLength)
End if
Set Cmd = Nothing
If Err.Number <> 0 Then
Call errorLog_write("usp_RunSQLReturnGR_fieldName",strSPName)
End if
End function
Function usp_RunSQLN(strSPName,Params())
On Error Resume Next
Dim Cmd
Set Cmd = Server.CreateObject("ADODB.Command")
Cmd.ActiveConnection = Conn
Cmd.CommandType = adCmdStoredProc
Cmd.CommandText = strSPName
Cmd.Prepared = True
Dim Param , LngReg , i
i = 0
'Cmd.Parameters.Append Cmd.CreateParameter(param.Name,param.Direction,param.Type,param.Precision,param.Size,param.Value)
For Each Param In Cmd.Parameters
if Param.name <> "@RETURN_VALUE" Then
Param.value = Params(i)
i = i + 1
End if
Next
Cmd.Execute LngReg, , adExecuteNoRecords
Set Cmd = Nothing
usp_RunSQLN = LngReg
If Err.Number <> 0 Then
Call errorLog_write("usp_RunSQLN",strSPName)
End if
End function
Function usp_OUTPUT(strSPName,Params(),byRef outPutParams())
On Error Resume Next
Dim Cmd , Rs
Set Cmd = Server.CreateObject("ADODB.Command")
Set Rs = Server.CreateObject("ADODB.RecordSet")
Cmd.ActiveConnection = Conn
Cmd.CommandType = adCmdStoredProc
Cmd.CommandText = strSPName
Cmd.Prepared = True
Redim strOutputParamName(Cmd.Parameters.Count)
Dim Param , i , j
i = 0 : j = 0
For Each Param In Cmd.Parameters
If Param.Name <> "@RETURN_VALUE" Then
If (GetParameterDirectionEnum(Param.Direction) = "adParamOutput") OR (GetParameterDirectionEnum(Param.Direction) = "adParamInputOutput") Then
strOutputParamName(j) = Param.Name
j = j + 1
Else
Param.Value = Params(i)
i = i + 1
End if
End if
Next
Rs.CursorType = adOpenForwardOnly
Rs.CursorLocation = adUseClient
Rs.LockType = adLockReadOnly
Rs.Open Cmd
Dim tempRs
If RsState(Rs.State) <> adStateClosed Then
If Not Rs.Eof Then
tempRs = Rs.GetRows()
End if
Rs.Close
End if
Set Rs = Nothing
For j = 0 To j - 1
outPutParams(j) = Cmd.Parameters(strOutputParamName(j)).Value
Next
Set Cmd = Nothing
usp_OUTPUT = tempRs
If Err.Number <> 0 Then
Call errorLog_write("usp_OUTPUT",strSPName)
End if
End function
'필드명과 값만확인할대 :: 개발용
Function usp_OUTPUT_fieldName(strSPName,Params(),byRef outPutParams(),maxLength)
On Error Resume Next
Dim Cmd , Rs
Set Cmd = Server.CreateObject("ADODB.Command")
Set Rs = Server.CreateObject("ADODB.RecordSet")
Cmd.ActiveConnection = Conn
Cmd.CommandType = adCmdStoredProc
Cmd.CommandText = strSPName
Cmd.Prepared = True
Redim strOutputParamName(Cmd.Parameters.Count)
Dim Param , i , j
i = 0 : j = 0
For Each Param In Cmd.Parameters
If Param.Name <> "@RETURN_VALUE" Then
If (GetParameterDirectionEnum(Param.Direction) = "adParamOutput") OR (GetParameterDirectionEnum(Param.Direction) = "adParamInputOutput") Then
strOutputParamName(j) = Param.Name
j = j + 1
Else
Param.Value = Params(i)
i = i + 1
End if
End if
Next
Rs.CursorType = adOpenForwardOnly
Rs.CursorLocation = adUseClient
Rs.LockType = adLockReadOnly
Rs.Open Cmd
If maxLength = true Or maxLength = false Then
Call viewParam(Cmd,maxLength)
End if
For j = 0 To j - 1
outPutParams(j) = Cmd.Parameters(strOutputParamName(j)).Value
Next
Set Cmd = Nothing
If Err.Number <> 0 Then
Call errorLog_write("usp_OUTPUT_fieldName",strSPName)
End if
End function
'레코드셋 필드명과 내용함께 출력하기(아웃풋용) :: 개발용
Sub viewParam(byref objCmd,maxLength)
Redim strOutputParamName(objCmd.Parameters.Count) , execStr(objCmd.Parameters.Count)
Dim Param , i , j
i = 0 : j = 0
If maxLength = true Or maxLength = false Then
Response.Write "<table border=1><tr><td><b>속성</b></td><td><b>값</b></td><td><b>사이즈</b></td><td><b>입력타입</b></td><td><b>변수타입</b></td><td><b>정밀도</b></td></tr>"
For Each Param In objCmd.Parameters
If Param.Name <> "@RETURN_VALUE" Then
If (GetParameterDirectionEnum(Param.Direction) = "adParamOutput") OR (GetParameterDirectionEnum(Param.Direction) = "adParamInputOutput") Then
strOutputParamName(j) = Param.Name
execStr(i) = "''"
j = j + 1
Else
execStr(i) = "'"& Param.Value &"'"
Response.Write "<tr><td><font color=orange>"& i &"번째 "& Param.name &"</font></td><td>"& Param.Value &"</td><td>"& Param.Size &"</td><td>"& GetParameterDirectionEnum(Param.Direction) &"</td><td>"& GetDataTypeEnum(Param.Type) &"</td><td>"& Param.Precision &"</td></tr>"
End if
i = i + 1
End if
Next
Response.Write "<tr><td colspan=6><font color=red><b>아웃풋</b></font></td>"
For j = 0 To j - 1
Response.Write "<tr><td><font color=orange>"& j &"번째 "& strOutputParamName(j) &"</font></td><td>"& objCmd.Parameters(strOutputParamName(j)).Value &"</td><td>"& objCmd.Parameters(strOutputParamName(j)).Size &"</td><td>"& GetParameterDirectionEnum(objCmd.Parameters(strOutputParamName(j)).Direction) &"</td><td>"& GetDataTypeEnum(objCmd.Parameters(strOutputParamName(j)).Type) &"</td><td>"& objCmd.Parameters(strOutputParamName(j)).Precision &"</td></tr>"
Next
Response.Write "<tr><td colspan=6><font color=red><b>프로시저 실행문</b></font></td></tr>"
Response.Write "<tr><td colspan=6><font color=orange>Exec "& Mid(objCmd.CommandText, Instr(objCmd.CommandText,"call ")+5 , Instr(objCmd.CommandText,"(") - (Instr(objCmd.CommandText,"call ")+5) ) &"</font> "& arrFormat(execStr,","," ") &"</td></tr>"
Response.Write "</table><br>"
End if
Dim Rs
Set Rs = Server.CreateObject("ADODB.RecordSet")
Rs.CursorType = adOpenForwardOnly
Rs.CursorLocation = adUseClient
Rs.LockType = adLockReadOnly
Rs.Open objCmd
Dim tempRs
If RsState(Rs.State) <> adStateClosed Then
If Not Rs.Eof Then
Response.Write Rs_fieldName(Rs,maxLength)
End if
Rs.Close
End if
Set Rs = Nothing
End Sub
'레코드셋 필드명과 내용함께 출력하기 :: 개발용
Function Rs_fieldName(byref objRecordSet , maxLength)
Dim Field , tempStr , i , j , k
If maxLength = false Then
Exit function
End if
tempStr = "<table border=1><tr>"
i = 0 : j = 0 : k = 0
For Each Field in objRecordSet.Fields
tempStr = tempStr &"<td><b>"& Field.name &"</b><br><font color=red>"& i &"열</font></td>"
i = i + 1
Next
tempStr = tempStr &"</tr>"
Do Until objRecordSet.Eof
tempStr = tempStr &"<tr>"
For Each Field in objRecordSet.Fields
tempStr = tempStr &"<td valign=top><font color=orange>"& j &"행 "& k &"열</font><br><br>"& Field &"</td>"
k = k + 1
next
tempStr = tempStr &"</tr>"
objRecordSet.MoveNext
j = j + 1
k = 0
If isNumeric(maxLength) Then
If Cint(j) = Cint(maxLength) Then Exit do
End if
Loop
tempStr = tempStr &"</table>"
Rs_fieldName = tempStr
End function
Function RsState(intState)
Select Case intState
Case 0 : RsState = adStateClosed
Case 1 : RsState = adStateOpen
Case 2 : RsState = adStateConnecting
Case 4 : RsState = adStateExecuting
Case 8 : RsState = adStateFetching
End Select
End Function
Function GetParameterDirectionEnum(Direction)
Select Case Direction
Case 0 : GetParameterDirectionEnum = "adParamUnknown"
Case 1 : GetParameterDirectionEnum = "adParamInput"
Case 2 : GetParameterDirectionEnum = "adParamOutput"
Case 3 : GetParameterDirectionEnum = "adParamInputOutput"
Case 4 : GetParameterDirectionEnum = "adParamReturnValue"
Case Else : GetParameterDirectionEnum = "<B>인풋,아웃풋,리턴인지 알수 없습니다. 프로시저를 확인해 주세요</B>"
End Select
End function
Function GetDataTypeEnum(TypeEnum)
Select Case TypeEnum
Case 0: GetDataTypeEnum = "adEmpty"
Case 2: GetDataTypeEnum = "adSmallInt"
Case 3: GetDataTypeEnum = "adInteger"
Case 4: GetDataTypeEnum = "adSingle"
Case 5: GetDataTypeEnum = "adDouble"
Case 6: GetDataTypeEnum = "adCurrency"
Case 7: GetDataTypeEnum = "adDate"
Case 8: GetDataTypeEnum = "adBSTR"
Case 9: GetDataTypeEnum = "adIDispatch"
Case 10: GetDataTypeEnum = "adError"
Case 11: GetDataTypeEnum = "adBoolean"
Case 12: GetDataTypeEnum = "adVariant"
Case 13: GetDataTypeEnum = "adIUnknown"
Case 14: GetDataTypeEnum = "adDecimal"
Case 16: GetDataTypeEnum = "adTinyInt"
Case 17: GetDataTypeEnum = "adUnsignedTinyInt"
Case 18: GetDataTypeEnum = "adUnsignedSmallInt"
Case 19: GetDataTypeEnum = "adUnsignedInt"
Case 20: GetDataTypeEnum = "adBigInt"
Case 21: GetDataTypeEnum = "adUnsignedBigInt"
Case 64: GetDataTypeEnum = "adFileTime"
Case 72: GetDataTypeEnum = "adGUID"
Case 128: GetDataTypeEnum = "adBinary"
Case 129: GetDataTypeEnum = "adChar"
Case 130: GetDataTypeEnum = "adWChar"
Case 131: GetDataTypeEnum = "adNumeric"
Case 132: GetDataTypeEnum = "adUserDefined"
Case 133: GetDataTypeEnum = "adDBDate"
Case 134: GetDataTypeEnum = "adDBTime"
Case 135: GetDataTypeEnum = "adDBTimeStamp"
Case 136: GetDataTypeEnum = "adChapter"
Case 138: GetDataTypeEnum = "adPropVariant"
Case 139: GetDataTypeEnum = "adVarNumeric"
Case 200: GetDataTypeEnum = "adVarChar"
Case 201: GetDataTypeEnum = "adLongVarChar"
Case 202: GetDataTypeEnum = "adVarWChar"
Case 203: GetDataTypeEnum = "adLongVarWChar"
Case 204: GetDataTypeEnum = "adVarBinary"
Case 205: GetDataTypeEnum = "adLongVarBinary"
Case 8192 : GetDataTypeEnum = "adArray"
Case Else: GetDataTypeEnum = "<b>변수 타입을 알수 없습니다. 프로시저를 확인해 주세요</b>"
End Select
End function
'===== 빈값표현 =====
Function isEmpty_(Value)
If isArray(Value) AND Not isEmpty(Value) Then '배열이면서 빈값이 아니면
isEmpty_ = False
Exit function
Else
isEmpty_ = True
End if
If isEmpty(Value) OR isNull(Value) OR Value = "" Then
isEmpty_ = True
Else
isEmpty_ = False
End if
End function
Sub RW(Value,Value1)
If isEmpty_(Value) Then Value = Empty End if
If isEmpty_(Value1) Then Value1 = Empty End if
Response.Write "<font color=red>[값1] </font>"& Value &" <font color=red>[변수타입] </font> : "& TypeName(Value) &"<br><font color=red>[값2] </font>"& Value1 &" <font color=red>[변수타입] </font> "& TypeName(Value1) & "<br><br><br>"
End sub
Sub RWE(Value,Value1)
If isEmpty_(Value) Then Value = Empty End if
If isEmpty_(Value1) Then Value1 = Empty End if
Response.Write "<font color=red>[값1] </font>"& Value &" <font color=red>[변수타입] </font> : "& TypeName(Value) &"<br><font color=red>[값2] </font>"& Value1 &" <font color=red>[변수타입] </font> "& TypeName(Value1) & "<br><br><br>"
Response.End()
End sub
Function DB_In(Value)
If Not isEmpty_(Value) Then
Value = Replace(Value, "'", "''") '검색조건때문에 입력이 동일 해야 함...
Value = Replace(Value, "<xmp>", "")
' If isNumeric(Value) Then '일반쿼리문 쓸때 문제
' End if
DB_In = Trim(Value)
Else
DB_In = Empty '함수에 값반환 안해서 빈값으로 지정
End if
End Function
Function DB_Out(Value,HTML_Ox)
Value = Replace(Value, "''", "'")
If HTML_Ox = 0 Then 'Text = 0
Value = Replace(Value, "<" , "<")
Value = Replace(Value, ">" , ">")
Value = Replace(Value, Chr(13), "<br>") '줄바꿈
Value = Replace(Value, Chr(32), " ") '공백(스페이스)
Value = Replace(Value, """", """) '" => 는 문자를 가두는 거라서
Else 'HTML = 1 true
Value = Replace(Value, " ", Chr(32)) '공백(스페이스)
Value = Replace(Value, """", """) '" => 는 문자를 가두는 거라서
End if
DB_Out = Trim(Value)
End Function
Sub errorLog_write( Func_Name , SQL)
Dim errorInfo
errorInfo = "<font color=darkblue size=2><b>DataBase Process Class Module - COM</b></font><br>"
errorInfo = errorInfo &"<font color=darkblue size=2><b>Developer.</b> 장윤태 [terran_no_1@hanmail.net] </font><br><br>"
errorInfo = errorInfo &"<font color=#333333 size=2></b>[Function Name : "& Func_Name &"]</b></font><br><br>"
errorInfo = errorInfo &"<font color=red>Error Num </font><br>"& Err.Number &"<br><br><font color=red>Helpfile </font><br>"& Err.Helpfile &"<br><br><font color=red>Err Source </font><br>"& Err.Source &"<br><br><font color=red>Err Description </font><br>"& Err.Description &"<br><br>"
errorInfo = errorInfo &"<font color=red> SQL </font><br>" & SQL & "<br><br><br><br><br>"
Err.Clear
Response.Write errorInfo
errorLog_toFile(errorInfo)
End Sub
Sub errorLog_toFile(errorContents)
Dim Today , folder , filePath , Fso , logFile
Today = Replace(DateValue(Now()),"-","")
folder = "c:\webErrorLog"
filePath = folder &"\"& Today &".log"
Set Fso = CreateObject("Scripting.FileSystemObject")
If Fso.FolderExists(folder) Then
If Fso.FileExists(filePath) Then
Set logFile = Fso.OpenTextFile(filePath,8)
Else
Set logFile = Fso.CreateTextFile(filePath,True)
End if
Else
Dim CF
Set CF = Fso.CreateFolder(folder)
If Fso.FileExists(filePath) Then
Set logFile = Fso.OpenTextFile(filePath,8)
Else
Set logFile = Fso.CreateTextFile(filePath,True)
End if
Set CF = Nothing
End if
logFile.writeLine(Now() &" = "& errorContents)
logFile.Close
Set Fso = Nothing
End Sub
End Class
|
|
IP 주소: 211.187.147.60
|
|
게시물 | |||
|---|---|---|---|---|
| 1,612 |
이영주 |
2007-01-09 | 1,182 | |
| 1,611 | 2007-01-10 | 3,801 | ||
| 1,610 |
이영주 |
2007-01-08 | 12,464 | |
| 1,609 | 2007-01-05 | 4,917 | ||
| 1,608 | 2007-01-08 | 3,851 | ||
| 1,607 | 2007-01-08 | 3,666 | ||
| 1,606 | 2007-01-08 | 3,913 | ||
| 1,605 |
윈도우 2000 서버에 Dextupload 2.0을 이용하여 file server로 SaveAsVirtual method를 이용하여 업로드를 구현 시 문제 좀 도와주세요~~ ^^ |
Feel~ |
2006-12-21 | 1,476 |
| 1,604 |
|
2006-12-21 | 4,033 | |
| 1,603 |
|
Feel~ |
2006-12-30 | 1,234 |
| 1,602 |
|
2006-12-31 | 4,941 | |
| 2006-12-15 | 5,070 | |||
| 1,600 | 2006-12-16 | 4,117 | ||
| 1,599 | 2006-12-13 | 3,929 | ||
| 1,598 | 2006-12-13 | 3,850 | ||
| 1,597 | 2006-12-13 | 3,990 | ||
| 1,596 | 2006-12-13 | 3,882 | ||
| 1,595 | 2006-12-04 | 3,841 | ||
| 1,594 |
|
2006-12-05 | 4,454 | |
| 1,593 |
질문자 |
2006-11-02 | 1,286 | |
| 1,592 | 2006-11-02 | 3,896 | ||
| 1,591 |
질문 |
2006-10-24 | 1,365 | |
| 1,590 | 2006-10-24 | 4,934 | ||
| 1,589 |
웹에서 엑셀데이타 다루기 [1] |
2006-10-23 | 4,775 | |
| 1,588 | 2006-10-23 | 5,252 |

sign in
join
re: DB 내용을 자바스크립트로.. 아래 질문 추가입니다.. 도움좀..