#include <windows.h>
#include <sql.h>
#include <sqlext.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

SQLHENV hEnv = SQL_NULL_HENV;
SQLHDBC hDbc = SQL_NULL_HDBC;

int main(void)
{
	SQLRETURN res;
	int nPrompt = SQL_DRIVER_COMPLETE, leng;
	long timeout = 0;
	char *cDSN = "dsn";
	char *cUSER = "dbs";
	char *cPWD = "k3apkwrj8";
	SQLCHAR     connOut[255]; /* buffer for connection output */
	SQLSMALLINT szConnOut; /* num bytes returned in connOut */


	SQLCHAR connString[256] = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost;Database=test;Option=4;";

	SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HENV, &hEnv);
    SQLSetEnvAttr(hEnv,SQL_ATTR_ODBC_VERSION,(SQLPOINTER)SQL_OV_ODBC3, SQL_IS_INTEGER);
	SQLAllocHandle(SQL_HANDLE_DBC, hEnv, &hDbc);

	SQLSetConnectAttr(hDbc, SQL_ATTR_CONNECTION_TIMEOUT, &timeout, sizeof(timeout) );

	//res = SQLConnect(hDbc, cDSN,  SQL_NTS, cUSER, SQL_NTS, cPWD,  SQL_NTS);
	SQLDriverConnect(hDbc, (HWND)0, connString, SQL_NTS, connOut, 255, &szConnOut, nPrompt);

	SQLGetConnectAttr(hDbc, SQL_ATTR_CONNECTION_TIMEOUT, &timeout, sizeof(timeout), &leng);
	printf("===> Timeout: %d", timeout);

	if (res != SQL_SUCCESS)
	{
		printf( "Connection error!\r\n" );
	}
	else
	{
		printf("Connected! DSN=%s, USER=%s, PWD=%s\r\n", cDSN, cUSER, cPWD);
	}
	res= SQLDisconnect(hDbc);	
	res =SQLFreeHandle(SQL_HANDLE_DBC, hDbc);
	res =SQLFreeHandle(SQL_HANDLE_ENV, hEnv);
	return 0;
}
