티스토리 뷰

💼 정보 ver1.0

asp 클래스 선언 및 사용법

James Wetzel 2016. 3. 29. 16:33

<%

    Class MsSQL        

        

        '생성자

        Private Sub Class_Initialize()

            

        END Sub

        

        

        '소멸자

        Private Sub Class_Terminate()

            

        END Sub

        

        

        'Command 실행

        'return : 영향을 받은 rows 수 

        '         영향을 받은 rows 수가 없다면 -1

        Public Function executeCommandInput(ByVal connectionString, ByVal storedProcedure, ByVal arrParams)

            

            Dim connectionCommand

            Set connectionCommand = Server.CreateObject("ADODB.Connection")

            connectionCommand.Open connectionString

            

            Dim command

            Set command = Server.CreateObject("ADODB.Command")            

            

       command.ActiveConnection = connectionCommand

       command.CommandText = storedProcedure

       command.CommandType = adCmdStoredProc        

       

       Set command = collectParams(command, arrParams)

       Dim queryResult : queryResult = empty

       command.Execute queryResult, , adExecuteNoRecords

       

       executeCommand = queryResult

       

       If Not connectionCommand Is Nothing Then

   If connectionCommand.State = adStateOpen Then connectionCommand.Close

   Set connectionCommand = Nothing

   End If        

   

   If Not command Is Nothing Then

   If command.State = adStateOpen Then command.Close

   Set command.ActiveConnection = Nothing

           Set command = Nothing

   End If


        End Function

        

        

        'Command 실행

        'return : 영향을 받은 rows 수 

        '         영향을 받은 rows 수가 없다면 -1

        'outputParameter : 쿼리문 실행시 output으로 설정한 값(ex : outputParameter.Parameters(3).Value)

        Public Function executeCommandInputOutput(ByVal connectionString, ByVal storedProcedure, ByVal arrParams, ByRef outputParameter)

            

            Dim connectionCommand

            Set connectionCommand = Server.CreateObject("ADODB.Connection")

            connectionCommand.Open connectionString

            

            Dim command

            Set command = Server.CreateObject("ADODB.Command")            

            

       command.ActiveConnection = connectionCommand

       command.CommandText = storedProcedure

       command.CommandType = adCmdStoredProc        

       

       Set command = collectParams(command, arrParams)

       Dim queryResult : queryResult = empty

       command.Execute queryResult, , adExecuteNoRecords

       

       set outputParameter = command        

       executeCommandInputOutput = queryResult

       

       If Not connectionCommand Is Nothing Then

   If connectionCommand.State = adStateOpen Then connectionCommand.Close

   Set connectionCommand = Nothing

   End If        

   

   If Not command Is Nothing Then

   If command.State = adStateOpen Then command.Close

   Set command.ActiveConnection = Nothing

           Set command = Nothing

   End If


        End Function

        

        

        'RecordSet 실행

        'return : Array

        Public Function executeRecordSetArray(connectionString, storedProcedure)

            

            Dim connectionRecordSet : connectionRecordSet = empty

            Dim recoredSet : recoredSet = empty

            

            Set connectionRecordSet = Server.CreateObject("ADODB.Connection")

            connectionRecordSet.Open connectionString

            

            Set recoredSet = Server.CreateObject("ADODB.RecordSet")

            recoredSet.Open storedProcedure, connectionRecordSet

            

            if recoredSet.State = adStateOpen then

                if not (recoredSet.bof or recoredSet.eof) then

                    executeRecordSetArray = recoredSet.GetRows(-1)

                end if

            else

                executeRecordSetArray = empty

            end if

            

            If Not connectionRecordSet Is Nothing Then

   If connectionRecordSet.State = adStateOpen Then connectionRecordSet.Close

   Set connectionRecordSet = Nothing

   End If        

   

   If Not recoredSet Is Nothing Then

   If recoredSet.State = adStateOpen Then recoredSet.Close

   Set recoredSet = Nothing

   End If            

            

       '실행 결과 출력 샘플 - 단수

       'if (IsArray(recordSetArray)) then 

            '    Response.Write recordSetArray(0, 0)

            'end if

       

       '실행 결과 출력 샘플 - 복수

       'if (IsArray(recordSetArray)) then 

            '    Dim iCnt : iCnt = 0

' Do While(iCnt <= UBound(recordSetArray,2))

' Response.Write recordSetArray(0, iCnt)

' iCnt = iCnt + 1

' Loop 

            'end if

            

        End Function

        

        

        '파라미터 파싱

        Private Function collectParams(ByRef Cmd, ByRef arrParams)

   Dim f

   Dim startPos, endPos

   Dim value


   If IsArray(arrParams) Then

   startPos = LBound(arrParams)

   endPos = UBound(arrParams)


   For f = startPos To endPos

   If IsArray(arrParams(f)) Then

   If UBound(arrParams(f)) = 4 Then

   If VarType(arrParams(f)(4)) = vbString Then

   If arrParams(f)(4) = "" Then

   value = Null

   Else

   value = Replace(Replace(Replace(Replace(Replace(arrParams(f)(4) _

   , "&#39;" , "'") _

   , "&quot;" , """") _

   , "&gt;" , ">") _

   , "&lt;" , "<") _

   , "&amp;" , "&")

   End If

   Else

   value = arrParams(f)(4)

   End If


   If Not IsNull(value) Then

   Select Case arrParams(f)(1)

   Case adChar, adVarchar

   If Len(value) > arrParams(f)(3) Then value = Left(value, arrParams(f)(3))

   Case adInteger

   If CDbl(value) > 2147483647 Then value = 0

   Case adBigInt

   If CDbl(value) > 9223372036854775807 Then value = 0

   End Select

   End If


   Cmd.Parameters.Append Cmd.CreateParameter(arrParams(f)(0), arrParams(f)(1), arrParams(f)(2), arrParams(f)(3), value)

   End If

       End If

       Next


       Set collectParams = Cmd

       Exit Function

       Else

       Set collectParams = Cmd

       End If

        End Function    

        

        

        '클래스 해제

        Public Sub CloseClass(instances)

       If Not instances Is Nothing Then Set instances = Nothing

        End Sub

        

    End Class

%>



<!--#include virtual="config/config.asp"//-->
<!--#include virtual="common/classes/class.MsSQL.asp"//-->

 
<%
    ' MsSQL 인스턴스 생성
    Dim MsSqlClass : MsSqlClass = empty
    Set MsSqlClass = new MsSQL
    
    
    
    ' 추천코드를 등록한다.
    Sub InsertRecommendationCode(ByVal userID, ByVal recommendationCode, ByVal registrationDate, Byval result)
    
        Dim jsonData
        Set jsonData = Server.CreateObject("Scripting.Dictionary")
        jsonData.Add "Result", false
        jsonData.Add "ResultCode", ""
        
        ' 로그인 상태 확인
        if IsLogin() = false then
            jsonData.Item("Result") = false
            jsonData.Item("ResultCode") = "M0001"
            
            Response.Write("{""Result"" : """& jsonData.Item("Result") &""", ""ResultCode"" : """& jsonData.Item("ResultCode") &"""}")
            Response.End()            
        end if        
        
        ' 본인 인증 + 성인 확인
        Dim authArray : authArray = MsSqlClass.executeRecordSetArray(MEM_CONN_STR, "up_is_member_authentication '" & GetUserId() & "'")        
        Dim isAuth : isAuth = empty
        Dim isAdult : isAdult = empty    
        
        if (IsArray(authArray)) then 
            isAuth = authArray(0, 0)
            isAdult = authArray(1, 0)
        end if
        
        if isAuth = "N" then
            jsonData.Item("Result") = false
            jsonData.Item("ResultCode") = "M0002"
           
            Response.Write("{""Result"" : """& jsonData.Item("Result") &""", ""ResultCode"" : """& jsonData.Item("ResultCode") &"""}")
            Response.End()
        end if
        
        ' 추천 코드 입력 확인
        if recommendationCode = "" then
            jsonData.Item("Result") = false
            jsonData.Item("ResultCode") = "M0003"
           
            Response.Write("{""Result"" : """& jsonData.Item("Result") &""", ""ResultCode"" : """& jsonData.Item("ResultCode") &"""}")
            Response.End()
        end if
        
        Dim arrParams : arrParams = Array(_
       Array("@UserID", adVarchar, adParamInput, 24, GetUserId()), _
       Array("@RecommendationCode", adVarchar, adParamInput, 50, recommendationCode), _
       Array("@RegistrationDate", adDate, adParamInput, , registrationDate), _
       Array("@Result", adVarchar, adParamInputOutput, 20, ""))
     
        Dim outputParameter
        Dim queryResult : queryResult = MsSqlClass.executeCommandInputOutput(MEM_CONN_STR, "up_tb_st_event2016_recommendationCodeRegistration_insert", arrParams, outputParameter)
        
        if queryResult > -1 then
            jsonData.Item("Result") = true
        else
            jsonData.Item("ResultCode") = outputParameter.Parameters(3).Value        
            Response.Write("{""Result"" : """& jsonData.Item("Result") &""", ""ResultCode"" : """& jsonData.Item("ResultCode") &"""}")
        end if
        
    End Sub
    
    ' 추천 코드 정보를 조회한다.
    Sub GetRecommendationCodeInfo(ByVal userID)
        
        Dim jsonData
        Set jsonData = Server.CreateObject("Scripting.Dictionary")
        jsonData.Add "Score", 0
        jsonData.Add "Code", empty
        
        if userID = "" then
            Response.Write("{""Score"" : """& jsonData.Item("Score") &""", ""Code"" : """& jsonData.Item("Code") &"""}")
            Response.End()
        end if
        
        Dim recordSetArray : recordSetArray = MsSqlClass.executeRecordSetArray(MEM_CONN_STR, "up_tb_st_event2016_recommendationCodeIssuance_select '"& userID &"'")
                
        if (IsArray(recordSetArray)) then 
            jsonData.Item("Score") = recordSetArray(1, 0)
            jsonData.Item("Code") = recordSetArray(2, 0)
        end if
        
        Response.Write("{""Score"" : """& jsonData.Item("Score") &""", ""Code"" : """& jsonData.Item("Code") &"""}")
        
    End Sub    
    
    ' Delegate
    Dim delegateName : delegateName = Request("delegateName")
    
    if delegateName = "getRecommendationCodeInfo" then
        Call GetRecommendationCodeInfo(GetUserId())
    end if
    
    if delegateName = "insert" then        
        Dim userID:userID = Request("userID")
   Dim recommendationCode:recommendationCode = Request("recommendationCode")
   Dim registrationDate:registrationDate = now()
   Dim result:result = ""               
   
        Call InsertRecommendationCode(userID, recommendationCode, registrationDate, result)
    end if
    
    
    
    ' MsSQL 인스턴스 해제
    Call MsSqlClass.CloseClass(MsSqlClass)
%>


반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함