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 :

la lecture ça passe, l'ecriture ça casse!


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 20
    Par défaut la lecture ça passe, l'ecriture ça casse!
    Bonjour,

    J'ai un problème que j'arrive pas à résoudre.
    j'appelle une fonction sql qui utilise un select, et ça marche.
    j'appelle une fonction qui utilise un insert et ça ne s'exécute pas.
    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
     
     
     
    PGresult* result1;
    	PGresult* result2;
    	PGresult* result3;
    	PGresult* result4;
     
     
    	//sprintf(commande_sql1,"select verify_replicat('192.168.1.1', 'ADC16448521539632AB165', current_timestamp);");
    	const char *commande_sql1="select * from ips;";
    	result1 = PQexec(connect_database, commande_sql1);
    	char *val1 = PQgetvalue(result1,0,0);
    	printf("%s \n", val1);
     
    	if ((PQresultStatus(result1) != PGRES_TUPLES_OK ))
    	{
               fprintf(stderr, "couldnt execute query 1\n");
     
               PQclear(result1);
     
    	}
    	else {
    	printf ("commande 1 exécutée\n");
    	}
     
     
    	//sprintf(commande_sql2,"select verify_replicat('192.168.1.1', 'ADC16448521539632AB165', current_timestamp);");
    	const char *commande_sql2="select mape_add_ip('192.168.1.4');";
    	result2 = PQexec(connect_database, commande_sql2);
    	char *val2 = PQgetvalue(result2,0,0);
    	printf("%s \n", val2);
    	if ((PQresultStatus(result2) != PGRES_TUPLES_OK ))
    	{
               fprintf(stderr, "couldnt execute query 2\n");
     
               PQclear(result2);
     
    	}
    	else {
    	printf ("commande 2 exécutée\n");
    	}
     
     
     
    	//sprintf(commande_sql3,"select verify_replicat('192.168.1.2', 'BCC16448521539632AB165', current_timestamp);");
    	const char *commande_sql3="select verify_replicat('192.168.1.2', 'BCC16448521539632AB165', current_timestamp);";
    	result3 = PQexec(connect_database, commande_sql3);
    	char *val3 = PQgetvalue(result3,0,0);
    	printf ("%s\n", val3);
    	if ((PQresultStatus(result3) != PGRES_TUPLES_OK ))
    	{
               fprintf(stderr, "couldnt execute query 3\n");
     
               PQclear(result3);
     
    	}
    	else {
    	printf ("commande 3 exécutée\n");
    	}
     
     
     
    	//sprintf(commande_sql4,"select verify_replicat('192.168.1.3', 'ADC16448521539632AB165', current_timestamp);");
    	const char *commande_sql4="select verify_replicat('192.168.1.3', 'ADC16448521539632AB165', current_timestamp);";
    	result4 = PQexec(connect_database, commande_sql4);
    	char *val4 = PQgetvalue(result4,0,0);
    	printf ("%s\n", val4);
    	if ((PQresultStatus(result4) != PGRES_TUPLES_OK ))
    	{
               fprintf(stderr, "couldnt execute query 4\n");
     
               PQclear(result4);
     
    	}
    	else {
    	printf ("commande 4 exécutée\n");
    	}
    les deux premières requêtes fonctionnent puisqu'il s'agit d'une sélection simple, et d'une fonction qui utilise la sélection.
    les deux dernières ne s'exécutent pas puisqu'ils font appels à une fonction qui ne fait que l'insertion
    R.Seif est actuellement connecté

  2. #2
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2006
    Messages : 507
    Par défaut
    Bonjour,

    A priori tu n'as pas de problème en C, mais plutôt en SQL... Demande sur le bon forum...
    De plus, pour info, une insertion en SQL c'est de la forme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    INSERT INTO table (column1, column2, ...) VALUES ('value1', 'value2', ...)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 20
    Par défaut
    Bonjour,

    ça pour insérer directement des valeurs dans la table.
    Mais pour appeler une fonction je dois la sélectionner, l'insertion est contenue dans la fonction.

  4. #4
    Membre confirmé Avatar de Gui13
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2006
    Messages : 157
    Par défaut
    Ptet un problème de droits d'écriture sur la base?
    Tu t'identifies avant d'effectuer ces opérations?

Discussions similaires

  1. Aide lecture Port serie et ecriture dans fichier.
    Par Mike1979 dans le forum VB.NET
    Réponses: 1
    Dernier message: 04/05/2015, 11h41
  2. [C#]Erreur lecture flux http et ecriture fichier
    Par f.colo dans le forum Windows Forms
    Réponses: 4
    Dernier message: 31/01/2012, 10h40
  3. Réponses: 1
    Dernier message: 31/10/2011, 21h30
  4. lecture/ecriture des broches RTS/CTS du port RS232
    Par .:: sly51 ::. dans le forum C
    Réponses: 3
    Dernier message: 24/10/2006, 15h28
  5. Lecture et ecriture fichier .ini
    Par despe dans le forum C
    Réponses: 6
    Dernier message: 23/07/2003, 20h40

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