2008-11-19 3 views
0

J'ai transféré un site classique asp fonctionnant sur Windows Server 2003 à Windows Server 2008, mais tout à coup le code ci-dessous a cessé de fonctionner.fonction classique d'ouverture DB ASP ne fonctionne pas

Const connStr_FC08 = "Provider=SQLNCLI10;Server=DS-47500;Database=TestDB;Uid=TestLogin;Pwd=test;Network=dbmssocn;" 

Function connDB(OpenDB) 
    DIM conn 
    SET conn = Server.CreateObject("ADODB.Connection") 
    conn.open = connStr_FC08 
    If OpenDB = "Y" Then conn.open 
    connDB = conn 
End Function 

dim cn, cmd 
cn = connDB("Y") 
response.Write(cn.state) 

Cela renvoie l'erreur ci-dessous

Microsoft VBScript runtime error '800a01a8' 

Object required: 'Provider=SQLNCLI10.1' 

Cela se produit sur la ligne ci-dessous

response.write(cn.state) 

Merci Chris

Répondre

0

Vous avez ce fournisseur SQL installé droit?

Vous pouvez mettre cette fonction dans un simple script VBScript pour tester sans modifier vos pages tout.

0

Si je prends l'ouverture de la connexion de la fonction et de mettre en ligne alors il n'y a pas d'erreur et il fonctionne.

Mais mon site fonctionne tout en utilisant cette fonction si a) Je ne veux pas avoir à réécrire mon code et b) Je ne comprends pas pourquoi cela ne fonctionne pas quand il utilisé pour.

+0

Cela ne semble pas avoir fonctionné. (Voir les suggestions de syntaxe de Mike Henry) Peut-être que cela fonctionnait "parce que vous aviez" Sur Erreur Goto Suivant "et que des erreurs étaient cachées? Aussi, si votre « ensemble du site fonctionne en utilisant cette fonction » Pourquoi réécrivant ce soit un problème? Pourquoi est-il même "réécrit"? Vous changez 2 lignes de code et tout votre site fonctionne à nouveau. :) –

2

Je vois quelques problèmes possibles de syntaxe avec le code affiché:

... 
    conn.open = connStr_FC08 
    ... 
    connDB = conn 
... 
cn = connDB("Y") 

Faut-il être mis à jour à ce qui suit?

... 
    conn.ConnectionString = connStr_FC08 
    ... 
    Set connDB = conn 
... 
Set cn = connDB("Y")