2009-06-16 6 views
0

En utilisant la chaîne de connexion ci-dessous, je peux me connecter à une base de données SQL2000 mais pas SQL2005. J'ai le code dans un fichier ASP.Impossible de se connecter à SQL2005 à l'aide de 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 

J'ai même fatigué avec SQLOLEDB.1 connexion sql est activée sur le serveur SQL.

Erreur: La connexion ne peut pas être utilisée pour effectuer cette opération. Il est fermé ou invalide dans ce contexte. Happens sur rs.Open sql, cn, 3,4

+0

J'ai d'autres applications .Net qui touchent ce serveur sans aucun problème. – Picflight

+0

Vérifiez vos autorisations et vos tables sur le serveur sql2005; votre code de connexion fonctionne bien pour moi avec SQL 2000, 2005 et 2008. – SqlACID

Répondre

0

Quelle est l'erreur? Installation de SQL Server 2005/8 avec des connexions à distance désactivées - check this support article.

Je vois, essayez de définir votre connString sur votre objet Connection (vous utilisez conn au lieu de connStr). Uee option explicit pour éviter ces erreurs.

+0

J'ai mis à jour le poste avec l'erreur. Le SQL 2005 est configuré pour les connexions à distance. J'ai d'autres applications .Net qui touchent ce serveur sans aucun problème. – Picflight

3

Il arrive à tout le monde quelque temps:

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 

Vous appelez une variable de conn en tant que chaîne de connexion mais vous avez déclaré et rempli connStr

Change "cn.Open conn" avec " cn.Open connStr "

+1

Et toujours utiliser "Option Explicit" pour éviter cela à l'avenir. – RBarryYoung

Questions connexes