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
    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
    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
    Membre actif
    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
    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
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 487
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 49
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Chercheur d'emploi
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 487
    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 confirm�

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

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

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 033
    Billets dans le blog
    12
    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