0

所以我对 SQL 或 VBScript 了解不多,更不用说将两者放在一起了。

我正在尝试连接到运行 SQL 2008 的 SQL Server。我想做的只是连接,但我似乎做不到。我不断收到各种错误,包括:

  • “未找到数据源名称且未指定默认驱动程序”
  • “用户‘用户’登录失败”
  • “无效字符”

我已经知道http://www.connectionstrings.com,但我不知道很多事情是什么意思。什么是数据源?什么是初始目录?

这是我到目前为止所拥有的。

Dim result
Set cn = CreateObject("ADODB.Connection")
cn.ConnectionString = "Provider=SQLOLEDB.1;Server=MyIP;Database=SQLDatabase;User ID=user;Password=pass"
cn.Open
strQry = "select * from Users"
set result = cn.execute(strQry)

有人可以帮我弄清楚这个吗?

编辑 1:这是我在服务器配置管理器中看到的;

在此处输入图像描述

编辑2:我很抱歉没有说清楚。我没有连接到本地机器。我正在连接到我网络上的一台机器。

4

1 回答 1

3

数据源 = 您要连接的数据库引擎的实例,可以是主机名,也可以是与命名实例组合的主机名。通常这是localhostlocalhost\SQLEXPRESS但它也可以是 IP 地址或完全限定的域名(在您的网络内部或外部)。

初始目录 = 要连接的数据库。与连接字符串中使用的用户名/密码相关联的登录名必须属于特定的服务器角色,或者与数据库中至少属于公共角色的用户相关联。

如果您已安装 SQL Server Express Edition,则您的连接字符串为:

cn.ConnectionString = "Provider=SQLNCLI10;" & _
  "Data Source=myIP\SQLExpress;" & _
  "Initial Catalog=SQLDatabase;" & _
  "User ID=user;Password=pass"

我们无法确定这是否是正确的连接字符串 - 例如,如果您安装了默认实例或者您将实例命名为其他名称。您可以尝试其他变体(因为您说您没有安装 Express),以防出现以下问题myIP

"Data Source=localhost;" & _

或者

"Data Source=(local);" & _

或者

"Data Source=.;" & _

或者

"Data Source=127.0.0.1;" & _

要查看您实际安装的内容,您可以转到开始 > 所有程序 > SQL Server 2008 > 配置工具 > SQL Server 配置管理器,然后单击 SQL Server 服务。在右侧窗格中,您应该会看到如下内容:

在此处输入图像描述

尽管您的实例名称可能与我的不匹配。如果您看到SQL Server (MSSQLSERVER),这是一个默认实例,您的连接字符串中的数据源将是.or(local)(localhost)。如果你看到SQL Server (something other than MSSQLSERVER)那么它会是.\something other than MSSQLSERVER等等。你还可以看到实例是否正在运行,这可能是另一个问题。如果您要连接的实例已停止,您将无法连接到它,直到您右键单击并选择启动。您可能还想右键单击实例并选择属性,以便您可以将服务设置为自动启动,这样您下次重新启动时就不必重复此过程。如果您希望服务一直运行。

如果您向我们展示您在配置管理器中看到的内容,我们可以帮助您提供所需的确切连接字符串。

编辑

现在我看到更新的错误消息,其中包含:

[DBNETLIB][ConnectionOpen (Connect()).]

您可以尝试几个选项:

(1) 确保 TCP/IP 已启用。在配置管理器中,在 SQL Server 网络配置 > MSSQLSERVER 的协议下,右键单击 TCP/IP,然后选择启用。您需要重新启动 SQL Server。(虽然您应该能够使用共享内存,但这是我过去总是配置经典 ASP 的方式。)

(2) 将以下内容添加到您的连接字符串中:

cn.ConnectionString = "Provider=SQLNCLI10;" & _
  "Data Source=localhost;" & _
  "Initial Catalog=SQLDatabase;" & _
  "User ID=user;Password=pass;" & _
  "Network=DBMSSOCN;"
于 2012-06-21T17:47:36.330 回答