【问题标题】:VBScript how to set the connection stringVBScript如何设置连接字符串
【发布时间】:2009-09-03 07:41:53
【问题描述】:

我不确定之前是否讨论过它,但我有以下代码(我从 Access 数据库的示例中更改。)

我不知道在 'Provider''Data Source' 里面放什么.我正在使用 MS SQL Server 2005,如何在我的机器中找到这些信息?拜托,即使我尝试从这里 http://www.connectionstrings.com/ 关注,但我仍然不知道该怎么做。


Dim conn, sql
sql = "SELECT * FROM tblOutbox"
Set conn = CreateObject("ADODB.Connection")
With conn
      .Provider = "myProvider"
      .Mode = adModeReadWrite
   .ConnectionString = "Data Source=mysource;" & _
          "database=myDbase.mdf;   "
      .Open 
End With
If conn.State = adStateOpen Then
      WScript.Echo "Connection was established."
End If
conn.Close
Set conn = Nothing

这里使用的是访问数据库:


Dim conn 
Dim sql
sql = "SELECT * FROM tblOutbox"
Set conn = CreateObject("ADODB.Connection")
   With conn
      .Provider = "Microsoft.Jet.OLEDB.4.0"
      .Mode = adModeReadWrite
      .ConnectionString = "Data Source= f:/Status.mdb"
      .Open 
   End With
   WScript.Echo "Connection was opened." 
conn.Close
Set conn = Nothing
WScript.Echo "Connection was closed."

【问题讨论】:

    标签: sql-server-2005 vbscript connection-string database-connection wsh


    【解决方案1】:

    尝试在连接字符串中设置提供者

    conn.ConnectionString = "Provider=SQLOLEDB.1;Data Source=XXX;Initial Catalog=XXX;User ID=<XXX>;Password=<XXX>;"
    

    注意:我还没有测试过,但它应该可以工作

    【讨论】:

    • 要使用 SQL 2005 客户端,请使用 SQLNCLI 的提供者
    • SQLOLEDB 和 SQLNCLI 都适用于 SQL 2005。我没有看到两者的性能差异。
    • 好的,从我的代码中,我删除了提供程序,并用以下代码替换模式:conn.ConnectionString = "Provider=SQLOLEDB.1;Data Source=F:\admin.mdf;Initial Catalog=admin ;"我还删除了 uid 并通过了因为我没有使用它。出现此类错误:错误:授权规范无效来源:Microsoft OLE DB Provider for SQL Server System:这些工作站与此服务器上的打开文件有会话:
    【解决方案2】:

    满足您所有的连接字符串需求:http://www.connectionstrings.com/

    【讨论】:

      【解决方案3】:

      感谢您的帮助,我终于找到了解决方案。 在管理工具、数据源 (ODBS)、驱动程序选项卡下,我使用提供程序:SQLNCLI,我的服务器:数据源,并将 Recordset rs 添加到代码中。似乎没有这个,连接就没有建立起来。我不知道发生了什么。

      Dim conn , rs, sql, ConnString
      sql = "SELECT * FROM tblOutbox"
      Set rs = CreateObject("ADODB.Recordset")
      Set conn = CreateObject("ADODB.Connection")
      With conn
            .Provider = "SQLNCLI"
            .Mode = adModeReadWrite
            .ConnectionString = "SERVER=.\SQLExpress;AttachDbFilename=F:\Test2.mdf;Database=Test2.mdf; Trusted_Connection=Yes;"
            .Open
            WScript.Echo "Connection was established."
      End With
      rs.Open sql,conn
      If conn.State = adStateOpen Then
            WScript.Echo "Connection was established."
      Else
        WScript.Echo "No Connection ."
      End If
      rs.Close
      Set rs = Nothing
      conn.Close
      Set conn = Nothing
      

      【讨论】:

        【解决方案4】:

        使用 SQL Server,您不会直接连接到文件。 Access,作为基于文件的 RDBMS 有点不同。

        按照你的例子,它看起来像这样:

        Dim conn, sql
        sql = "SELECT * FROM tblOutbox"
        Set conn = CreateObject("ADODB.Connection")
        With conn
              .Mode = adModeReadWrite
              .ConnectionString = "Provider=SQLOLEDB;server=[servername];database=[databasename]uid=[insertuser];pwd=[insertpassword];"
              .Open 
        End With
        If conn.State = adStateOpen Then
              WScript.Echo "Connection was established."
        End If
        conn.Close
        Set conn = Nothing
        

        通常有一种更简洁的方法,但如果没有上下文,很难给出更好的例子

        【讨论】:

        • 什么是服务器名?我在哪里可以找到它?凯恩的回答说有数据源,初始目录等。和你的有什么区别?这个使用c#:连接字符串(“数据源=.\SQLEXPRESS;AttachDbFilename=F:\Test2.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True”)。我可以从这里得到什么有用的东西吗?
        • 服务器名称是您尝试连接的 SQL Server 实例。数据库名称是数据库的名称 - 而不是 .mdf 文件。
        • 如果您不知道它们是什么,请询问管理员。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-15
        • 2019-01-07
        • 2020-09-18
        • 1970-01-01
        • 1970-01-01
        • 2020-04-14
        相关资源
        最近更新 更多