C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[44282] Re:빌더에서 사용하는 ORACLE DB 용 DLL만들기 질문이영~~^^
박지훈.임프 [cbuilder] 1399 읽음    2006-03-27 13:45
보여주신 소스로만은 정확하게 알 수는 없겠지만, 제 생각에는 ASP에서 불러 쓰기 위한 dll인 거 같군요.
ASP에서 불러쓰는 dll은 일반 dll이 아니라 Active Server Object로 만들어야 합니다.
File -> New -> Other 선택하면 나오는 New Items 다이얼로그에서, ActiveX 탭 -> Active Server Object 아이콘을
선택하면 됩니다.

그럼...


쏘세지 님이 쓰신 글 :
: 원래는 VB를 사용하다 지금 갑자기 빌더로 넘어오게 되었습니다.
: 일반적으로 VB에서는 모듈로 만들어 사용했습니다.
: (참고:아래와 같이...)
: 그런데 이런걸 빌더에서는 어떤식으로 만들어 사용해야 되는지
: 제가 지금 화면을 다 DLL로 만들어 하나의 프로젝트에 포함시켜 사용하고 있습니다.
: 각각 개별의 작업을 하는 화면인지라..
: 위에 VB소스 처럼 사용하려구 하는데
: 만들어 놓으신게 있으면 참고 하려고 하는데 도움좀 부탁드립니다.
: DLL로 만들어야 되나영? DLL로 만들경우 화면에서 포함하게 되면 여러번 connect를 해야 될것 같은데..
: 어떤식으로 만들어야 되는지..혹시 만든신게 있다면 공개해주실순 있는지....
: 빌더는 첨인지라 많이 헤메게 되네영 그럼 즐 프하세영 참고로 여기서 제 나름대로 찾아봤는데
: 없어서 질문 올립니다~~^^
:
: Option Explicit
:
: '=====================================================================================================
: ' DB와 연결 종료
: '=====================================================================================================
:
: Public Sub AdoDisConnect()
:
:     If AdoCon.State = adStateOpen Then
:        AdoCon.Close
:        Set AdoCon = Nothing
:     End If
:
: End Sub
:
: '=====================================================================================================
: ' DB와 연결
: '=====================================================================================================
:
: Public Function AdoConnect() As Boolean
:
:     Dim strConn     As String
:
:     On Error GoTo Error_Process
:     Screen.MousePointer = 11
:
:    
:     'strConn = "Provider=OraOLEDB.Oracle.1;Data Source=" & gDB_SERVER & ";User ID=" & gDB_USERID & ";Password=" & gDB_PASSWORD & ";"
:     strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=D:\신동아화재\Source\Source_20060206\DB\표준화데이터DB\db1.mdb;"
:     Set AdoCon = New ADODB.Connection
:     AdoCon.ConnectionTimeout = 10
:     AdoCon.CursorLocation = adUseClient
:     AdoCon.Open strConn
:     Screen.MousePointer = 0
:
:     AdoConnect = True
:     Exit Function
:
: '에러 체크
: Error_Process:
:     Screen.MousePointer = 0
:
:     MsgBox "DB Connection(Ado)을 하지 못했습니다" & vbCrLf & vbCrLf _
:             & "Error Number : " & Err.Number & vbCrLf _
:             & "Description  : " & Err.Description, vbCritical, "DB Connect Error"
:     AdoConnect = False
: End Function
:
: '=====================================================================================================
: ' SELECT
: '=====================================================================================================
:
: Public Function AdoQyOpenSet(ByRef adoRS As ADODB.Recordset, ByVal sql As String, ByRef nRecordCount As Long) As Boolean
:
:     On Error GoTo ADOError:
:
:     nRecordCount = 0
:
:     Set adoRS = New ADODB.Recordset
:     adoRS.CursorType = adOpenStatic
:     adoRS.LockType = adLockReadOnly
:     adoRS.CursorLocation = adUseClient
:
:     adoRS.Open sql, AdoCon
:
:     If Not adoRS.EOF Then
:         nRecordCount = adoRS.RecordCount
:     End If
:
:     AdoQyOpenSet = True
:
: Exit Function
: ADOError:
:
:     Set adoRS = Nothing
:     AdoQyOpenSet = False
:     DisplayADOError
:     Screen.MousePointer = 0
:
: End Function
:
: '=====================================================================================================
: ' UPDATE,INSERT,DELETE
: '=====================================================================================================
:
: Public Function AdoQyExec(ByVal sql As String) As Boolean
:
:     On Error GoTo ADOError:
:
:     If sql <> "" Then
:         Call AdoCon.Execute(sql)
:     End If
:
:     AdoQyExec = True
:
: Exit Function
:
: ADOError:
:     AdoQyExec = False
:     DisplayADOError
:     Screen.MousePointer = 0
:
: End Function
:
: '=====================================================================================================
: '  Recordset을 닫는다.
: '=====================================================================================================
:
: Public Sub AdoCloseSet(ByRef adoRS As ADODB.Recordset)
:
:     If adoRS.State = adStateOpen Then
:         adoRS.Close
:         Set adoRS = Nothing
:     End If
:
: End Sub
:
: '=====================================================================================================
: '  Select한 결과를 필드 단위로 Error Check 한다.(String의 경우)
: '=====================================================================================================
:
: Public Function AdoGetString(ByRef adoRS As ADODB.Recordset, ByVal AdoCol As String, ByVal adPosBOF As Long) As String
:
:     On Error GoTo ReadError
:
:     adoRS.AbsolutePosition = adPosBOF + 1          '현재레코드의 위치
:     AdoGetString = Trim(adoRS.Fields(AdoCol).Value & "")
:     Exit Function
:
: ReadError:
:
:     Dim strTemp     As String
:
:     AdoGetString = ""
:     strTemp = ", Form Name : " & Screen.ActiveForm.Name & "-" & Screen.ActiveForm.ActiveControl.Name
:
:     Select Case Err.Number
:            Case 40041      'Invalid Column Name
:                 Debug.Print "AdoGetString Error -  Invalid Column Name - " & AdoCol & strTemp
:            Case 40022      'Invalid Position Number
:                 Debug.Print "AdoGetString Error -  Invalid Position Number - " & AdoCol & "(" & CStr(adPosBOF) & ")" & strTemp
:            Case 91
:            Case 94
:            Case Else
:                 Debug.Print "AdoGetString Error - " & RTrim(Str(Err.Number)), Err.Description & strTemp
:     End Select
:
: End Function
:
: '=====================================================================================================
: '  Select한 결과를 필드 단위로 Error Check 및 Null 값 체크한다.(Number의 경우)
: '=====================================================================================================
:
: Public Function AdoGetNumber(ByRef adoRS As ADODB.Recordset, ByVal AdoCol As String, ByVal adPosBOF As Long) As Double
:
:     On Error GoTo ReadError
:
:     adoRS.AbsolutePosition = adPosBOF + 1 '현재레코드의 위치
:     AdoGetNumber = IIf(IsNull(adoRS.Fields(AdoCol).Value), 0, adoRS.Fields(AdoCol).Value)
:     Exit Function
:
: ReadError:
:
:     Dim strTemp     As String
:
:     AdoGetNumber = 0
:     strTemp = ", Form Name : " & Screen.ActiveForm.Name & "-" & Screen.ActiveForm.ActiveControl.Name
:
:     Select Case Err.Number
:            Case 40041      'Invalid Column Name
:                 Debug.Print "AdoGetNumber Error -  Invalid Column Name - " & AdoCol & strTemp
:            Case 40022      'Invalid Position Number
:                 Debug.Print "AdoGetNumber Error - Invalid Position Number - " & AdoCol & "(" & CStr(adPosBOF) & ")" & strTemp
:            Case 91
:            Case 94
:            Case Else
:                 Debug.Print "AdoGetNumber Error - " & RTrim(Str(Err.Number)), Err.Description & strTemp
:     End Select
:
: End Function
:
: '=====================================================================================================
: ' Ado에 대한 Error을 디스플레이 한다.
: '=====================================================================================================
:
: Public Sub DisplayADOError()
:
:     Dim er      As ADODB.Error
:
:     For Each er In AdoCon.Errors
:         MsgBox "Number    : " & er.Number & vbCrLf & _
:                "Text      : " & er.Description & vbCrLf & _
:                "SQL State : " & er.SqlState & vbCrLf & _
:                "Source    : " & er.Source & vbCrLf & _
:                "Native    : " & er.NativeError
:     Next
:
: End Sub
:
: '*=====================================================================================================*
: ' Name        : AdoStrReplace
: ' Description : SQL문을 받아서 '을 ''로 바꾸어 주는 함수
: ' Input       : tmpStr - SQL문
: ' Return      : 바뀐 SQL문
: ' Date        :
: ' Update      :
: '*=====================================================================================================*
: Public Function AdoStrReplace(ByVal tmpStr As String) As String
:
:     tmpStr = Replace(tmpStr, "'", "''")
:     tmpStr = Replace(tmpStr, Chr(0), "")
:     AdoStrReplace = tmpStr
:
: '    MsgBox Chr(tmpStr)
:
: End Function
:
: '*=====================================================================================================*
: ' Name        : AdoGetCurrentDate
: ' Description : 데이타베이스 서버의 서버일자를 가져오는 함수
: ' Input       : Kind - 1 : Date Only (YYYYMMDD)
: '                    2 : DateTime (YYYYMMDDHHMMSS)
: '                    3 : DateTime (YYYYMMDD HH:MM:SS)
: '                    4 : DateTime (YYYYMMDDHHMMSSMMM)
: ' Return      : 서버일자
: ' Date        :
: ' Update      :
: '*=====================================================================================================*
: Public Function AdoGetCurrentDate(ByVal kind As Integer) As String
:
:     Dim adoRS   As ADODB.Recordset
:     Dim sql     As String
:
:     On Error GoTo ErrorHandler
:
:     Set adoRS = New ADODB.Recordset
:
:     Select Case kind
:         Case 1
:             sql = "SELECT CONVERT(CHAR(8),GETDATE(),112) AS CURDATE"
:         Case 2
:             sql = "SELECT CONVERT(CHAR(8),GETDATE(),112)"
:             sql = sql + "+REPLACE(CONVERT(CHAR(8),GETDATE(),108),':','') AS CURDATE"
:         Case 3
:             sql = "SELECT GETDATE() AS CURDATE"
:         Case 4
:             sql = "SELECT REPLACE(REPLACE(REPLACE(REPLACE(CONVERT(CHAR(23),GETDATE(),121),'-',''),' ',''),':',''),'.','')"
:             sql = sql + "AS CURDATE"
:     End Select
:
:     adoRS.Open sql, AdoCon, adOpenForwardOnly, adLockReadOnly
:
:     AdoGetCurrentDate = adoRS("CURDATE")
:
:     adoRS.Close
:     Set adoRS = Nothing
:
:     Exit Function
:
: ErrorHandler:
:     If adoRS.State = adStateOpen Then adoRS.Close
:     Set adoRS = Nothing
:     MsgBox CStr(Err.Number) & " : " & Err.Description
:     AdoGetCurrentDate = ""
:
: End Function

+ -

관련 글 리스트
44277 빌더에서 사용하는 ORACLE DB 용 DLL만들기 질문이영~~^^ 쏘세지 1800 2006/03/27
44282     Re:빌더에서 사용하는 ORACLE DB 용 DLL만들기 질문이영~~^^ 박지훈.임프 1399 2006/03/27
44284         Re:Re:빌더에서 사용하는 ORACLE DB 용 DLL만들기 질문이영~~^^ 쏘세지 1099 2006/03/27
44334             Re:Re:Re:빌더에서 사용하는 ORACLE DB 용 DLL만들기 질문이영~~^^ 박지훈.임프 1225 2006/03/30
44337                 Re:Re:Re:Re:빌더에서 사용하는 ORACLE DB 용 DLL만들기 질문이영~~^^ 쏘세지 1362 2006/03/31
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.