게시판 본문 COM / COM+ by VB 6.0 - Read Only

아...3년전의 VB경험으로...서비스할 DLL을 만들라니...
작성자: 권민수
작성일시: 2004-05-21 20:45,  조회수: 3,731
안녕하세요...항상 좋은 정보를 얻고 있음에도 드디어 용기를 내어 글을 씁니다.

먼저 아래 코드는 여러 CP업체들에게 저희 회원정보를 넘겨주는 것을 NT Platform에 있는 업체들에게 이 DLL을 넘겨주려 합니다.

리턴하는 문자열은 XML로 업체에서 DOM을 이용해 변수화 시켜려고 하고 있습니다.
나름대로 열심히 공부해서 만들어 놓긴 했는데...
주위에 이걸 검증해줄 수 있는 분이 아무도 없어...
서비스 보류입니다...ㅡㅡ;

Option Explicit

Dim objXML As MSXML2.ServerXMLHTTP

Dim DB As ADODB.Connection
Dim objCmd As ADODB.Command
Dim Param As ADODB.Parameter

Private mURL As String
Private mCpNum As String
Private mCpPass As String
Private mSubmitData As String
Private mCase As String

Private m_DBcon As String
Private m_bolFrientsMemberCP As Boolean
Private m_ErrorCase As Integer
Private m_ErrorMsg As String
Private m_UserIP As String

Public Function GetDBString() As String
' DB정보
Dim DBstring As String
With objXML
.open "POST", "http://www.localhost.com", True, "sonner\administrator", "pass1234"
'테스트 URL입니다.
.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"

.send "AuthorID=sonner&AuthorKey=9424004"

While .readyState <> 4
.waitForResponse 2000
Wend

DBstring = Trim(StrConv(.responseBody, vbUnicode))

If Len(DBstring) = 0 Then
m_ErrorCase = 101 'DB Connection 정보 획득 실패
Else
m_DBcon = DBstring
End If
End With

GetDBString = m_DBcon
End Function

Public Function IsFrientsCp() As Boolean
Dim DB As New ADODB.Connection
Dim objCmd As New ADODB.Command
Dim Param(4) As New ADODB.Parameter
Dim i As Integer

If Len(GetDBString()) <> 0 Then
DB.open m_DBcon

With objCmd
.ActiveConnection = DB
.CommandType = adCmdStoredProc
.CommandText = "usp_CPLogin_Check"

Set Param(0) = .CreateParameter("@CpNum", adChar, adParamInput, 10, mCpNum)
Set Param(1) = .CreateParameter("@CpPass", adVarChar, adParamInput, 20, mCpPass)
Set Param(2) = .CreateParameter("@mCase", adChar, adParamInput, 4, mCase)
Set Param(3) = .CreateParameter("@ResultCode", adInteger, adParamOutput)

For i = 0 To UBound(Param) - 1
.Parameters.Append Param(i)
Next

.Execute , , adExecuteNoRecords

Select Case CInt(.Parameters("@ResultCode").Value)
Case 111 ' 협력업체 번호 에러
m_bolFrientsMemberCP = False
m_ErrorCase = 111
Case 112 ' 협력업체 인증번호 에러
m_bolFrientsMemberCP = False
m_ErrorCase = 112
Case 2 ' 접근 가능 Case 에러
m_bolFrientsMemberCP = False
m_ErrorCase = 113
Case 1
m_bolFrientsMemberCP = True
Case Else '모르는 에러?
m_bolFrientsMemberCP = False
m_ErrorCase = 999
End Select
End With
IsFrientsCp = m_bolFrientsMemberCP
Else
IsFrientsCp = False
End If

End Function
Public Sub ErrorCase(ByVal ErrorCode As Integer)
' Dim DB As New ADODB.Connection
' Dim objCmd As New ADODB.Command
' Dim Param(4) As New ADODB.Parameter
' Dim i As Integer
' Dim strReturnDB As String

If ErrorCode > 0 Then
Select Case ErrorCode
Case 101
m_ErrorMsg = "DataBase 접근 권한이 없습니다."
Case 111
m_ErrorMsg = "등록되지 않은 업체입니다..확인 후 다시 시도해 주세요."
Case 112
m_ErrorMsg = "인증번호가 틀립니다. 확인 후 다시 시도해 주세요."
Case 113
m_ErrorMsg = "접근권한이 없는 코드입니다.확인 후 다시 시도해 주세요."
Case 301
m_ErrorCase = ErrorCode
m_ErrorMsg = "인증 받지 않은 접속입니다."
Case Else
m_ErrorMsg = "검사되지 않은 장애번호"
End Select
' 에러 DB Insert
End If
End Sub
Public Function GetFrientsData() As String
Dim strBasicInfo As String

strBasicInfo = "CpNum=" & mCpNum & "&mCase=" & mCase & "&"

If IsFrientsCp Then
With objXML
.open "POST", mURL, True, "sonner\administrator", "dpswlsldj"
.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"

.send strBasicInfo & mSubmitData

While .readyState <> 4
.waitForResponse 2000
Wend

GetFrientsData = Trim(StrConv(.responseBody, vbUnicode))
End With
Else
Call ErrorCase(301)

GetFrientsData = _
"<?xml version='1.0' encoding='euc-kr'?>" & vbCrLf & _
"<frients_data>" & vbCrLf & _
" <error>" & vbCrLf & _
" <errorNo>" & m_ErrorCase & "</errorNo>" & vbCrLf & _
" <description>" & m_ErrorMsg & "</description>" & vbCrLf & _
" </error>" & vbCrLf & _
"</frients_data>"
End If

End Function

Private Sub Class_Initialize()
Set objXML = New MSXML2.ServerXMLHTTP40

m_bolFrientsMemberCP = False
m_ErrorCase = 0
m_DBcon = ""
m_ErrorMsg = ""
m_UserIP = ""
End Sub

Private Sub Class_Terminate()
Set objXML = Nothing
End Sub

Public Property Get URL() As String
URL = mURL
End Property

Public Property Let URL(ByVal vNewValue As String)
mURL = vNewValue
' 입력값이 없다면 테스트
If Trim(mURL) = "" Then mURL = "http://www.localhost.com/xmltest.asp"
End Property

Public Property Get CpCheckNum() As String
CpCheckNum = mCpNum
End Property

Public Property Let CpCheckNum(ByVal vNewValue As String)
mCpNum = vNewValue
End Property

Public Property Get CpCheckPass() As String
CpCheckPass = mCpPass
End Property

Public Property Let CpCheckPass(ByVal vNewValue As String)
mCpPass = vNewValue
End Property

Public Property Get SubmitData() As String
SubmitData = mSubmitData
End Property

Public Property Let SubmitData(ByVal vNewValue As String)
mSubmitData = vNewValue
End Property

Public Property Get ActionCase() As String
ActionCase = mCase
End Property

Public Property Let ActionCase(ByVal vNewValue As String)
mCase = vNewValue
End Property

'-----------------------------------------------------------------------------
이상입니다..모든것들이 다 유동적인 상황(개발중)이라 DB정보 하나 얻어오는데도
WebPage에서 가져와야 할 정도 입니다.

위의 코드가 DLL로서 제대로 작성된 것인지...ㅡㅡ;
ASP상에서 CreateObject()하는 부분도 3일을 고생하다가...아으...등잔 밑이 어둡다고..
여기서 해결책을 찾았습니다..
제대로..결과도 나오고...윗분들은 만족하지만..
전 이게 과연 검증된 코드인가...여기에는 자신이 없어서..
조언 부탁드립니다.
저도 따끔한 충고 부탁드립니다.

IP 주소: 222.110.12.214
전체 276 건의 게시물, 12 페이지로 구성된 COM / COM+ by VB 6.0 게시판의 10 페이지입니다.
게시물
51

뉴스그룹에서 재미난 방법을 찾았습니다. [1]

zziuni

2004-10-20 6,214
50

이벤트 오류

홍완식

2004-08-21 3,193
49

re: 이벤트 오류

송원석

2004-08-21 3,181
48

트랜잭션 오류 문제

홍완식

2004-08-17 8,603
47

re: 트랜잭션 오류 문제

송원석

2004-08-18 3,708
46

해결방법 [1]

홍완식

2004-08-19 834
45

프로그램 배포

정보문

2004-07-29 3,094
44

re: 프로그램 배포

송원석

2004-07-29 2,913

아...3년전의 VB경험으로...서비스할 DLL을 만들라니...

권민수

2004-05-21 3,731
42

re: 아...3년전의 VB경험으로...서비스할 DLL을 만들라니...

송원석

2004-05-22 3,110
41

re: 아...3년전의 VB경험으로...서비스할 DLL을 만들라니...

권민수

2004-05-22 2,933
40

COM 개발시 Property Get 과 Let에 관해 알려주세요..

우기

2004-05-08 776
39

re: COM 개발시 Property Get 과 Let에 관해 알려주세요..

송원석

2004-05-08 3,192
38

송원석님 답변 정말 감사합니다.. 저에게는 재미있는(?) 일이기에 다시 글 올립니다. ^^*

우기

2004-05-08 769
37

re: 송원석님 답변 정말 감사합니다.. 저에게는 재미있는(?) 일이기에 다시 글 올립니다. ^^*

송원석

2004-05-08 3,236
36

따끔한 충고의말 정말 감사합니다. ^^ [1]

우기

2004-05-08 784
35

RDS 이용한 VBScript 문제입니다.

윤경민

2004-02-26 785
34

re: RDS 이용한 VBScript 문제입니다.

송원석

2004-02-26 3,211
33

[질문]com+ 프락시 사용 클라이언트 에러 발생!

궁금이

2004-02-01 982
32

re: [질문]com+ 프락시 사용 클라이언트 에러 발생!

송원석

2004-02-02 3,266
31

re: [질문]com+ 프락시 사용 클라이언트 에러 발생!

궁금이

2004-02-02 919
30

re: [질문]com+ 프락시 사용 클라이언트 에러 발생!

송원석

2004-02-02 3,082
29

RDS를 사용하여 사원인증을 쿼리하려고 하는데...

saint74

2003-11-03 3,479
28

re: RDS를 사용하여 사원인증을 쿼리하려고 하는데...

송원석

2003-11-03 3,495
27

감사합니다. 상세 구현 예상 방법입니다..

saint74

2003-11-04 3,425