2009-06-16 2 views
0

Используя приведенную ниже строку подключения, я могу подключиться к SQL2000 DB, но не SQL2005. У меня есть код в файле ASP.Невозможно подключиться к SQL2005 с помощью VBScript

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 входа в систему включен на сервере SQL.

Ошибка: соединение не может использоваться для выполнения этой операции. В этом контексте он либо закрыт, либо недействителен. Бывает на rs.Open sql, cn, 3,4

+0

У меня есть другие приложения .Net, которые без проблем попадают на этот сервер. – Picflight

+0

Дважды проверьте свои разрешения и таблицы на сервере sql2005; ваш код подключения отлично работает для меня с sql 2000, 2005 и 2008. – SqlACID

ответ

0

Какая ошибка? Установка SQL Server 2005/8 с удаленными подключениями отключена - check this support article.

Я вижу, попробуйте установить ваш connString на свой объект Connection (вы используете conn вместо connStr). Uee option explicit, чтобы избежать этих ошибок.

+0

Я обновил сообщение с ошибкой. SQL 2005 настроен для удаленных подключений. У меня есть другие приложения .Net, которые без проблем попадают на этот сервер. – Picflight

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 

Вы вызываете переменную соед как строки подключения, но вы объявили и заполнили connStr

Изменить «cn.Open соед» с " cn.Open connStr "

+1

И всегда используйте «Option Explicit», чтобы предотвратить это в будущем. – RBarryYoung

Смежные вопросы