SQLHENV henv;
SQLHDBC hdbc;
SQLRETURN retcode;
SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv);
SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0);
SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);
SQLCHAR* connStr = (SQLCHAR*)"DRIVER={PostgreSQL};"
"SERVER=173.20.99.107;"
"Port=5432;"
"DATABASE=cpspg;"
"UserName=sac;"
"Password=sac;"
"Keepalive=1"
"KeepaliveTime=1;"
"KeepaliveInterval=1"
"Parse=1"
"UseServerSidePrepare=0";
//"CHARSET=UTF8;"
//"AUTOCOMMIT=0";
retcode = SQLDriverConnect(hdbc, NULL, connStr, SQL_NTS, NULL, 0, NULL, SQL_DRIVER_NOPROMPT);
if (retcode == SQL_SUCCESS || retcode== SQL_SUCCESS_WITH_INFO)
{
SQLHANDLE hstmt;
SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt);
const char* sql_statement = "select now()";
retcode = SQLPrepare(hstmt, (SQLCHAR*)sql_statement, SQL_NTS);
std::string temp;
std::cout << "input something:";
std::cin >> temp;
SQLSMALLINT count;
retcode = SQLNumResultCols(hstmt, &count);
std::cout << "col count is " << count << std::endl;
if (retcode == SQL_SUCCESS || retcode== SQL_SUCCESS_WITH_INFO)
{
std::cout << "insert success" << std::endl;
}
else
{
HandleDiagnosticRecord(hdbc, SQL_HANDLE_DBC, retcode);
}
//SQLEndTran(SQL_HANDLE_DBC, hdbc, SQL_ROLLBACK);
SQLEndTran(SQL_HANDLE_DBC, hdbc, SQL_COMMIT);
SQLDisconnect(hdbc);
}
else
{
HandleDiagnosticRecord(hdbc, SQL_HANDLE_DBC, retcode);
}
SQLFreeHandle(SQL_HANDLE_DBC, hdbc);
SQLFreeHandle(SQL_HANDLE_ENV, henv);