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

MFC Discussion :

Connexion et interrogation SQL Server


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Inscrit en
    Août 2005
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 59
    Par défaut Connexion et interrogation SQL Server
    Bonjour,

    j'aurais besoin de me connecter via VisualC++ 6 à une base sql server, et je n'arrive pas à trouver de documentation me permettant de choisir les méthodes à utiliser, DAO, ADO ?, ODBE... ??

    Je n'arrive pas à trouver les classes nécessaires, les noms de fonction... La procédure à employer dans Visual Studio...

    Je tiens à préciser que je suis un habitué du développement Linux, et très peu habitué au monde Micro$oft...

    Merci d'avance pour vos réponses.

    Si vous considérez que cette question devrait figurer sur le forum SQL Server plutôt que sur ce forum, n'hésitez pas à me le signaler / le déplacer... Je ne suis pas sûr d'avoir fait le bon choix de forum dans ce cas d'utilisation conjointe...

  2. #2
    Membre confirmé Avatar de lenouvo
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 252
    Par défaut
    alors voila un petit exemple de ce qu'il faut faire pour la connection:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    	CDatabase db; 
    	CString sConnect = "DSN=BaseTest;UID=;PWD=;Database=BDDTEst"; 
    	if( !db.OpenEx(sConnect, CDatabase::noOdbcDialog|CDatabase::useCursorLib))
    	{ 
    		AfxMessageBox("Impossible d'ouvrir la base de donnée en lecture seule"); 
    		return; 
    	} 
    	else 
    	{ 
    		AfxMessageBox("Test d'ouverture réussi"); 
    }
    il faut ajouter #include <afxdb.h> et ne pas oublier d'ajouter le DSN que tu veux utiliser dans tes sources de données ODBC

    pour les requetes tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    CString requete="Insert into ..."
    db.ExecuteSQL(Requete);
    voila

  3. #3
    Membre chevronné
    Avatar de matazz
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    471
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 471
    Par défaut
    sinon il y as aussi ADO qui te permet de te connecter sans DSN :
    regardes ces liens :

    http://www.codeguru.com/Cpp/data/mfc_database/
    notement celui-ci :
    http://www.codeguru.com/Cpp/data/mfc...cle.php/c6729/

    Avec la connectionString pour SQL Server :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Driver={SQL Server};Server=MyServerName;
    Trusted_Connection=no;Database=MyDatabaseName;Uid=MyUserName;Pwd=MyPassword;

  4. #4
    Membre actif
    Inscrit en
    Août 2005
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 59
    Par défaut ODBE& problème...
    Bonjour,
    j'ai regardé les deux solutions qui m'ont été proposées, mais même celle étant censée fonctionner sans DSN m'insulte avec des messages d'erreur ODBE (j'ai récupéré le fichier .zip de test) car j'obtiens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Error:
    Code = 80040e4d
    Code meaning = IDispatch error #3149
    Source = Microsoft OLE DB Provider for ODBC Drivers
    Description = [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'Administrator'.
    Error:
    Code = 80004003
    Code meaning = Pointeur non valide
    Source = (null)
    Description = (null)
    J'ai tenté de créer un DSN valide avec le gestionnaire ODBC, mais le problème est que j'ai besoin d'une authentification NT, et non SQL server, mais que je ne peux pas utiliser mon id utilisateur mais un id utilisateur spécifique (et le mot de passe qui va bien...), qui n'existe que sur la machine distante...

    Auriez-vous des idées pour que je puisse tout de même m'y connecter pour exécuter ma pauvre requête ?

    Merci d'avance

  5. #5
    Membre chevronné
    Avatar de matazz
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    471
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 471
    Par défaut
    Ben le loggin Administrator n'est apparement pas Valide sous SQL Server ce qui semble logique car apparement tu utilise l'authentification NT

  6. #6
    Membre actif
    Inscrit en
    Août 2005
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 59
    Par défaut héhé...
    Oui, peut-être, et comment je fais pour lui dire que je veux utiliser cette authentification NT ?
    Je me doute bien que le problème vient de là, mais je ne trouve pas comment utiliser ce mode d'authentification.

  7. #7
    Membre chevronné
    Avatar de matazz
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    471
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 471
    Par défaut
    es-tu obligé d'utiliser le login NT courant pour acceder à la base ?
    Si Oui, dans SQL Server tu peut créer un compte qui corresponds à un groupe de ton domaine par exemple le grupe Administrateurs...
    Par contre je sais pas si tu peut utiliser l'authentification NT, pour ça vaut mieux aller voir le forum SQL Server...

  8. #8
    Membre actif
    Inscrit en
    Août 2005
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 59
    Par défaut Aucun contrôle sur la base
    Je n'ai aucun contrôle sur la base sql server, je ne suis pas admin de cette base & je ne peux rien paramétrer dessus... Tout ce que je sais, c'est qu'actuellement, avec un client graphique qui me permet de spécifier une Authentification NT différente de celle de mon user, je peux me connecter à cette base, et je voudrais utiliser le même procédé.

  9. #9
    Membre confirmé
    Inscrit en
    Octobre 2004
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 68
    Par défaut
    Bonjour,

    Est-ce possible que tu travailles sous VS .NET 2002 ou 2003?
    Avec l'aide de l'assitant ajoute de classes tu peux ajouter des consommateurs OLE DB (classiques ou par attributs).
    Tu auras juste à modifer ta classe accesseur qui comprend tous les champs de ta table et ta classe command qui te permettra d'exécuter ta requête.
    Et encore tu peux utiliser des procédures stockées dans l'objet command sans mêler tes requêtes SQL avec ton C++.

    Tu crées une base de données sous SQL server. et tes tables.

  10. #10
    Membre actif
    Inscrit en
    Août 2005
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 59
    Par défaut VS 2k2 / 2k3
    Bon, ok, je vais essayer de choper l'admin système et de lui demander si je peux les installer...

    Par contre, ça va encore être une matinée perdue à faire une install d'un bousin (euh, d'un ide)...

    pfffiou

  11. #11
    Membre chevronné
    Avatar de matazz
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    471
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 471
    Par défaut Re: Aucun contrôle sur la base
    Citation Envoyé par spiral
    ... Tout ce que je sais, c'est qu'actuellement, avec un client graphique qui me permet de spécifier une Authentification NT différente de celle de mon user, je peux me connecter à cette base...
    et cet Authentification NT c'est Administrator ?
    parceque sinon, si tu peut te logger sur SQL Server avec ce compte NT, par une autre interface, le compte doit exister.

  12. #12
    Membre actif
    Inscrit en
    Août 2005
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 59
    Par défaut Bon, voilà, je l'ai eu
    Finalement, j'ai enfin reçu la réponse de l'administrateur de la base, qui m'a donné un nom d'utilisateur et un mot de passe valide en authentification SQL Server, et mon application marche maintenant.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Debutant] Connexion à un serveur SQL Server sur le reseau
    Par klael dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 18/02/2009, 03h07
  2. Pb ResultSet avec une connexion ODBC MS SQL Server
    Par Néo-Tony dans le forum JDBC
    Réponses: 17
    Dernier message: 24/01/2006, 13h48
  3. connexion Delphi avec SQL Server en réseau
    Par da_latifa dans le forum Bases de données
    Réponses: 4
    Dernier message: 22/11/2005, 14h24
  4. Erreur de connexion à une BDD SQL Server 2000 avec BDE
    Par SchpatziBreizh dans le forum Bases de données
    Réponses: 3
    Dernier message: 17/06/2005, 11h22
  5. Connexion ADO et SQL Server : délai d'execution expiré.
    Par denrette dans le forum Bases de données
    Réponses: 2
    Dernier message: 24/02/2004, 09h00

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