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

C++ Discussion :

Liaison C++ / SQL server 2005


Sujet :

C++

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 8
    Points : 6
    Points
    6
    Par défaut Liaison C++ / SQL server 2005
    Bonjour à tous,

    Je dois créer un programme en C++ afin que celui-ci puisse gérer des données stockées dans une base de données SQL server 2005.
    Pour cela j'utilise la bibliothèque SQLAPI.h mais je ne parviens pas à me connecter à ma base de données alors que j'y parviens via un client tel que ToadSQL ; ce n'est donc pas mon serveur qui est en cause.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    #include <stdio.h>  // for printf
    #include <SQLAPI.h> // main SQLAPI++ header
    #include <iostream>
     
     
    using namespace std;
     
    int main(int argc, char* argv[])
    {
        SAConnection con; // create connection object
     
        try
        {
            // connect to database
            // in this example it is Oracle,
            // but can also be Sybase, Informix, DB2
            // SQLServer, InterBase, SQLBase and ODBC
            con.Connect(
                "SQLEXPRESS\\MaDataBase.db",     // database name
                "sa",   // user name
                "azerty",   // password
                SA_SQLServer_Client);
     
            cout << "Connected !" <<endl;
     
            // Disconnect is optional
            // autodisconnect will ocur in destructor if needed
            con.Disconnect();
     
            cout << "Disconnected !" <<endl;
        }
        catch(SAException &x)
        {
            // SAConnection::Rollback()
            // can also throw an exception
            // (if a network error for example),
            // we will be ready
            try
            {
                // on error rollback changes
                con.Rollback();
            }
            catch(SAException &)
            {
            }
            // print error message
            printf("%s\n", (const char*)x.ErrText());
        }
     
        return 0;
    }
    L'identifiant sa avec le mot de passe azerty est correct, cependant je me demande si ce n'est pas le dernier argument de la fonction "Connect" qui pose problème.
    J'espère avoir été clair, merci d'avoir pris le temps de lire mon souci.
    Cordialement.

  2. #2
    Membre éprouvé
    Inscrit en
    Avril 2005
    Messages
    1 110
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 110
    Points : 937
    Points
    937
    Par défaut
    Voici le fichier include que j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #include "C:\Program Files\Microsoft SQL Server\80\Tools\DevTools\Include\odbcss.h"
    Avant d'ouvrir la db voici un appel via odbc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sqlCode=::SQLSetConnectAttr(hdbc, SQL_COPT_SS_BCP, (PTR)SQL_BCP_ON, SQL_IS_INTEGER);
    Et la connection est du genre (en une seule string)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sqlCode=::SQLConnect(hdbc, "Driver=SQL Server;Server=SQLEXPRESS;Database=MaDataBase.db;UID=sa;pwd=azerty", SQL_NTS, NULL, SQL_NTS, NULL, SQL_NTS);
    Tu peux laisser le user et son pwd à NULL.
    Ce code fonctionne avec SQL Server 2000 et SQL Server 2005 compilé avec VC++6.

    En espérant t'avoir aidé.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Merci à toi d'avoir pris le temps de me proposer une solution.
    N'ayant pas ce header sous la main, j'ai donc décidé de fouiller pour résoudre mon problème et j'ai trouvé la solution ;

    "SQLEXPRESS@MaDataBase"
    Au lieu de
    "SQLEXPRESS\\MaDataBase.db"
    L'exemple était mal écrit et maitenant ça fonctionne à merveille

    En espérant aider certain qui rencontreront le même problème.

Discussions similaires

  1. liaison backup avec sql server 2005
    Par [:.dragonne.:] dans le forum Administration
    Réponses: 1
    Dernier message: 16/04/2008, 13h01
  2. [SAGE LIGNE 100 ET SQL SERVER 2005] liaison
    Par mayce dans le forum Autres outils décisionnels
    Réponses: 1
    Dernier message: 20/04/2007, 14h21

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