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 :

Ecrire dans une Base de donnée


Sujet :

C

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 50
    Points : 24
    Points
    24
    Par défaut Ecrire dans une Base de donnée
    Bonjour à tous,
    Je cherche actuelement à écrire des valeurs et des chaines de caractère dans une base de donnée, à partir d'un programme en C. Pour information, je travail sur Linux.
    Merci d'avance pour votre aide.

  2. #2
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,

    Doit on deviner avec quelle base de donnée tu travailles ?

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 50
    Points : 24
    Points
    24
    Par défaut
    J'utilise MySQL

  4. #4
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 50
    Points : 24
    Points
    24
    Par défaut
    Par contre, j'ai vu qu'il existé des solution avec oracle ou autre, mais je prefere un freeware ou une autre méthode ^^

  5. #5
    Membre éclairé Avatar de PadawanDuDelphi
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2006
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2006
    Messages : 678
    Points : 717
    Points
    717
    Par défaut
    Salut,

    Il existe des bibliothèques pour s'interfacer avec MySQL dans tous les langages.
    En C, par exemple:
    http://dev.mysql.com/doc/refman/5.0/en/c.html

    A+.
    For crying out loud !

  6. #6
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 50
    Points : 24
    Points
    24
    Par défaut
    Oui je suis en train de lire ^^. Je cherche l'install de la librari pour pouvoir utiliser :
    #include <my_global.h>
    #include <mysql.h>
    Sur linux bien sur ^p^

  7. #7
    Membre émérite Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Points : 2 280
    Points
    2 280
    Par défaut
    Citation Envoyé par Djaiii Voir le message
    Oui je suis en train de lire ^^. Je cherche l'install de la librari pour pouvoir utiliser :
    #include <my_global.h>
    #include <mysql.h>
    Sur linux bien sur ^p^
    quelle distrib?
    "The quieter you become, the more you are able to hear"
    "Plus vous êtes silencieux, plus vous êtes capable d'entendre"

  8. #8
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 50
    Points : 24
    Points
    24
    Par défaut
    C'est bon je les ai trouvé, je vais me pencher sur les fonctions maintenant ^^. Au passage ma distrib c'est Ubuntu ( ).

    Si vous avez des exemple tout fait, qui permettent de juste selectionné une table, l'ouvrir et écrire dans un champs, je vous en serais très reconnaissant.
    Merci !!!!

  9. #9
    Membre du Club Avatar de LeBelge63
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 73
    Points : 58
    Points
    58
    Par défaut
    Voila un exemple mais c'est sous windows. A toi d'adapter a Linux :

    La connection à la base :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    MYSQL * connection(){
    	MYSQL * mysql ;
    	mysql = mysql_init(NULL) ;
    	if(!mysql_real_connect(mysql,"localhost","root","root","tabase",0,NULL,0)){
    		printf("Erreur dans la connection de la base : %s\n",mysql_error(mysql)) ;
    	}else{
    		printf("Vous etes connecte a la base de donnees ......\n\n\n\n") ;
    	}
    	return mysql ;
    }
    L'ajout de valeurs :

    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
    printf("Vous allez ajouter un client dans la base\n");
    	printf("Entrer le numéro de client : ");
    	num = saisirEntier() ;
    	printf("Entrer le nom du client : ");
    	scanf("%s",&nom);
    	printf("Entrer le prenom du client : ");
    	scanf("%s",&prenom);
    	printf("Entrer le numero de rue : ");
    	scanf("%d",&numrue);
    	printf("Entrer le nom de la rue : ");
    	scanf("%s",&nomrue);
    	printf("Entrer le code postal : ");
    	scanf("%d",&code);
    	printf("Entrer la ville : ");
    	scanf("%s",&ville);
    	sprintf(requete,"insert into client values('%d','%s','%s','%d','%s','%d','%s');",num, nom, prenom, numrue, nomrue, code, ville);
    	mysql_real_query(mysql,requete,(unsigned int) strlen(requete));
    	printf("\n");
    	printf("CLIENT AJOUTE ...........");
    	printf("\n");
    	printf("Voulez vous retourner au menu (0/1)?");
    	scanf("%d",&retour);
    	break;
    Pensez à utiliser

    est ton ami

    La France c'est l'Auvergne avec un petit peu de terre autour !!!

  10. #10
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 50
    Points : 24
    Points
    24
    Par défaut
    Merci, je vais essayer et je pense avoir compris, merci !!!

  11. #11
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 50
    Points : 24
    Points
    24
    Par défaut
    Au fait, ici le nom de ta table, c'est bien "client" ? (pour ton exemple d'écriture, pas de connection).

  12. #12
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 50
    Points : 24
    Points
    24
    Par défaut
    Et aussi en quoi est déclaré ton "requete" ??

  13. #13
    Membre du Club Avatar de LeBelge63
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 73
    Points : 58
    Points
    58
    Par défaut
    Oui le nom de ma table est bien client :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sprintf(requete,"insert into client values('%d','%s','%s','%d','%s','%d','%s');",num, nom, prenom, numrue, nomrue, code, ville);
    Les différentes insertion correspondent au nom des différents champs.
    Pensez à utiliser

    est ton ami

    La France c'est l'Auvergne avec un petit peu de terre autour !!!

  14. #14
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 50
    Points : 24
    Points
    24
    Par défaut
    Et je déclare requete en quoi ?
    char* ???

  15. #15
    Membre du Club Avatar de LeBelge63
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 73
    Points : 58
    Points
    58
    Par défaut
    Mon "requete" est en mais je pense que tu peux le déclarer en sans soucis.
    Pensez à utiliser

    est ton ami

    La France c'est l'Auvergne avec un petit peu de terre autour !!!

  16. #16
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 50
    Points : 24
    Points
    24
    Par défaut
    C la même chose ^^.

    Par contre j'ai compiler, j'arrive à me connecter, mais j'ai ce message d'avertissement lors de la compilation:

    attention : incompatible implicit declaration of built-in function «strlen»

    et bien sur, lorsque je lance le prog, je peux rentrer les valeurs des différentes variable de ma table, mais elle ne s'écrivent pas , voilà mon code :


    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
    #include <my_global.h>
    #include <mysql.h>
    #include <stdio.h>
    #include <stdlib.h>
     
    MYSQL *conn;
     
    int main(int argc, char**args) 
    {
    	MYSQL *con;
    	MYSQL_RES *res;
    	MYSQL_ROW row;
    	unsigned int nb;
    	unsigned long *lengths;
    	unsigned int i;
    	char index[100],date[100],phase[100],t_dessous[100],t_dedans[100],t_dessus[100],hygro[100],ventilation[100],rotation[100],resistance_1[100],resistance2[100],resistance3[100],resistance4[100],niveau[100],ev_remplissage[100],ev_vidange[100],requete[2000];
     
    	conn = mysql_init(NULL);
    		if (conn==NULL) 
    		{
    			printf ("\aErreur d'initiation du client !\n");
    			exit(EXIT_FAILURE);
    		}
    	con = mysql_real_connect(conn, "localhost", "root", "azerty", "malterie", 3306, NULL,0);
     
    		if (con==NULL) 
    		{
    			printf ("\aErreur de connection du client !\n");
    			exit(EXIT_FAILURE);
    		}
    		else
    		{
    			printf ("Connection établi !\nWelcome !\n");
    			printf("Vous allez ajouter des données dans la base\n");
    			printf("Entrer le numéro de l'index : \r\n");
    			scanf("%s",&index);
    			printf("Entrer la date (xx.xx.xxxx) : \r\n");
    			scanf("%s",&date);
    			printf("Entrer la phase en cour : \r\n");
    			scanf("%s",&phase);
    			printf("Entrer la temperature de dessous : \r\n");
    			scanf("%s",&t_dessous);
    			printf("Entrer la temperature de dedans : \r\n");
    			scanf("%s",&t_dedans);
    			printf("Entrer la temperature de dessus : \r\n");
    			scanf("%s",&t_dessus);
    			printf("Entrer l'état du moteur (on , off) : \r\n");
    			scanf("%s",&rotation);
    			printf("Entrer le niveau d'eau (haut , bas) : \r\n");
    			scanf("%s",&niveau);
    			printf("Entrer l'état de l'électrovanne de remplissage (on , off) : \r\n");
    			scanf("%s",&ev_remplissage);
     
    			sprintf(requete,"insert into client values('%s','%s','%s','%s','%s','%s','%s','%s','%s');",index, date, phase, t_dessous, t_dedans, t_dessus, rotation, niveau, ev_remplissage);
    			if(mysql_real_query(conn,requete,(unsigned int) strlen(requete))==0)
    			{
    				printf("Données ajoutées correctement dans la base !! ^^ =p xD >< :) ;)  !p  ( . )( . )  \r\n");
    				mysql_close(conn);
    				printf("Fermeture du client. Bye !\r\n");
    				return 0;
    			}
    			else
    			{
    				printf ("\aProblème d'interrogation !\n");
    				mysql_close(conn);
    				printf("Fermeture du client. Bye !\n");
    				return 0;
    			}
    		}
    }
    Dans ma base, j'ai bien évidement les 9 variables (date, index, phase,....) écrit tel quel. Le prog me return "Problème d'interrogation". Donc cela n'écrit pas.

    Si quelqu'un voit l'erreur ... Merci ^^

  17. #17
    Membre émérite Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Points : 2 280
    Points
    2 280
    Par défaut
    Citation Envoyé par Djaiii Voir le message
    C la même chose ^^.

    Par contre j'ai compiler, j'arrive à me connecter, mais j'ai ce message d'avertissement lors de la compilation:

    attention : incompatible implicit declaration of built-in function «strlen»
    "The quieter you become, the more you are able to hear"
    "Plus vous êtes silencieux, plus vous êtes capable d'entendre"

  18. #18
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 50
    Points : 24
    Points
    24
    Par défaut
    C'est bon, j'ai remplacé, mais cela ne fonctionne toujours pas....

  19. #19
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 50
    Points : 24
    Points
    24
    Par défaut
    Ma base de donnée s'apelle malterie, et ma table "maltage", il faut bien que j'écrive ceci ? :

    sprintf(requete,"insert into maltage values('%s','%s','%s','%s','%s','%s','%s','%s','%s');",index, date, phase, t_dessous, t_dedans, t_dessus, rotation, niveau, ev_remplissage);

  20. #20
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 50
    Points : 24
    Points
    24
    Par défaut
    Dans ma base, j'ai déclaré les champs en type VAR(100). je ne comprend pas pourquoi cela ne marche pas....

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Ecrire dans une base de donnée
    Par beber005 dans le forum ASP
    Réponses: 1
    Dernier message: 13/05/2011, 10h46
  2. Ecrire dans une base de données sql server
    Par mims1664 dans le forum VBScript
    Réponses: 1
    Dernier message: 21/03/2011, 12h50
  3. Ecrire dans une base de données
    Par abdias1976 dans le forum Langage
    Réponses: 1
    Dernier message: 11/03/2010, 08h20
  4. Ecrire dans une base de données
    Par collysamin dans le forum C++Builder
    Réponses: 2
    Dernier message: 16/06/2008, 22h18
  5. Ecrire dans une base de données Mysql depuis Excel
    Par poupi dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/02/2007, 17h05

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