彈出標準的「數據鏈接屬性」對話框,用戶選擇提供程序、服務器、認證方式、數據庫,點擊確定後返回連接字符串。

HRESULT hr;
IDataSourceLocatorPtr dlPrompt = NULL;
_RecordsetPtr rs = NULL;
try {
hr = dlPrompt.CreateInstance(__uuidof(DataLinks));
if (FAILED(hr)) throw _com_error(hr, NULL);
_ConnectionPtr pConn = dlPrompt->PromptNew(); // 彈出對話框
if (pConn == NULL) return; // 用戶取消
pConn->Open(pConn->ConnectionString, L"", L"", -1); // 驗證連接
// 獲取表列表填充界面
while (m_tblList.GetCount()) m_tblList.DeleteString(0);
rs = pConn->OpenSchema(adSchemaTables);
while (!rs->adoEOF) {
m_tblList.AddString((char*)(_bstr_t)rs->Fields->Item[L"TABLE_NAME"]->Value);
rs->MoveNext();
}
rs = NULL; dlPrompt.Release();
}
catch (_com_error &e) {
AfxMessageBox(e.ErrorMessage());
}
StdAfx.h 添加導入指令:
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
// ADO 2.0
#import "C:\Program Files\Common Files\System\Ole DB\msdasc.dll" no_namespace
// ADO 2.1
#import "C:\Program Files\Common Files\System\Ole DB\oledb32.dll" no_namespace
若某版本編譯失敗嘗試另一版本。
MSDN KB 文檔:Q225132