Language/ASP2016.03.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)
%>


저작자 표시 비영리 동일 조건 변경 허락
신고

Posted by jangjeonghun
Language/ASP2014.01.14 11:40

ADODB.Command 

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

oConn.Open "provider=SQLOLEDB;Network Library=DBMSSOCN;server=;database=;uid=;pwd=;"


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

With oCmd

 .CommandText = "쿼리" or "저장 프로지저"

 .ActiveConnection = oConn

 

 .Parameters.Append .CreateParameter("RETURN_VALUE", adBigint, adParamReturnValue) 


 .Execute , , adExecuteNoRecords

 iResultNum = .Parameters("RETURN_VALUE") '//결과값

End With



ADODB.RecordSet

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

oConn.Open "provider=SQLOLEDB;Network Library=DBMSSOCN;server=;database=;uid=;pwd=;"


oRs.Open "up_data_request_category_info", oConn


 If ( oRs.BOF Or oRs.EOF ) Then     

Else

Response.Write oRs("category_name")

end if


저작자 표시 비영리 동일 조건 변경 허락
신고

Posted by jangjeonghun
Language/ASP2014.01.09 14:54

클래스 생성

<%

    Class Counter

    

        '생성자

        Private Sub Class_Initialize()

        

        END SUB

        

        '소멸자

        Private Sub Class_Terminate()

        

        END SUB

        

        '제휴 콘텐트 갯수

        Public Function Contents()

            Dim result :  result = 10

            

            Contents = result

        End Function

        

        '새 댓글 갯수

        Public Function Comments()

            Dim result : result = 10

            

            

            Comments = result

        End Function

        

        '클래스 해제

        Sub closeCounter

       If Not counterConstructors Is Nothing Then Set counterConstructors = Nothing

        End Sub

    

    End Class

 %>


클래스 호출

<!--#include File = "class.Counter.asp"-->


<%

    Dim counterConstructors

    SET counterConstructors = NEW Counter

    

    Response.Write(counterConstructors.Contents())

    Response.Write(counterConstructors.Comments())

    

    

    Call counterConstructors.closeCounter

%>





저작자 표시 비영리 동일 조건 변경 허락
신고

Posted by jangjeonghun
Language/ASP2010.10.27 17:42


<%
Const cdoSendUsingMethod ="http://schemas.microsoft.com/cdo/configuration/sendusing"
Const cdoSendUsingPort = 2
Const cdoSMTPServer ="http://schemas.microsoft.com/cdo/configuration/smtpserver"
Const cdoSMTPServerPort ="http://schemas.microsoft.com/cdo/configuration/smtpserverport"
Const cdoSMTPConnectionTimeout ="http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout"
Const cdoSMTPAccountName ="http://schemas.microsoft.com/cdo/configuration/smtpaccountname"
Const cdoSMTPAuthenticate ="http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"
Const cdoBasic = 1
Const cdoSendUserName ="http://schemas.microsoft.com/cdo/configuration/sendusername"
Const cdoSendPassword ="http://schemas.microsoft.com/cdo/configuration/sendpassword"

Dim objConfig ' As CDO.Configuration
Dim objMessage ' As CDO.Message
Dim Fields ' As ADODB.Fields

' Get a handle on the config object and it's fields
Set objConfig = Server.CreateObject("CDO.Configuration")
Set Fields = objConfig.Fields

' Set config fields we care about
With Fields
.Item(cdoSendUsingMethod) = cdoSendUsingPort
.Item(cdoSMTPServer) = "mail2.10dr.com"
.Item(cdoSMTPServerPort) = 25
.Item(cdoSMTPAuthenticate) = cdoBasic
.Item(cdoSendUserName) = "아이디"
.Item(cdoSendPassword) = "비밀번호"
.Update
End With

Dim mailContent
 mailContent ="<table width='600px' align='left' cellpadding='10px' bgcolor='#F5FAFA' cellspacing='0' style='font-size:14px;' border='1' bordercolor='#CCE3E3' >" & _
     "<tr height='60'>" & _
      "<td colspan='2' bgcolor='#CCE3E3' style='color:#427979' align='center' ><strong>사업제휴 제안</strong></td>" & _
     "</tr>" & _
     "<tr height='40'>" & _
      "<td style='font-size:12px' width='78'>회사명</td>" & _
      "<td style='font-size:12px' width='380'>"& Request("company") &"</td>" & _
     "</tr>" & _
     
     "<tr height='40'>" & _
      "<td style='font-size:12px'>담당자</td>" & _
      "<td style='font-size:12px'>"& Request("person") &"</td>" & _
     "</tr>" & _
     
     "<tr height='40'>" & _
      "<td style='font-size:12px'>e-mail</td>" & _
      "<td style='font-size:12px'>"& Request("email") &"</td>" & _
     "</tr>" & _
     
     "<tr height='40'>" & _
      "<td style='font-size:12px'>연락처</td>" & _
      "<td style='font-size:12px'>"& Request("phone") &"</td>" & _
     "</tr>" & _
     
     "<tr height='40'>" & _
      "<td style='font-size:12px'>제목</td>" & _
      "<td style='font-size:12px'>"& Request("title") &"</td>" & _
     "</tr>" & _
     
     "<tr height='40'>" & _
      "<td style='font-size:12px'>내용</td>" & _
      "<td style='font-size:12px'>"& Replace(Request("contnets"), vblf, vblf & "<br/>") &"</td>" & _
     "</tr>" & _
    "</table>"

Set objMessage = Server.CreateObject("CDO.Message")
Set objMessage.Configuration = objConfig

With objMessage
.To = "jjh5400823@10dr.com"
.From = Request("email")
.Subject = "10DR 제휴문의 메일입니다."
.HTMLBody = mailContent
.Send
End With

Set Fields = Nothing
Set objMessage = Nothing
Set objConfig = Nothing


Response.Write "<script>location.href='/default.asp';alert('10DR 사이트에 제휴요청을 하였습니다.\n빠른 시일내에 연락 드리겠습니다.\n감사합니다.');</script>"
%>

저작자 표시
신고

Posted by jangjeonghun
Language/ASP2009.06.18 11:26

신고

Posted by jangjeonghun
Language/ASP2009.06.18 10:43

시나리오
입력
정보
Windows 2003 서버에서 CDO.Message를 이용한 메일 발송이 갑자기 오류가 났다.
오류명은 아래와 같다. 처음보는 오류.. ^^;

CDO.Message.1 오류 '80040220'
"SendUsing"  구성파일 오류

원인을 찾아보니, 웹나이트 방화벽을 돌리기 시작한 시점부터 문제가 되었다.
그래서 웹나이트 방화벽을 잠시 끄고 발송해보니, 잘 되었다.

CDO 버전이 업그레이드 되면서, SendUsing을 정확히 지정해 주지 않으면 위와 같은
오류를 발생시킨다고 한다.
그래서 프로그램 쪽에서 메일 발송 함수를 아래와 같이 변경해 주니 잘 되었다.


Function Email_Send(emailSendName, emailSendMail, emailGetName, emailGetMail, emailSubject, emailBody)

    Dim Send_Mail
    Dim MailConfig

    Set Send_Mail  = Server.CreateObject("CDO.Message")
    Set MailConfig = Send_Mail.Configuration
    With MailConfig.Fields

        '1 (로컬 SMTP) / 2 (외부 SMTP)
        .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 1

        'Pickup 디렉토리 설정
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverpickupdirectory") = "C:\Inetpub\mailroot\Pickup"

        '호스트 설정
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "127.0.0.1"

        'SMTP Port
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
 
        '연결 시간
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 30

        .Update

    End With
    Set MailConfig = Nothing

    Send_Mail.From     = emailSendName & "<" & emailSendMail & ">"
    Send_Mail.To       = emailGetName & "<" & emailGetMail & ">"
    Send_Mail.Subject  = emailSubject
    Send_Mail.htmlBody = emailBody

    Send_Mail.Send
    Set Send_Mail = Nothing

End Function
비고
입력


신고

Posted by jangjeonghun
Language/ASP2009.02.02 18:38

시나리오
ASP 메일 보내기에 대하여 알아보자.
정보
[필수 셋팅]
IIS Server에 "기본 SMTP 가상 서버"를 설치 한다.

[Windows 2000Server]

Sub SendMail ( IP_send, IP_to, IP_subject, IP_body, fileFullPath, flag )
Dim SMail
Set SMail = Server.CreateObject("CDONTS.Newmail")
With SMail
      .From = IP_send
      .To = IP_to
      .Subject = IP_subject
      .body = IP_body     
      .BodyFormat = 0
      .MailFormat = 0
      If fileFullPath <> "" Then
      .attachFile fileFullPath,,1 'cdoEncodingBase64
      End If
      .Send
End With
    Set SMail = nothing
  End Sub

[Windows2003Server]
Sub SendMail ( IP_send, IP_to, IP_subject, IP_body, fileFullPath, flag )
Dim SMail
Set SMail = Server.CreateObject("CDONTS.Newmail")
With SMail
      .From = IP_send
      .To = IP_to
      .Subject = IP_subject
      .HtmlBody= IP_body     
If fileFullPath <> "" Then
      .attachFile fileFullPath,,1 'cdoEncodingBase64
End If
.Send
End With
    Set SMail = nothing
  End Sub
비고
보다 자세한 내용은 http://blog.naver.com/keypush/10000527198 참고.


신고

Posted by jangjeonghun
Language/ASP2009.02.02 14:52

시나리오
날짜 함수에 대하여 알아 보자
정보
특정 일에 임의의 날짜를 더해 주는 함수
DateAdd("m",1,now())

특정 날짜를 기준으로 날짜의 간격을 알아려 주는 함수
Datediff("d",date(), "2007-9-25")
비고
입력


신고

Posted by jangjeonghun
Language/ASP2009.01.29 13:50
Session 객체에 대하여 잘 정리해 둔 사이트가 있어 소개 합니다.
참고 URL : http://oops4u.com/blog/1120

신고

Posted by jangjeonghun
Language/ASP2009.01.14 14:08
에러 문구
Active Server Pages 오류 'ASP 0131'
허용되지 않는 부모 경로
에러 원인
IIS Server의 부모 경로 탐색 설정을 허용하지 않아서 이다.
해결 방법
IIS -> 웹 사이트 선택 -> 속성 -> 홈 디렉토리 -> 구성 팁 -> 옵션 팁 -> 부모 경로 사용 체크
비고
입력



신고

Posted by jangjeonghun

티스토리 툴바