首页 > 解决方案 > 没有连接到 SQL Server

问题描述

我已经安装了 VS2019、MSSQL Server 2014 和 SQL Server Management Studio 版本 16.5.3 并通过 Msg 变量 [Microsoft][ODBC Driver 11 for SQL Server]TCP Provider: No connection could be made because the target machine主动拒绝它. 问题是什么?我没有防火墙。同一台计算机的数据库运行。

int main()
{
    SQLHANDLE sqlEnvHandle;
    if (SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &sqlEnvHandle) == SQL_SUCCESS)
        cout << "success" << endl;
    
    if( SQLSetEnvAttr(sqlEnvHandle, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0) == SQL_SUCCESS)
        cout << "success" << endl;

    SQLHANDLE sqlConnHandle;
    if(SQLAllocHandle(SQL_HANDLE_DBC, sqlEnvHandle, &sqlConnHandle) == SQL_SUCCESS)
        cout << "success" << endl;

    cout << "Attempting connection to SQL Server..." << endl;

    #define SQL_RETURN_CODE_LEN 1000
    SQLWCHAR retconstring[SQL_RETURN_CODE_LEN];
    //SQLCHAR retconstring[SQL_RETURN_CODE_LEN];
    switch (SQLDriverConnect(sqlConnHandle,
        NULL,
        //(SQLWCHAR*)L"DRIVER={SQL Server};SERVER=localhost, 1433;DATABASE=master;Trusted=true;",
        (SQLWCHAR*)L"DRIVER={ODBC Driver 11 for SQL Server};SERVER=BLACK4-PC\\SQLEXPRESS, 1433;DATABASE=My_BASE;Trusted=true;",
        SQL_NTS,
        retconstring,
        1024,
        NULL,
        SQL_DRIVER_NOPROMPT))
    {
        case SQL_SUCCESS:
        {
            cout << "Successfully connected to SQL Server" << endl;
            break;
        }
        case SQL_INVALID_HANDLE:
        {
            cout << " Could not connect to SQL Server 1" << endl;
            break;
        }
        case SQL_ERROR:
        {
            cout << " Could not connect to SQL Server 2" << endl;

            SQLSMALLINT i = 1, MsgLen;
            SQLWCHAR SqlState[6];
            SQLRETURN rc2;
            SQLINTEGER NativeError[1];
            SQLWCHAR Msg[SQL_MAX_MESSAGE_LENGTH];
            rc2 = SQLGetDiagRec(SQL_HANDLE_DBC, sqlConnHandle, i, SqlState, NativeError,
                Msg, sizeof(Msg), &MsgLen);
            break;
        }

    }
    
    SQLDisconnect(sqlConnHandle);
    SQLFreeHandle(SQL_HANDLE_DBC, sqlConnHandle);
    SQLFreeHandle(SQL_HANDLE_ENV, sqlEnvHandle);

    return 0;
}

标签: c++sql-server

解决方案


推荐阅读