#include <stdio.h>
//windows kornyezetben include-olni kell a windows.h-t
//#include <windows.h>
//az sql.h es az sqlext.h szuksegesek az sql mukodtetesehez
#include <sql.h>
#include <sqlext.h>
/* a lenti ket struktura szukseges az adattablaban levo oszlopokra valo hivatkozashoz */
/* az SQL kezdetu tipusok kinezhetoek az sqlext.h header=bol */
struct
{
SQLINTEGER ind;
SQLVARCHAR val[20];
}
szoveg;
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");
exit(-1);
}
SQLAllocHandle(SQL_HANDLE_STMT, dbc, &stmt);
/* letrehozzuk az utasitast tartalmazo stringet*/
SQLCHAR *text = (SQLCHAR *)"SELECT szam,szoveg from varosok";
/* 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;
}