2010-11-07 2 views
2

Je ne parviens pas à me connecter au serveur distant MS SQL Server 2008 R2. Sur le serveur, la connexion externe est activée, le pare-feu est désactivé. Lorsque mon ami a essayé de se connecter en utilisant Python, tout est OK. J'utilise Visual C++ et OLE DB sous VS 2010.Impossible de se connecter à la version distante de MS SQL Server Express 2008 R2 à partir de OLE DB

erreur que je reçois est:

[Microsoft] [Pilote ODBC Manager] Nom de la source de données introuvable et aucun pilote par défaut spécifié

Merci

+1

Qu'est-ce que la chaîne de connexion ressembles (évidemment moins les informations d'identification et ainsi de suite)? – codykrieger

+0

Essayez de vous connecter via l'explorateur de serveur dans VS si ce n'est déjà fait. Si vous êtes connecté cela vous donnera une chaîne de connexion valide. Jetez également un coup d'oeil à http://www.connectionstrings.com/ si votre lutte avec votre chaîne de connexion. – MrEdmundo

+0

lorsque nous avons essayé de nous connecter à partir de l'intranet, tout était OK. mais de l'extérieur (seulement IP était différent), nous avons eu le problème. –

Répondre

0

la solution consiste à utiliser la méthode ouverte de CDataSource clas au lieu de OpenFromInitializationString ..

0

Vous pouvez essayer d'utiliser la connexion adodb, par exemple:

#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","rsEOF") 

_ConnectionPtr m_conn; 
_RecordsetPtr m_rs; 
::CoInitialize(NULL); 
try 
{ 
    m_conn.CreateInstance("ADODB.Connection"); 
    CString conn="Driver={SQL Server};server=(127.0.0.1);uid=sa;database=pubs"; 
    if(FAILED(m_conn->Open((_bstr_t)conn,"","",-1))) 
    { 
     ::MessageBox(NULL,"connect database error","error",MB_ICONEXCLAMATION); 
     return; 
    } 
} 

m_rs.CreateInstance("ADODB.Recordset"); 
CString strSql = "select * from Table"; 
m_rs=m_conn->Execute((_bstr_t)strSql,NULL,adCmdText); 

J'espère que cela peut servir pour vous

Questions connexes