Connexion serveur distant

LaTatadu91 Messages postés 968 Date d'inscription jeudi 20 mai 2004 Statut Membre Dernière intervention 26 avril 2013 - 27 juil. 2007 à 14:01
LaTatadu91 Messages postés 968 Date d'inscription jeudi 20 mai 2004 Statut Membre Dernière intervention 26 avril 2013 - 30 juil. 2007 à 11:01
Salut a tous,


Voila je developpe a l'heure actuelle un petit programme me permettant
de me connecter à un server SQL distant via C++(sous VS 2005)

alors j'ai trouvé un petit programme simple utilisant ADO et ca marche niquel mais en local .

Impossible de se connecter via un autre pc avec le mm programme ....

pourtant j'ai bien autoriser les connexions TCP/IP et autres canaux.


voici mon prog:
<!-- BEGIN TEMPLATE: bbcode_quote -->
Citation:

#include

#include <stdio.h>

#import "C:\Program Files\Fichiers communs\System\ado\msado15.dll" \

no_namespace rename("EOF","ADOEOF")

void main()

{

//initialise les variables

HRESULT hr;

CoInitialize(NULL);

try

{

//declare la connection

_ConnectionPtr connection;

hr = connection.CreateInstance(__uuidof(Connection));

//vérifie si réussite

if (FAILED(hr))

{

throw _com_error(hr);

}

//declare le recordset

_RecordsetPtr recordset;

hr = recordset.CreateInstance(__uuidof(Recordset));

//verifie si reussite

if (FAILED(hr))

{

throw _com_error(hr);

}

//établi la connection

connection->CursorLocation = adUseClient;

connection->Open("Provider=SQLNCLI;Server=NIVEAU2-03\\SQLEXPRESS;Database=BaseTest;Trusted_Connection=yes;",
L"id",L"pwd", -1);

//ouvre le recordset: crée une table

recordset->Open("CREATE TABLE mytable (value NVARCHAR(255))",

connection.GetInterfacePtr(), adOpenForwardOnly,

adLockReadOnly, adCmdText);

//insere des éléments

recordset->Open("INSERT INTO mytable VALUES ('Hello')",

connection.GetInterfacePtr(), adOpenForwardOnly,

adLockReadOnly, adCmdText);

//insére un second

recordset->Open("INSERT INTO mytable VALUES ('Goodbye')",

connection.GetInterfacePtr(), adOpenForwardOnly,

adLockReadOnly, adCmdText);

//va chercher les éléments

recordset->Open("SELECT * from mytable",

connection.GetInterfacePtr(),

adOpenForwardOnly, adLockReadOnly,

adCmdText);

//les affichent

while(!recordset->ADOEOF)

{

_variant_t var;

var = recordset->Fields->GetItem(L"value")->GetValue();

std::cout << static_cast<char *>(_bstr_t(var.bstrVal))<< std::endl;

recordset->MoveNext();

};

//referme le recordset

recordset->Close();

//détruit la table

/*recordset->Open("DROP TABLE mytable", connection.GetInterfacePtr(),

adOpenForwardOnly, adLockReadOnly,

adCmdText);*/

}

catch(_com_error &e)

{

std::cout << "Impossible de se connecter au serveur distant";

}

catch(...)

{

std::cout << "planté";

};

}

<!-- END TEMPLATE: bbcode_quote -->
donc voila je ne comprends pas le probleme vu que le meme programme marche en local

dois je changer ma connexion string ou installer des trucs ?

C'est mon premier prog sur un serveur distant donc je ne sais pas trop quoi faire...

merci de votre aide d'avance.

 

9 réponses

racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
27 juil. 2007 à 14:30
Salut,
Remplace le nom de l'ordinateur par l'adresse IP de ton serveur. Exemple:
Server=192.168.1.1\\SQLEXPRESS
Assure-toi d'abord que le réseau est correctement configuré.
0