게시판 본문 ASP, ASP.NET, IIS & Script - Read Only

ADO 활용할려고 하는데... 이부분에서 막히내요. 가르침을 주세요. ^^;
작성자: 장윤태
작성일시: 2006-12-15 18:47,  조회수: 4,379
즐거운 연말 연시 되세요. ㅋㅋ

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 Property
DB.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
전체 2,095 건의 게시물, 84 페이지로 구성된 ASP, ASP.NET, IIS & Script 게시판의 22 페이지입니다.
게시물
1,612

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

이영주

2007-01-09 1,182
1,611

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

송원석

2007-01-10 3,175
1,610

ASP로 트리구조 만들고 있습니다. 질문좀.. [3]

이영주

2007-01-08 12,464
1,609

페이지 UI 구성 문제입니다. 효율적인 UI 인데.. 딱 한가지가 걸리내요;;

장윤태

2007-01-05 4,243
1,608

re: 페이지 UI 구성 문제입니다. 효율적인 UI 인데.. 딱 한가지가 걸리내요;; [1]

송원석

2007-01-08 3,233
1,607

혹시 어떠한 UI 구성을 사용하시는지요? 모든 파일별로

장윤태

2007-01-08 3,059
1,606

re: 혹시 어떠한 UI 구성을 사용하시는지요? 모든 파일별로 [8]

송원석

2007-01-08 3,256
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,421
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,264

ADO 활용할려고 하는데... 이부분에서 막히내요. 가르침을 주세요. ^^;

장윤태

2006-12-15 4,379
1,600

re: ADO 활용할려고 하는데... 이부분에서 막히내요. 가르침을 주세요. ^^; [2]

송원석

2006-12-16 3,508
1,599

특정 파일이 다운로드 안되는 이유

박우문

2006-12-13 3,311
1,598

re: 특정 파일이 다운로드 안되는 이유

송원석

2006-12-13 3,247
1,597

re: 특정 파일이 다운로드 안되는 이유

박우문

2006-12-13 3,367
1,596

re: 특정 파일이 다운로드 안되는 이유

송원석

2006-12-13 3,264
1,595

UTF형식의 파일 저장

이길용

2006-12-04 3,215
1,594

re: UTF형식의 파일 저장 [3]

송원석

2006-12-05 3,734
1,593

데이터 손실 문제

질문자

2006-11-02 1,286
1,592

re: 데이터 손실 문제

송원석

2006-11-02 3,267
1,591

파일업로드시 로딩효과에 대해

질문

2006-10-24 1,365
1,590

re: 파일업로드시 로딩효과에 대해 [3]

송원석

2006-10-24 4,284
1,589

웹에서 엑셀데이타 다루기 [1]

몽중인

2006-10-23 4,135
1,588

re: 웹에서 엑셀데이타 다루기

송원석

2006-10-23 4,572