IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

[SQL Server 2005] PB Connexion distante


Sujet :

MS SQL Server

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 90
    Points : 32
    Points
    32
    Par défaut [SQL Server 2005] PB Connexion distante
    Salut a tous,

    Voila je developpe a l'heure actuelle un peitit programme me permettant de me connecter à un server SQL distant via C++(sous VS 2005)
    alors j'ai trouver 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:
    #include <iostream>
    #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é";
    };
    }
    donc voila je ne comprends pas le probleme vu que le meme prog 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.

  2. #2
    Rédactrice

    Avatar de Fleur-Anne.Blain
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 637
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 637
    Points : 6 805
    Points
    6 805
    Par défaut
    Bonjour,


    si c'est un problème de connexion il faut que tu précises ta chaine de connexion dans le programme avec en général le nom du serveur, le nom de la base, le bon user son pass voire d'autre propriété...

    dans mon cas pour une appli web avec un sql server ca ressemble a ca mais en C++ je peux pas te dire :

    <add name="lenomConnectionString" connectionString="Data Source=nomserver;Initial Catalog=nomcatalog;User ID=nomuser;Password=tonpass" providerName="System.Data.SqlClient"/>

    je ne vois rien dans ton programme qui lui passe les paramètres pour te connecter au serveur

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 90
    Points : 32
    Points
    32
    Par défaut
    connection->Open("Provider=SQLNCLI;Server=NIVEAU2-03\\SQLEXPRESS;Database=BaseTest;Trusted_Connection=yes;", L"id",L"pwd", -1);

    voila c'est dans cette ligne la que je precise le nom de la machine ou est installée le serveur puis mot de passe et identifiant
    ca marche super en local mais pas en distant.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 056
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 056
    Points : 1 216
    Points
    1 216
    Par défaut
    si depuis ta machine distante tu lances (en supposant que tu aies sql server installé également ou au moins le client sql server) :

    osql -Uid -Ppwd -SNIVEAU2-03\SQLEXPRESS -dBaseTest

    que répond-t-il ?

    Par ailleurs, si tu avais un msg d'erreur précis, ça aiderait bcp

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 13
    Points : 13
    Points
    13
    Par défaut Connexion A Distance
    SLT TT MDE

    POUR SE CONNECTE A DISTANCE TU DOIT AJOUTE 1 NEW USER ET PASSWORD DANS ENTREPRISE MANAGER ENSUITE LES UTILISER PENDANT LACONNEXION

    EXEMPLE :

    <add name="lenomConnectionString" connectionString="Data Source=NIVEAU2-03;Initial Catalog=BaseTest;User ID=SA;Password=00000" providerName="System.Data.SqlClient"/>

    C TOUT

Discussions similaires

  1. Configuration SQL server 2005 express acces distant
    Par hamedi1 dans le forum MS SQL Server
    Réponses: 0
    Dernier message: 13/04/2010, 10h03
  2. connexion à une base sql server 2005 distante
    Par jeandu69 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 03/04/2008, 12h46
  3. SQL server 2005, connexion distante domaine
    Par Ouija33 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 27/02/2008, 17h06
  4. Réponses: 10
    Dernier message: 23/09/2007, 17h33
  5. Connexion à SQL Server 2005
    Par kikoj dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 16/08/2005, 14h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo