Не удается открыть базу данных с помощью ADO C ++, при открытии базы данных встречается сообщение "_com_error" - PullRequest
0 голосов
/ 01 апреля 2019

Я пытаюсь подключить свой проект C ++ к SQL Server, используя ADO.it, работает хорошо при проверке первого «hr», но возникает ошибка при открытии базы данных во втором операторе «if», он говорит Microsoft C++ exception: _com_error at memory location. и в окне отладки _hr есть такое значение _hr: DB_E_ERRORSOCCURRED Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.

вот мое соединение:

_bstr_t strCon("Provider=sqloledb; Data Source=...\\SQLEXPRESS;Initial Catalog=TestDB;Integrated Security=True");
HRESULT hr = S_OK;
CoInitialize(NULL);

//Create the Connection pointer
hr = pConnection.CreateInstance(__uuidof(Connection));
if (FAILED(hr))
{
    printf("Error instantiating Connection objectn");
}

//Open the SQL Server connection
hr = pConnection->Open(strCon, "", "", adConnectUnspecified);
if (FAILED(hr))
{
    printf("Error Opening Database object using ADO _ConnectionPtr n");
}

Я также пытался установить соединение с источниками данных ODBC и записать это в моем коде _bstr_t strCon("ADOSQL"); вместо этого _bstr_t strCon("Provider=sqloledb; Data Source=DESKTOP-MCOUUN9\\SQLEXPRESS;Initial Catalog=TestDB;Integrated Security=True");, и ошибки нет, но когда отладчик проходит pConnection-> Open, в значении, которое остается, ничего не меняется как было в начале <Information not available, no symbols loaded for msado15.dll>.

Любые идеи о том, что может быть причиной этого исключения? Заранее спасибо.

...