C++ C++;:ODBC驱动程序将不会提示
我试图找出ODBC连接到数据库不起作用的原因,我编写了代码(顶部)并注释了另一个程序的源代码。这是完全正常的,驱动程序窗口弹出要求我选择数据库/等。我已经看了20多分钟了,我的代码(在我眼里)是完全相同的,但不工作。因此,我想有一套新的眼睛来看看这一点,让我知道,如果有什么是不同的评论了部分C++ C++;:ODBC驱动程序将不会提示,c++,sql,odbc,C++,Sql,Odbc,我试图找出ODBC连接到数据库不起作用的原因,我编写了代码(顶部)并注释了另一个程序的源代码。这是完全正常的,驱动程序窗口弹出要求我选择数据库/等。我已经看了20多分钟了,我的代码(在我眼里)是完全相同的,但不工作。因此,我想有一套新的眼睛来看看这一点,让我知道,如果有什么是不同的评论了部分 感谢您,1)获取实际返回值而不是测试您选择的值是值得的,2)调用SQlGetDiagRec确定错误原因。1)获取实际返回值而不是测试您选择的值,2)调用SQlGetDiagRec确定错误原因,这都是值得的。
感谢您,1)获取实际返回值而不是测试您选择的值是值得的,2)调用
SQlGetDiagRec
确定错误原因。1)获取实际返回值而不是测试您选择的值,2)调用SQlGetDiagRec
确定错误原因,这都是值得的。
case IDB_LOGIN:{
SQLHENV SQLEnviroment = NULL;
SQLHDBC SQLConnection = NULL;
if (SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &SQLEnviroment) != SQL_SUCCESS) {
MessageBox(NULL, NULL, NULL, NULL);
}
if (SQLSetEnvAttr(SQLEnviroment, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0) != SQL_SUCCESS)
{
MessageBox(NULL, NULL, NULL, NULL);
}
if (SQLAllocHandle(SQL_HANDLE_DBC, SQLEnviroment, &SQLConnection) != SQL_SUCCESS) {
MessageBox(NULL, NULL, NULL, NULL);
}
if (SQLDriverConnect(SQLConnection, GetDesktopWindow(), L"DRIVER={SQL DRIVER}; Server=LIVINGTREE; Database=Application Database;Uid=AdminNick;Pwd=spawn1234;", SQL_NTS, NULL, 0, NULL, SQL_DRIVER_PROMPT) == SQL_SUCCESS_WITH_INFO) {
MessageBox(NULL, L"Connected!", NULL, MB_OK);
}
//SQLHENV hEnv = NULL;
//SQLHDBC hDbc = NULL;
//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);
//SQLDriverConnect(hDbc,
// GetDesktopWindow(),
// L"Driver={SQL Server};Server=.\\LIVINGTREE;Database=Application Database;Uid=AdminNick; Pwd=spawn123;",
// SQL_NTS,
// NULL,
// 0,
// NULL,
// SQL_DRIVER_COMPLETE);
break;
}