How to get data from a database using ODBC API?

Submitted by date of submission user level 

Mahesh Chand July 01, 2000 Beginner 

Include , "sql.h", "sqlext.h", and "sqltypes.h" in your project's stdafx.h file. 

UCHAR FAR * szColName = new UCHAR[15];

SWORD FAR pcbColName;

SWORD pfSqlType;

UDWORD pcbColDef;

SWORD pibScale;

SWORD pfNullable;

SQLHENV henv;

SQLHDBC hdbc;

SQLHSTMT hstmt;

RETCODE retcode ;

retcode = ::SQLAllocEnv(&henv);

if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)

{

retcode = ::SQLAllocConnect( henv, &hdbc);

if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)

{

/*Connect to data source. my data source name is "Kruse". 'Access' table in this database contains two fields 'Name' and 'HTML' of TEXT type. */

retcode = ::SQLConnect(hdbc, (SQLCHAR*) "Kruse", SQL_NTS, (SQLCHAR*) "", SQL_NTS, (SQLCHAR*) "", SQL_NTS);

if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO){

/* Allocate statement handle */

retcode = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt);

if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)

{

/* Preparing SQL statement. here you can pass any sql statemens such as DELETE * FROM Access to delete or UPDATE .. */

retcode = ::SQLPrepare(hstmt, (UCHAR FAR*)"INSERT INTO ACCESS(Name, HTML) VALUES('myName','myHTML')",(SDWORD)54);

ASSERT(retcode == SQL_SUCCESS);

/*Execute the statement */

retcode = ::SQLExecute(hstmt);

SQLFreeHandle(SQL_HANDLE_STMT, hstmt);

}

SQLDisconnect(hdbc);

}

SQLFreeHandle(SQL_HANDLE_DBC, hdbc);

}

}

SQLFreeHandle(SQL_HANDLE_ENV, henv);