首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> 關於VC++

調用 ADO 建立連接字符串對話框的完整代碼

     編輯:關於VC++

效果

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

ADO 連接字符串對話框

核心代碼

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());
}

工程配置要求

  1. 新建專案勾選 Automation
  2. 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

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved