无法使用VBScript连接到SQL2005

时间:2009-06-16 23:41:13

标签: sql-server-2005 vbscript

使用下面的连接字符串,我可以连接到SQL2000 DB而不是SQL2005。我在ASP文件中有代码。

Dim connStr, cn, rs, sql
connStr = "Provider=SQLOLEDB;Persist Security Info=True" _
           & ";Initial Catalog=mydatabase"  _
           & ";User ID=dbuser" _
           & ";Password=dbpwd" _
           & ";Data Source=servername" 
sql = "SELECT TOP 1 [Column1] FROM [dbo].[MyTable] order by NEWID()"
Set cn = Server.CreateObject("ADODB.Connection")
cn.Open cn

set rs= server.CreateObject("ADODB.Recordset")
    rs.CursorLocation=3
    rs.Open sql,cn,3,4

    if not rs.EOF then
       Response.Write("<b>Column1: " & rs("Column1") & "</b><br />")
    end if
set rs.ActiveConnection= nothing    
    rs.Close
    set rs= nothing
if ucase(TypeName(cn)) = "CONNECTION" then
    cn.Close
    Set cn = Nothing
end if

我甚至厌倦了SQLOLEDB.1 在sql server上启用了Sql登录。

错误:连接无法用于执行此操作。在此上下文中它是关闭的或无效的。 发生在rs.Open sql,cn,3,4

2 个答案:

答案 0 :(得分:3)

有时会发生在每个人身上:

Dim connStr, cn, rs, sql
connStr = "Provider=SQLOLEDB;Persist Security Info=True" _
           & ";Initial Catalog=mydatabase"  _
           & ";User ID=dbuser" _
           & ";Password=dbpwd" _
           & ";Data Source=servername" 
sql = "SELECT TOP 1 [Column1] FROM [dbo].[MyTable] order by NEWID()"
Set cn = Server.CreateObject("ADODB.Connection")
cn.Open connStr

您将变量 conn 称为连接字符串,但您已声明并填充 connStr

用“cn.Open connStr”改变“cn.Open conn”

答案 1 :(得分:0)

错误是什么?禁用远程连接的SQL Server 2005/8安装 - check this support article

我明白了,尝试在Connection对象上设置connString(使用conn而不是connStr)。 Uee option explicit可以避免这些错误。