#include //windows kornyezetben include-olni kell a windows.h-t //#include //az sql.h es az sqlext.h szuksegesek az sql mukodtetesehez #include #include /* a lenti ket struktura szukseges az adattablaban levo oszlopokra valo hivatkozashoz */ /* az SQL kezdetu tipusok kinezhetoek az sqlext.h header=bol */ static struct { SQLINTEGER ind; SQLVARCHAR val[20]; } szoveg; static struct { SQLINTEGER ind; SQLINTEGER val; } szam; int main() { /* letrehozzuk a szukseges valtozokat */ 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); /* ellenorizzuk, hogy a kapcsolatteremtes sikeres volt-e */ if (SQL_SUCCEEDED(ret)) { printf("Connected\n"); } else { printf("Failed to connect\n"); return -1; } SQLAllocHandle(SQL_HANDLE_STMT, dbc, &stmt); /* letrehozzuk az utasitast tartalmazo stringet*/ SQLCHAR *text = (SQLCHAR *)"SELECT szam,szoveg from pelda"; /* elokeszitjuk, majd vegrehajtjuk az utasitast*/ SQLPrepare(stmt, text, SQL_NTS); ret = SQLExecute(stmt); /* hozzarendeljuk a megfelelo strukturakat az eredmenytabla egyes oszlopaihoz */ /* ezt a lepest automatizalhatjuk is, ha lekerdezzuk az eredmenytabla szerkezetet */ ret = SQLBindCol(stmt, 1, SQL_C_SHORT , &szam.val, 0, &szam.ind); ret = SQLBindCol(stmt, 2, SQL_C_CHAR , &szoveg.val, 20, &szoveg.ind); /* lekerjuk az eredmeny elso sorat */ ret = SQLFetch(stmt); /* ellenorizzuk, hogy van-e meg adat es ha van kiirjuk a kepernyore */ if (ret == SQL_NO_DATA_FOUND) { printf("\n Data not found.\n"); } while (ret != SQL_NO_DATA_FOUND) { printf("%d | %s\n", szam.val,szoveg.val); /* lekerjuk a kovetkezo sort */ ret = SQLFetch(stmt); } return 0; }