【问题标题】:Unable to connect to SQL LocalDB无法连接到 SQL LocalDB
【发布时间】:2012-07-10 22:31:45
【问题描述】:

我有一个本机 C++ 应用程序,我在其中尝试使用 ADO 连接到 localdb 实例。手动启动我的实例后,我可以运行 sqllocaldb info v11.0 并查看数据库实例正在运行。

我的代码如下。

ADO::_ConnectionPtr spConnection (__uuidof (ADO::Connection));
spConnection->Open (L"Provider=SQLNCLI11;Server=(localdb)\\v11.0;Integrated Security=true", L"", L"", 0);

错误代码为 DB_E_ERRORSOCCURRED (0x80040e21),错误消息为 多步 OLE DB 操作生成错误。检查每个 OLE DB 状态值(如果可用)。没有完成任何工作。

我能够使用 SQL Server Management Studio 成功连接到数据库,并且我已经尝试过在连接字符串中使用和不使用提供程序以及指定初始目录。

【问题讨论】:

  • 您是否在本地计算机上安装了 .NET 4.02 或更高版本?这是使用 localdb 的先决条件
  • 我确实安装了 .NET 4.02(来自 support.microsoft.com/kb/2544514)但没有运气,尽管我认为这只是与 VS2010 一起使用所必需的

标签: sql-server sql-server-2012 localdb


【解决方案1】:

我发现了我的问题。安全必须设置为sspi,如下所示。

ADO::_ConnectionPtr spConnection (__uuidof (ADO::Connection));
spConnection->Open (L"Provider=SQLNCLI11;Server=(localdb)\\v11.0;Integrated Security=SSPI", L"", L"", 0);

【讨论】:

    【解决方案2】:

    ADO 连接对象有一个错误集合,其中包含迄今为止发生的错误列表。你可以看看这些错误,看看有什么问题。 在连接到 SQL Server 时,通常会出现两件事。 1.登录失败。 2.SQL Server 没有配置成可以远程连接。 由于您正在尝试连接到本地服务器,因此这几乎不是第二个原因。 正如您现在可能在 SQL Server 方面有两种不同类型的身份验证:Windows 和 SQL Server。如果在 SQL Server 选项中设置了它们中的每一个,则可以使用其中一种,如果选择了混合模式,则可以同时使用两者. 根据您的连接字符串,您使用的是 Windows 模式身份验证,因此您应该使用可以登录 SQL Server 的 Windows 用户登录。如果您的 SQL Server 不是这种情况,那么您应该在连接字符串中提供 SQL 用户凭据。 无论如何检查连接对象的错误集合,看看您的本地数据库是否有其他问题。

    【讨论】:

    • 错误集合中唯一的错误是“多步 OLE DB 操作生成错误。检查每个 OLE DB 状态值(如果可用)。没有完成任何工作。'
    猜你喜欢
    • 2022-01-22
    • 2015-06-03
    • 2016-08-10
    • 1970-01-01
    • 2022-01-20
    • 1970-01-01
    • 2017-04-23
    • 1970-01-01
    相关资源
    最近更新 更多