Не удалось подключиться к серверу sql 2017, но при использовании ADO c ++ вывести нулевую информацию об ошибке - PullRequest
0 голосов
/ 15 мая 2019

Моя среда: Windows 10, Microsoft SQL Server 2017 Developer Edition.

Я использую c ++ ADO для подключения к серверу sql, но при подключении к серверу выдает ошибку, новернуть нулевую информацию об ошибке.

Ниже приведены мои коды,

// ms_connection.h

#import "C:\Program Files (x86)\Common Files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")rename("BOF","adoBOF")

class MSConnection
{
public:

    virtual void init();
    virtual void connect();

private:

    _ConnectionPtr m_connection;

};
// ms_connection.cpp

#include "ms_connection.h"

void MSConnection::init()
{
    try
    {
        m_connection.CreateInstance("ADODB.Connection");
    }
    catch (_com_error e)
    {
        LOG_ERROR << "MSConnection failed when try to init the object, " << (const char*)e.Description();

        throw (const char*)e.Description();
    }
}

void MSConnection::connect()
{
    try
    {
        m_connection->Open(L"Provider=SQLOLEDB;Data Source=127.0.0.1, 1443;", L"root", L"haiwell", adModeUnknown);
    }
    catch (_com_error e)
    {
        LOG_ERROR << "MSConnection failed when try to connect to the server, " << (const char*)e.Description();

        throw (const char*)e.Description();
    }
}

При выполнении init() и connect() я обнаружил ошибку в журнале

2019-05-15 11:00:18.343 ERROR [14408] [MSConnection::connect@36] MSConnection failed when try to connect to the server, (null)

Я перезапустил свой компьютер и сервер sql, но проблема все еще существует.

Может кто-нибудь дать мне какой-нибудь совет?Почему это так странно?

Заранее большое спасибо.

1 Ответ

0 голосов
/ 16 мая 2019

Просто добавьте ::CoInitialize(NULL); в той же функции, что и Open, все будет в порядке.

...