2010-07-15 19 views
0

En essayant de passer à SQLNCLI, je peux utiliser des champs varchar (max) dans mon application ASP. Aucun enregistrement n'est renvoyé à partir d'une requête qui a bien fonctionné sous SQLOLEDB.La chaîne de connexion ASP SQLNCLI classique renvoie des jeux d'enregistrements vides qui ont bien fonctionné avec SQLOLEDB

La chaîne de connexion s'ouvre comme suit:

ConnStr="Provider=SQLNCLI10;Server=129.118.139.78,8888;Server=UWCTest;Uid=user;Pwd=pass;DataTypeCompatibility=80;MARS Connection=true;" 
oConn.Open connStr 

et le code pour obtenir le jeu d'enregistrements est la suivante:

sSQL="usp_tutors_active_select" 

Set dbCommand = Server.CreateObject("ADODB.Command")  
Set dbCommand.ActiveConnection = oConn 
dbCommand.CommandType = adCmdStoredProc 
dbCommand.Commandtext=sSQL 


set oRST=dbCommand.Execute 

Response.Write orst("firstname") 
do while not datacommand1.EOF 
    Response.Write "<option value=" & orst("firstname") & ">" & orst("firstname") 

    orst.MoveNext 
loop 
+0

Que dit orst.RecordCount dans les deux cas? Changer de fournisseur ne devrait faire aucune différence – gbn

Répondre

0

Il s'avère que j'avais besoin d'installer le fournisseur SQLCNI sur le serveur; l'erreur réelle masquée par le jeu d'enregistrements apparemment vide était en fait un "fournisseur introuvable".

1

Essayez d'ajouter SET NO COUNT ON au sommet de usp_tutors_active_select. Je me souviens d'avoir eu ce problème auparavant.

+0

Hmm, peut-être pas réellement. Je me souviens d'avoir causé un problème avec ADO mais peut-être pas. Cette discussion peut être pertinente. http://www.eggheadcafe.com/software/aspnet/31753706/transactions-in-sql-serve.aspx J'utiliserais probablement SQL Profiler pour enquêter - capturez la colonne de nombre de lignes. –