database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
ㆍCUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
CUBRID Q&A 1144 게시물 읽기
No. 1144
Q.DB 갱신 관련해서
작성자
이경화
작성일
2008-07-03 02:24
조회수
6,050

안녕하세요. 또 질문을 올립니다. 죄송합니다. 꾸벅...

 

   Dim s_Sql As String

    Dim rs_Ado As ADODB.Recordset

 

    s_Sql = \"SELECT t_no,t_subal \"

    s_Sql = s_Sql & \" FROM tbl_telio \"

    s_Sql = s_Sql & \" WHERE t_no=10001\"

 

    Set rs_Ado = New ADODB.Recordset

 

    ---> 아래 부분에서 레코드 Open시 아래와 같이 에러가 발생합니다.

         [oleDB 이용시 => CUBRIDProvider.dll ]

         에러는 [cas.exe에 문제가 있어서 프로그램을 종료하여야 합니다....] 라고 메세지박스가 표시됩니다.

          

         [ODBC 이용시 => cubrid_odbc.dll ]

         에러는 [-2147467259 : 데이터 공급자나 기타 서비스가 E_FAIL 상태를 반환했습니다.] 이렇게 나옵니다.

 

    rs_Ado.Open s_Sql, cn_AdoCub, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic

 

    if rs_Ado.RecordCount>0 then

        rs_Ado(\"t_no\") = 10001

        rs_Ado(\"t_subal\") = \"T\" \'sa_Data(7)

        rs_Ado.Update

    end if

 

    rs_Ado.Close

    Set rs_Ado = Nothing

-------------------------------------------------------------------------------------------    

 

참고로 cn_AdoCub.Execute s_Sql 식으로 하면 정상적으로 처리됩니다.

그리고 갱신이 아니고 조회는 레코드셋 Open시 에러없이 잘 불러옵니다.

 

정리를 하자면

DB갱신은 Execute를 사용하고

조회는 레코드셋 즉 rs_Ado.Open s_Sql xxxxx 을 이용하여야 할까요?

 

OLDDB든 ODBC를 이용을하든 둘 중 하나를 선택해서 개발을 진행해야 할 것같은데

도움부탁드립니다. 시간을 너무 잡아 먹는것 같아 큰일이네요.

혹시 도움이 될만한 가이드가 있으면 부탁드리구요.

 

현재 개발환경은

VB6.0, 큐브리드가 설치된 서버는 winXP Home입니다.

 

최종사용자 환경에 따라서

winXP Home, winXP Pro, Vista, Win2003 서버 등으로 서비스예정입니다.

 

이 글에 대한 댓글이 총 1건 있습니다.

OLEDB Driver와 ODBC사용을 굳이 비교하자면 큐브리드 DBMS사용하시는 고객중에는 ODBC를 사용하시는 고객이 더 많은 것으로 알고 있습니다.

 

ODBC Driver가 먼저 개발이 되었고 그렇다 보니 OLEDB Driver보다는 조금 더 안정이 되어 있다고 볼 수도 있습니다. 지금 당장 개발을 하셔야 한다면 ODBC를 이용하여 개발하시는 것을 권장합니다.

 

다음은 제가 간단하게 만든 VB 소스입니다.

개발하시는데 도움이 되시기를 바랍니다. ADO를 이용한 것입니다.

그대로 이용하시는 것 보다는 사용하는 방식 정도만 참조를 하시면 될 것 같네요.

 

\'*******************************************************************************

\' Function        : GF_DB_Connect()

\' Description     : connect to database using ado object

\' Return Values

\'              True or False

\' Input Parameter

\'               None

\'*******************************************************************************

\' Written by        Date                Modified Contents

\'-------------------------------------------------------------------------------

\' G.T.Park          2004.10.12          New

\'*******************************************************************************

Public Function GF_DB_Connect() As Boolean

    Dim strConn As String       \' connection string

    On Error GoTo Err_Handle

    

    \'make connection string with user information(CSSDB Connection)

    \' ODBC Conection String

    strConn = \"\"

    strConn = strConn & \"driver={CUBRID Driver};\"

    strConn = strConn & \"server=192.168.1.1;\"

    strConn = strConn & \"port=33000;\"

    strConn = strConn & \"uid=css;\"

    strConn = strConn & \"pwd=css01;\"

    strConn = strConn & \"db_name=CSSDB;\"

 

    \'OLEDB Connection String

    \'strConn = \"\"

    \'strConn = strConn & \"Provider = CUBRIDProvider;\"

    \'strConn = strConn & \"Data Source = CSSDB;\"

    \'strConn = strConn & \"Location = 192.168.1.1;\"

    \'strConn = strConn & \"User ID = css;\"

    \'strConn = strConn & \"Password = css01;\"

    \'strConn = strConn & \"Port = 30000;\"

    \'strConn = strConn & \"Fetch Size = 100\"

 

    \' connect to database with ado connection object

    Set GadoConn = New ADODB.Connection

    With GadoConn

        .ConnectionString = strConn

        .ConnectionTimeout = 30      \'

        .Properties(\"Prompt\") = adPromptNever \' 이것은 ADO에서 기본 프롬프트 모드입니다.

        .CursorLocation = adUseClient

        .Open

    End With

    

    GF_DB_Connect = True

    

    Exit Function

    

Err_Handle:

    Dim strErrMsg

    strErrMsg = \"Can not connect to server...\" & Chr(13) & Chr(10) & _

                \"Contact system manager.(Network or Server Problem)\"

    

    MsgBox strErrMsg, vbExclamation + vbOKOnly, \"Error\"

    GF_DB_Connect = False

    Exit Function

    

End Function

 

\'*******************************************************************************

\' Function        : GF_DB_Execute()

\' Description     : execute SQL string

\' Return Values

\'               True or False

\' Input Parameter

\'               strSQL

\'*******************************************************************************

\' Written by        Date                Modified Contents

\'-------------------------------------------------------------------------------

\' G.T.Park          2004.10.12

\'*******************************************************************************

Public Function GF_DB_Execute(ByVal strSQL As String) As Boolean

    Dim strConn As String       \' connection string

    On Error GoTo Err_Handle

    

    GadoConn.Execute strSQL, , adCmdText

    

    GF_DB_Execute = True

    

    Exit Function

    

Err_Handle:

    Dim strErrMsg

    strErrMsg = Err.Number & \" - \" & Err.Description

    MsgBox strErrMsg  , vbExclamation + vbOKOnly, \"Error\"

    GF_DB_Execute = False

    Exit Function

    

End Function

\'*******************************************************************************

\' Function        : GS_Query()

\' Description     : 조회 조건으로 입력된 내용으로 데이타를 조회한다.

\' Return Values

\'               None

\' Input Parameter

\'               None

\'*******************************************************************************

\' Written by        Date                Modified Contents

\'-------------------------------------------------------------------------------

\' G.T.Park                              New

\'*******************************************************************************

Public Sub GS_Query()

    Dim strSQL As String \' SQL String

    Dim adoRset As ADODB.Recordset

    Dim strErrMsg As String

    Dim sServiceManager As String

    Dim sSurvey As String

    

    

    On Error GoTo Err_Handle

    

    sprData.MaxRows = 0

    

    \'-----------------------------------------------------------------------------

    \'   make query string and inquiry the data

    \'-----------------------------------------------------------------------------

    

    strSQL = \"\"

    strSQL = strSQL & \"SELECT  Col_A... \"

    strSQL = strSQL & \"FROM    Table_name  \"

    strSQL = strSQL & \"WHERE   ...\"

    

    Set adoRset = GadoConn.Execute(strSQL, , adCmdText)

    

    If adoRset.EOF Then

        msgbox \"No data found...\"        

        If Not adoRset Is Nothing Then

            adoRset.Close

            Set adoRset = Nothing

        End If

        Exit Sub

    End If

    \'-----------------------------------------------------------------------------

    \'   display the inquiry data on the spread sheet

    \'-----------------------------------------------------------------------------

    Set sprData.DataSource = adoRset

    

    If Not adoRset Is Nothing Then

        adoRset.Close

        Set adoRset = Nothing

    End If

    

    Exit Sub

    

Err_Handle:

    

    strErrMsg = Err.Number & \" - \" & Err.Description

    

    MsgBox strErrMsg, vbExclamation + vbOKOnly, \"Error\"

 

    If Not adoRset Is Nothing Then

        adoRset.Close

        Set adoRset = Nothing

    End If

    

    Exit Sub

    

End Sub

 

\'*******************************************************************************

\' Function        : GS_Save()

\' Description     : save the data that is input on window

\' Return Values

\'               None

\' Input Parameter

\'               None

\'*******************************************************************************

\' Written by        Date                Modified Contents

\'-------------------------------------------------------------------------------

\' G.T.Park          2004.10.12          New

\'*******************************************************************************

Public Sub GS_Save()

    Dim strSQL As String \' SQL string

    Dim strErrMsg As String

    On Error GoTo Err_Handle

    

    \'-----------------------------------------------------------------------------

    \' make insert or update string

    \'-----------------------------------------------------------------------------

    If Insert_flag = \"Y\" Then \' insert

    

        strSQL = \" INSERT INTO CSS_LCODE(LRG_DIV_CODE,LRG_DIV_NAME) \" & _

                       \" VALUES (\'\" & Trim(txtLCode.Text) & \"\',\'\" & _

                               Trim(txtLName.Text) & \"\')\"

        

    Else \' update

        \'-------------------------------------------------------------------------

        \' confirm overwriting data to user

        \'-------------------------------------------------------------------------

        If GF_Msg_Display(\"COQ0006\", \"M\") = vbNo Then

            Exit Sub

        End If

    

        strSQL = \" UPDATE CSS_LCODE SET LRG_DIV_NAME = \'\" & Trim(txtLName.Text) & \"\' \" & _

                      \" WHERE  LRG_DIV_CODE = \'\" & Trim(txtLCode.Tag) & \"\' \"

    End If

    

    If GF_DB_Execute(strSQL) = False Then

        Exit Sub

    End If

    

    Exit Sub

    

Err_Handle:

 

    strErrMsg = Err.Number & \" - \" & Err.Description

    

    MsgBox strErrMsg, vbExclamation + vbOKOnly, \"Error\"

    

    Exit Sub

    

End Sub

 

\'*******************************************************************************

\' Function        : GS_Delete()

\' Description     : delete the data that is selected on spread sheet

\' Return Values

\'               None

\' Input Parameter

\'               None

\'*******************************************************************************

\' Written by        Date                Modified Contents

\'-------------------------------------------------------------------------------

\' G.T.Park          2004.11.03          New

\'*******************************************************************************

Public Sub GS_Delete()

    Dim strSQL As String \' SQL string

    Dim strErrMsg As String

    On Error GoTo Err_Handle

    

    \'-----------------------------------------------------------------------------

    \' confirm deleting data to user

    \'-----------------------------------------------------------------------------

    If GF_Msg_Display(\"COQ0007\", \"M\") = vbNo Then

        Exit Sub

    End If

    

    strSQL = \" DELETE FROM CSS_LCODE \" & _

                  \" WHERE LRG_DIV_CODE = \'\" & Trim(txtLCode.Tag) & \"\';\" & _

                  \" DELETE FROM CSS_SCODE \" & _

                  \" WHERE LRG_DIV_CODE = \'\" & Trim(txtLCode.Tag) & \"\';\"

 

    If GF_DB_Execute(strSQL) = False Then

        Exit Sub

    End If

    

    Exit Sub

    

Err_Handle:

 

    strErrMsg = Err.Number & \" - \" & Err.Description

    

    MsgBox strErrMsg, vbExclamation + vbOKOnly, \"Error\"

 

    Exit Sub

 

End Sub

 

>안녕하세요. 또 질문을 올립니다. 죄송합니다. 꾸벅...

>

>   Dim s_Sql As String

>    Dim rs_Ado As ADODB.Recordset

>

>    s_Sql = \"SELECT t_no,t_subal \"

>    s_Sql = s_Sql & \" FROM tbl_telio \"

>    s_Sql = s_Sql & \" WHERE t_no=10001\"

>

>    Set rs_Ado = New ADODB.Recordset

>

>     rs_Ado.Open s_Sql, cn_AdoCub, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic

>

>   ---> 윗 부분에서 레코드 Open시 아래와 같이 에러가 발생합니다.

>         [oleDB 이용시 => CUBRIDProvider.dll ]

>         에러는 [cas.exe에 문제가 있어서 프로그램을 종료하여야 합니다....] 라고 메세지박스가 표시됩니다.

>          

>         [ODBC 이용시 => cubrid_odbc.dll ]

>         에러는 [-2147467259 : 데이터 공급자나 기타 서비스가 E_FAIL 상태를 반환했습니다.] 이렇게 나옵니다.

>

>

>    if rs_Ado.RecordCount>0 then

>        rs_Ado(\"t_subal\") = \"T\"  

>        rs_Ado.Update

>    end if

>

>    rs_Ado.Close

>    Set rs_Ado = Nothing

>-------------------------------------------------------------------------------------------    

>

>참고로 cn_AdoCub.Execute s_Sql 식으로 하면 정상적으로 처리됩니다.

>그리고 갱신이 아니고 조회는 레코드셋 Open시 에러없이 잘 불러옵니다.

>

>정리를 하자면

>DB갱신은 Execute를 사용하고

>조회는 레코드셋 즉 rs_Ado.Open s_Sql xxxxx 을 이용하여야 할까요?

>

>OLDDB든 ODBC를 이용을하든 둘 중 하나를 선택해서 개발을 진행해야 할 것같은데

>도움부탁드립니다. 시간을 너무 잡아 먹는것 같아 큰일이네요.

>혹시 도움이 될만한 가이드가 있으면 부탁드리구요.

>

>현재 개발환경은

>VB6.0, 큐브리드가 설치된 서버는 winXP Home입니다.

>

>최종사용자 환경에 따라서

>winXP Home, winXP Pro, Vista, Win2003 서버 등으로 서비스예정입니다.

 

박근택님이 2008-07-03 10:19에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
1148Q.dba 비번 잊어버렸어요. [1]
김경아
2008-07-03
4709
1147Q.sqlx.init 수정 사항 반영 [1]
김경아
2008-07-03
4847
1146Q.큐브리드용 JDBC 없나요? [1]
궁금이
2008-07-03
4847
1144Q.DB 갱신 관련해서 [1]
이경화
2008-07-03
6050
1143Q.MSSQL서버에서 Uni Sql연결하기 [2]
윤지용
2008-07-02
6953
1142Q.아래 5608번의 2번 재질문합니다. [3]
이경화
2008-07-01
4731
1141Q.The CUBRID java stored procedure can not be used [2]
안성민
2008-07-01
4812
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2021 DSN, All rights reserved.
작업시간: 0.021초, 이곳 서비스는
	PostgreSQL v13.3으로 자료를 관리합니다