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 :

SQL server en C++


Sujet :

C++

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 6
    Points : 8
    Points
    8
    Par défaut SQL server en C++
    Bonjour, je suis actuellement sur un projet où je dois récupérer des données sur un ficher quelconque et les entrer dans un BDD SQL Server via un programme développer en C++. J'ai un exemple et des fonctions de connection, récupération et insertion sur BDD mysql sous Unix et je cherche l'équivalent sous Windows pour une BDD SQL Server. Il y a t-il des librairies à intégrer ? Lesquelles ? Auriez vous un exemple de code ou tuto à me filer svp ?

    Merci pour toutes vos réponses !

    number9

    Ps : exemple de ce que j'ai pour mysql :

    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    BaseDeDonnees::BaseDeDonnees(char* hote,char* utilisateur,char* mdp,char* bdd){
        host = hote;
        user = utilisateur;
        password = mdp;
        BDD = bdd;
        init = mysql_init(NULL);
     
        mysql_real_connect(init,host,user,password,BDD,0,NULL,0);
    }
     
    /*
    *  insère des valeurs dans la table spécifiée et aux colonnes spécifiées
    *  Parametre: -nomTable : nom de la table
    *             -colonne[] : nom des colonnes aux qu'elles on va ajouter des valeurs
    *             -valeur[] : valeurs à ajouter aux colonnes dans le meme ordre de colonne[]
    *             -nbColonnes : nombre de colonne dans colonne[]
    *  Valeur retournée: Zéro si la requête a été effectuée avec succès. Différente de zéro si une erreur est survenue.
    */
     
    int BaseDeDonnees::insererDesValeurs(char* nomTable,char* colonne[],char* valeur[],int nbColonnes){
        char* requete;
        requete = (char*) malloc(sizeof(requete) * 512);
     
        char* colonnes;
        colonnes = (char*) malloc(sizeof(colonnes) * 512);  //chaine de caractere pour les colonnes
        char* valeurs;
        valeurs = (char*) malloc(sizeof(valeurs) * 512);    //chaine de caractere pour les valeurs
     
     
        strcpy(colonnes," ( ");
        strcpy(valeurs," ( ");
     
        int i = 0;
     
        for(i=0;i<nbColonnes;i++){
     
            strcat(colonnes,colonne[i]);
     
            char buf[strlen(valeur[i])];                 //test si la valeur est numerique ou pas pour les ''
            sprintf(buf,"%d",atoi(valeur[i]));
            if(strcmp(buf,valeur[i]) == 0){
               strcat(valeurs,valeur[i]);
            }
            else{
                strcat(valeurs,"'");
                strcat(valeurs,valeur[i]);
                strcat(valeurs,"'");
            }
            if(i != nbColonnes -1){
                strcat(colonnes,", ");
                strcat(valeurs,", ");
            }
        }
        strcat(colonnes," )");
        strcat(valeurs," )");
        strcpy(requete,"INSERT INTO ");
        strcat(requete,nomTable);
        strcat(requete,colonnes);
        strcat(requete," VALUES ");
        strcat(requete,valeurs);
     
     
        return mysql_query(init,requete);
     
    }
     
    /*
    *  insère des valeurs dans la table spécifiée et aux colonnes spécifiées
    *  Parametre: -nomTable : nom de la table
    *             -colonne[] : nom des colonnes aux qu'elles on va ajouter des valeurs
    *             -valeur[] : valeurs à ajouter aux colonnes dans le meme ordre de colonne[]
    *             -nbColonnes : nombre de colonne dans colonne[]
    *  Valeur retournée: Zéro si la requête a été effectuée avec succès. Différente de zéro si une erreur est survenue.
    */
     
    int BaseDeDonnees::modifierDesValeurs(char* nomTable,char* colonne[],char* valeur[],int nbColonnes,char* tests){
        char* requete;
        requete = (char*) malloc(sizeof(requete) * 512);
     
     
        char* val;
        val = (char*) malloc(sizeof(val) * 512);    //chaine de caractere pour les valeurs
     
     
        strcpy(val," ");
     
     
        int i = 0;
     
        for(i=0;i<nbColonnes;i++){
     
            strcat(val,colonne[i]);
            strcat(val," = ");
     
            char buf[strlen(valeur[i])];                 //test si la valeur est numerique ou pas pour les ''
            sprintf(buf,"%d",atoi(valeur[i]));
            if(strcmp(buf,valeur[i]) == 0){
               strcat(val,valeur[i]);
            }
            else{
                strcat(val,"'");
                strcat(val,valeur[i]);
                strcat(val,"'");
            }
     
            if(i != nbColonnes -1){
                strcat(val,", ");
            }
        }
     
        strcpy(requete,"UPDATE ");
        strcat(requete, nomTable);
        strcat(requete, " SET ");
        strcat(requete, val);
        strcat(requete, " ");
        strcat(requete, tests);
     
         return mysql_query(init,requete);
    }

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 58
    Points : 31
    Points
    31
    Par défaut
    Je ne connais pas Unix, mais ce que je peux te dire, c'est que sous C++ Builder (XE2 pour ma part) tu as des composants dbExpress, qui te permettent la connexion à une BDD locale, un serveur BDD distant, de récupérer, envoyer etc ...

  3. #3
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 374
    Points : 23 631
    Points
    23 631
    Par défaut
    J'ai eu le même problème que toi il y a cinq-six ans avec une base de données Sybase que je comptais attaquer avec une application C++. Pas moyen de trouver une bibliothèque cliente native en C++ pour ce SGBD là en particulier, pour remplacer l'OpenClient.

    Tu as deux choix : soit tu choisis de parler à ta base en ODBC et, là, tu devrais trouver des trucs, soit tu restes dans une API C native et tu peux te tourner vers FreeTDS, MS SQL Server et Sybase partageant une tronc commun jusqu'à une époque relativement récente.

  4. #4
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 031
    Points : 11 477
    Points
    11 477
    Billets dans le blog
    11
    Par défaut
    En ODBC, tu peux voir cette discussion dans laquelle je décrivais comment se connecter à une BDD et exécuter une requête SELECT dessus.
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

Discussions similaires

  1. Pb migration Access / SQL server
    Par yoyo dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 25/04/2005, 10h39
  2. Quel outil choisir pour un développement SQL-Server ?
    Par Mouse dans le forum Débats sur le développement - Le Best Of
    Réponses: 23
    Dernier message: 12/08/2003, 06h23
  3. [Kylix] sql server & kylix
    Par fehmitn dans le forum EDI
    Réponses: 1
    Dernier message: 23/08/2002, 19h44
  4. Backup BD SQL Server
    Par Ethmane dans le forum Administration
    Réponses: 3
    Dernier message: 07/06/2002, 00h42

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