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

C++빌더 팁&트릭
C++Builder Programming Tip&Tricks
[762] dbExpress로 MySQL 5.x에 연결 하기(dbExpress drivers for MySQL 5.x)
이점한 [redyouth] 12854 읽음    2008-03-21 20:07
dbxopenmysql5_dll.zip 92.1KB dbExpress MySQL 5.x용 Driver입니다.
주로 MySQL용 드라이버를 유료인 CoreLab을 많이 사용 하시는걸로 압니다. 우연히 발견한 무료(LGPL)인 좋은

드라이버가 있어서 소개 해드립니다.



위의 첨부파일에서 dbxopenmysql50.dll 파일을 소스 폴더에 복사합니다. 그리고 아래의 소스대로만 하면

성능 좋은 dbExpress로 MySQL5.x를 마음껏 사용 가능해집니다. ^^; (만약 libmysql.dll 파일이 MySQL 5.x용이 아니면 해당 버전의 파일을 받아서 준비 하세요)

bool __fastcall TfrmMainServer::MYSQLConnect() 
{ 
    bool bResult = false; 

    __try 
        { 
        try 
            { 
                MySQLCon->DriverName = "dbxmysql"; 
                MySQLCon->LibraryName = "dbxopenmysql50.dll"; 
                MySQLCon->VendorLib = "libmysql.dll"; 
                MySQLCon->GetDriverFunc = "getSQLDriverMYSQL50"; 
                MySQLCon->Params->Clear(); 
                MySQLCon->Params->Values["User_Name"] = "db 접속 계정"; 
                MySQLCon->Params->Values["Password"] = "계정 암호"; 
                MySQLCon->Params->Values["HostName"] = "MySQL 서버 IP 또는 주소"; 
                MySQLCon->Params->Values["Database"] = "DataBase명";    
                MySQLCon->Open(); 
                
                bResult = true; 

            } 
        catch(Exception &E) 
            { 
                //.. 
            } 
        } 
    __finally 
        { 
            return bResult; 
        } 

} 

MySQLCon은 콤포넌트 팔레트의 dbExpress 탭에 있는 TSQLConnection 입니다.
위의 커넥션을 연결하고 dbExpress의 TSQLQuery등의 DataSet을 이용하시면 됩니다.

출처 : http://www.justsoftwaresolutions.co.uk/delphi/dbexpress_and_mysql_5.html

위 사이트에는 Works with Delphi 6, Delphi 7, and Borland Developer Studio 2006. 라고 되어 있는데
제가 C++Builder 6에서 동작 시켜보니 잘 동작 하는군요 . 아마 다른버전에서도 잘 동작 하리라 봅니다.
잠깐 테스트 해본바 CoreLab의 드라이버 못지 않게 좋은 성능을 내는것 같네요. 굳이 어려운 이 시기에
유료인 CoreLab용 드라이버를 구매 하시지 않아도 될듯 ^^; 제2의 아엠에푸라는데 외화 아껴야죠.
참 출처 사이트에 가보시면 드라이버 소스도 다 같이 있습니다. 자세한 내용은 출처 사이트 참고 하세요.

참고로 MySQL4.x, Firebird, PostgreSQL, Oracle, DB2, Sybase, Ingres <= 이것들이 지원되는 dbExpress
드라이버는 아래의 주소에도 있습니다. 제가 소개한 드라이버가 참조한 원래 오리지날 드라이버라는군요.
참고 주소 : http://sourceforge.net/project/showfiles.php?group_id=146613

dbExpress 잘 쓰시는 분들은 잘 쓰시는데 의외로 MySQL에 연결 하기 위해 애먹는 분들이 계신것 같아
허접하지만 팁으로 올려 봅니다. 조그만 도움이 되기를 바랍니다.


PS : 막상 이렇게 쓰고 보니 한글이 깨지더군요 그래서 제가 찾은 해결 방법은 한번 커넥션 하고 나서
"set names euckr" 이란 쿼리를 한번만 돌려주고 나서는 Select든 Insert든 한글 입출력에 지장이 없네요
혹시 이방법 말고 더 좋은 방법을 아시는분은 댓글로 달아 주세요. ^^;
김태선 [cppbuilder]   2008-04-12 02:44 X
좋은 팁이네요 ^,.^;
땅주인 [heaven2]   2008-09-03 12:01 X
땡큐..땡큐...땡큐..옆에 있으면 뽀뽀라도.. 아~~ 3일을 삽질을 했네요.. 넘 힘들어~~~
이점한 [redyouth]   2008-09-22 23:03 X
저도 남자인지라.. 남자 뽀뽀는 사양합니다. 대신 쏘주잔 뽑뽀는 사랑합니다. ^^;
정승욱 [doraq]   2012-07-02 13:19 X
연결은 되는데 TSQLQuery를 이용하면 active하는 순간 invalid field size 에러가 나네요.
어떤 쿼리를 해도 마찬가지예요.
정승욱 [doraq]   2012-07-02 22:09 X
다른분이 올리신 libmysql.dll을 쓰니가 되네요

+ -

관련 글 리스트
762 dbExpress로 MySQL 5.x에 연결 하기(dbExpress drivers for MySQL 5.x) 이점한 12854 2008/03/21
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.