Skip navigation

Csatlakozás MySQL adatbázishoz ODBC-vel

Csatlakozás MySQL adatbázishoz ODBC-vel

A C/C++ programozási nyelvben ODBC-vel tudjuk elérni a MySQL kapcsolatot. A következőkben megnézzük, hogy hogyan kell ezeket kezelni. A fordítást illetően a legtöbb fejlesztői környezetben elérhető az ODBC függvénykönyvtár, illetve lib-ek, ezért ezek telepítéséről most nem ejtünk szót.

Adatbáziskapcsolat létrehozása

Az adatbázis kapcsolat előkészítéséhez be kell állítani a környezeteket, majd az SQLDriverConnect() függvénnyel létrehozzuk az adatbázis kapcsolatot. 

SQLHENV env;
SQLHDBC dbc;
SQLHSTMT stmt;
SQLRETURN ret;  
 
/* beallitjuk a kornyezeti valtozokat, az alapveto mukodeshez szukseges*/
SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &env);
SQLSetEnvAttr(env, SQL_ATTR_ODBC_VERSION, (void *) SQL_OV_ODBC3, 0);
SQLAllocHandle(SQL_HANDLE_DBC, env, &dbc);
 
/* megnyitjuk a kapcsolatot az SQLDriverConnect utasitassal*/
ret = SQLDriverConnect(dbc, NULL, (unsigned char *)"DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost;DATABASE=pelda;", SQL_NTS, NULL, 0, NULL, SQL_DRIVER_COMPLETE);

Lekérdezés előkészítése

A lekérdezést egy SQLPrepare() függvénnyel készítjük elő, majd az SQLExecute() függvénnyel futtatjuk le.

SQLCHAR *text = (SQLCHAR *)"SELECT szam,szoveg from pelda";
SQLPrepare(stmt, text, SQL_NTS);
SQLRETURN ret = SQLExecute(stmt);

Lekérdezés eredményeinek listázása

Az eredmények listázása előtt az SQLBindCol() függvénnyel meg kell mondani, hogy a lekérdezett sorok mezőit mely változókban tárolja el a rendszer. Az eredmények listázása a SQLFetch() függvénnyel történik.  Minden egyes lekérdezett sor esetén a mezőkhöz hozzárendelt változók értéke felülíródik.