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);
}