MySQL是一個流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。它是開放源代碼的,免費(fèi)使用。ODBC是一種面向應(yīng)用程序的接口,它允許應(yīng)用程序在不考慮底層數(shù)據(jù)庫管理系統(tǒng)的情況下,訪問數(shù)據(jù)庫。MySQL ODBC(MySQL Connector/ODBC)是一個MySQL官方提供的ODBC驅(qū)動程序。
MySQL ODBC驅(qū)動程序可以在Windows和Linux環(huán)境中使用。圖形化工具像ODBC Administrator可以用來配置ODBC數(shù)據(jù)源,使得MySQL ODBC驅(qū)動程序可以訪問MySQL數(shù)據(jù)庫。MySQL ODBC驅(qū)動程序還支持一些常見的ODBC API和數(shù)據(jù)類型,所以當(dāng)你使用ODBC訪問MySQL時,你會發(fā)現(xiàn)它與使用其他數(shù)據(jù)庫(如Oracle和SQL Server)時的體驗非常類似。
//Example Code in C #include#include void main() { SQLHENV henv; SQLHDBC hdbc; char* connStr = "DRIVER={MySQL ODBC 8.0 Driver}; SERVER=localhost; DATABASE=mydatabase; USER=root; PASSWORD=mypassword;"; SQLRETURN ret; ret = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv); if (ret != SQL_SUCCESS) { printf("Unable to allocate environment handle\n"); return; } ret = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, SQL_IS_UINTEGER); if (ret != SQL_SUCCESS) { printf("Unable to set ODBC version\n"); return; } ret = SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc); if (ret != SQL_SUCCESS) { printf("Unable to allocate connection handle\n"); return; } ret = SQLDriverConnect(hdbc, NULL, (SQLCHAR*)connStr, SQL_NTS, NULL, 0, NULL, SQL_DRIVER_COMPLETE); if (ret == SQL_SUCCESS) { printf("Connection successful\n"); } SQLDisconnect(hdbc); SQLFreeHandle(SQL_HANDLE_DBC, hdbc); SQLFreeHandle(SQL_HANDLE_ENV, henv); }
上面的代碼使用了C語言的ODBC API來連接MySQL數(shù)據(jù)庫。它使用了DRIVER,SERVER,DATABASE,USER和PASSWORD參數(shù)來指定連接信息,調(diào)用SQLDriverConnect函數(shù)來建立連接,最后使用SQLDisconnect來斷開連接。