我有一個SDI MFC,我想使用CDatabase連接到遠程SQL服務器。MFC使用ODBC連接到SQL服務器
我在我的電腦中創建了一個ODBC連接,並且DSN是'TodoTest'。
這是我的代碼。
CDatabase db;
CString connStr = _T("DSN=TodoTest;");
if (!db.OpenEx(connStr, CDatabase::openReadOnly))
{
// Failed to connect to database.
return;
}
CRecordset rs(&db);
......
的問題是,它似乎OpenEx()已被暫停永遠,因爲我看不到它的任何返回值,而代碼永遠不會運行到後續行。
程序被凍結。
我應該在連接字符串中包含任何其他信息嗎?
謝謝。
你等了多久?足夠遇到超時?另請注意,您的連接字符串不完整。它缺少用戶和密碼信息。查看示例的文檔:https://msdn.microsoft.com/en-us/library/2dhc1abk.aspx#cdatabase__openex – erg
@erg不需要用戶和密碼,您將在ODBC連接對話框中鍵入這些內容。當你使用'CDatabase :: noOdbcDialog'選項時,你需要插入它們。 – kajojeq
看起來不錯,試圖更深入地調試,當我故意插入錯誤的ODBC名稱時,它讓我感到沮喪。嘗試檢查它到底在哪裏。提供錯誤的ODBC名稱是這樣的:'CDatabase :: OpenEx - > CDatabase :: Connect - > CDatabase :: ThrowDBException' – kajojeq