SQLHENV henv; // Environment
SQLHDBC hdbc; // Connection handle
SQLHSTMT hstmt1; // Statement handle
henv=NULL;
hdbc=NULL;
hstmt1=NULL;
int MyDBOpen(void)
{
SQLRETURN retcode;
if(henv) return 0;
//DB already opened
// Allocate environment handle
retcode = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv);
if (!MYSQLSUCCESS(retcode))
{
henv=NULL;
return 0;
}
// Set the ODBC version environment attribute
retcode = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0);
if (MYSQLSUCCESS(retcode))
{
// Allocate connection handle
retcode = SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);
}
if (!MYSQLSUCCESS(retcode))
{
SQLFreeHandle(SQL_HANDLE_DBC, hdbc);
hdbc=NULL;
return 0;
}
SQLSetConnectAttr(hdbc, SQL_LOGIN_TIMEOUT, (SQLPOINTER)5, 0);
// Connect to data source
// '236MLDB‘ is DataBase Source (ODBC data source) name, not database name;
retcode = SQLConnect(hdbc, (SQLWCHAR*) L"236MLDB", SQL_NTS, L"MLDBUser", SQL_NTS, L"HelloWorld001!", SQL_NTS);
//retcode = SQLConnect(hdbc, (SQLWCHAR*) L"LocalMLDB", SQL_NTS, L"", SQL_NTS, L"", SQL_NTS);
// retcode = SQLConnect(hdbc, (SQLWCHAR*) L"V30translations", SQL_NTS, L"V30User", SQL_NTS, L"pw", SQL_NTS);
if (!MYSQLSUCCESS(retcode))
{ LogSQLError(SQL_HANDLE_DBC,hdbc);
hdbc=NULL;
return 0;
}
// Allocate statement handle
retcode = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt1);
if (!MYSQLSUCCESS(retcode))
hstmt1=NULL;
if (!MYSQLSUCCESS(retcode))
return 0;
return 1;
}