게시판 본문 ASP, ASP.NET, IIS & Script - Read Only
ADO 활용할려고 하는데... 이부분에서 막히내요. 가르침을 주세요. ^^; |
---|
작성자: 장윤태
작성일시: 2006-12-15 18:47,
조회수: 4,586
|
즐거운 연말 연시 되세요. ㅋㅋ
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,361 | ||
1,610 |
이영주 |
2007-01-08 | 12,464 | |
1,609 | 2007-01-05 | 4,461 | ||
1,608 | 2007-01-08 | 3,426 | ||
1,607 | 2007-01-08 | 3,232 | ||
1,606 | 2007-01-08 | 3,441 | ||
1,605 |
윈도우 2000 서버에 Dextupload 2.0을 이용하여 file server로 SaveAsVirtual method를 이용하여 업로드를 구현 시 문제 좀 도와주세요~~ ^^ |
Feel~ |
2006-12-21 | 1,476 |
1,604 |
re: 윈도우 2000 서버에 Dextupload 2.0을 이용하여 file server로 SaveAsVirtual method를 이용하여 업로드를 구현 시 문제 좀 도와주세요~~ |
2006-12-21 | 3,614 | |
1,603 |
re: 윈도우 2000 서버에 Dextupload 2.0을 이용하여 file server로 SaveAsVirtual method를 이용하여 업로드를 구현 시 문제 좀 도와주세요~~ |
Feel~ |
2006-12-30 | 1,234 |
1,602 |
re: 윈도우 2000 서버에 Dextupload 2.0을 이용하여 file server로 SaveAsVirtual method를 이용하여 업로드를 구현 시 문제 좀 도와주세요~~ [1] |
2006-12-31 | 4,475 | |
2006-12-15 | 4,586 | |||
1,600 | 2006-12-16 | 3,698 | ||
1,599 | 2006-12-13 | 3,487 | ||
1,598 | 2006-12-13 | 3,422 | ||
1,597 | 2006-12-13 | 3,551 | ||
1,596 | 2006-12-13 | 3,455 | ||
1,595 | 2006-12-04 | 3,405 | ||
1,594 |
re: UTF형식의 파일 저장 [3] |
2006-12-05 | 3,926 | |
1,593 |
질문자 |
2006-11-02 | 1,286 | |
1,592 | 2006-11-02 | 3,454 | ||
1,591 |
질문 |
2006-10-24 | 1,365 | |
1,590 | 2006-10-24 | 4,478 | ||
1,589 |
웹에서 엑셀데이타 다루기 [1] |
2006-10-23 | 4,321 | |
1,588 | 2006-10-23 | 4,779 |