주로 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든 한글 입출력에 지장이 없네요
혹시 이방법 말고 더 좋은 방법을 아시는분은 댓글로 달아 주세요. ^^;