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 :

appel des fonction sql sous C++


Sujet :

C++

  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 appel des fonction sql sous C++
    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
     
    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

  2. #2
    Membre exp�riment� Avatar de Grulim
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    234
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 234
    Par d�faut
    Je ne connais pas cette librairie PGxxx, c'est PostgreSql ?
    Si c'est le cas, ne faudrait-il pas plut�t poser la question dans un forum PostgreSql ?

    De plus ton exemple n'est pas compilable / complet , donc � part te plonger dans le manuel pour regarder ce que fait PQexec entre autre et / ou trouver un tutoriel, je ne vois pas quel autre conseil te donner ...

    Tout � fait entre nous, ton code c'est du C, pas du C++.

    Bonne recherche !

  3. #3
    Membre �clair�
    Inscrit en
    Avril 2005
    Messages
    1 110
    D�tails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 110
    Par d�faut
    Plus simplement, le select fonctionne (lecture) mais pas l'insert (�criture) ?
    T'as les droits d'�criture dans ta db ?

  4. #4
    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
    en effet c du postgres, et c en C w�.

    pour l'�criture, j'ai les droits sur ma BD.

  5. #5
    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
    Tes SELECT devraient de toutes fa�ons retourner un resultset, m�me vide.

    Il arrive parfois qu'une insertion, dans certaines conditions, ouvre une transaction et n�cessite un COMMIT pour prendre effet. C'est une curiosit� que j'avais d�j� remarqu� sur un Sybase. Sur PostGreSQL, cela dit, cela reste �trange.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    43
    D�tails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2010
    Messages : 43
    Par d�faut
    Le commit a quand m�me un certain int�r�t. Il permet de faire des v�rifications d'int�grit�s sur ce que l'on vient d'ins�rer avant de valider.
    Donc a tester selon ta base a rajouter une commande commit a la suite de ton insertion.

  7. #7
    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
    Citation Envoy� par Koemgun Voir le message
    Le commit a quand m�me un certain int�r�t. Il permet de faire des v�rifications d'int�grit�s sur ce que l'on vient d'ins�rer avant de valider.
    Donc a tester selon ta base a rajouter une commande commit a la suite de ton insertion.
    Ce n'est pas les transactions en elles-m�mes que je remets en cause, bien s�r, mais le fait qu'elles soient ouvertes � implicitement � sur certains SGBD�

Discussions similaires

  1. pb d'appel des fonction sous matlab
    Par didouainos dans le forum MATLAB
    R�ponses: 0
    Dernier message: 12/03/2015, 17h09
  2. Faire appel � des fonctions MS SQL Server
    Par digital prophecy dans le forum Windows Forms
    R�ponses: 1
    Dernier message: 25/12/2007, 22h06
  3. Comment appeler des fonctions C# sous Excel
    Par ttttnht dans le forum Windows Forms
    R�ponses: 1
    Dernier message: 12/09/2006, 16h49
  4. R�ponses: 6
    Dernier message: 30/09/2005, 00h53
  5. Appel � des fonctions incluses dans des DLL
    Par Greybird dans le forum Langage
    R�ponses: 3
    Dernier message: 26/05/2003, 13h33

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