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

Réseau C Discussion :

[MySQL] Lancer des requêtes


Sujet :

Réseau C

  1. #21
    Membre expérimenté
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Points : 1 727
    Points
    1 727
    Par défaut
    Oh c'était juste pour faire une petite reference à une video connue

  2. #22
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Points : 1 067
    Points
    1 067
    Par défaut
    Citation Envoyé par Gruik
    Oh c'était juste pour faire une petite reference à une video connue
    ??? Pas connue de moi...
    Un problème bien exposé
    est, pour moitié, solutionné. / La connaissance s'accroît quand on la partage, pas quand on l'impose. / La violence est le langage des faibles.

  3. #23
    Membre expérimenté
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Points : 1 727
    Points
    1 727

  4. #24
    Membre confirmé Avatar de d-Rek
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 438
    Points : 455
    Points
    455
    Par défaut
    c'est bien balèze tout ça..

    J'essayais justement, que mon exe lance une page php qui s'auto-close mais qui créée un .txt à la racine du C par exemple.. pour que mon exe récupère la valeure ensuite.. et l'affiche.
    Mais je galère.. je vais y arriver

    enfin je pense..

  5. #25
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Points : 1 067
    Points
    1 067
    Par défaut
    Citation Envoyé par d-Rek
    c'est bien balèze tout ça..

    J'essayais justement, que mon exe lance une page php qui s'auto-close mais qui créée un .txt à la racine du C par exemple.. pour que mon exe récupère la valeure ensuite.. et l'affiche.
    Mais je galère.. je vais y arriver

    enfin je pense..
    Et bien, si tu as un soucis, tu postes ton code.
    Un problème bien exposé
    est, pour moitié, solutionné. / La connaissance s'accroît quand on la partage, pas quand on l'impose. / La violence est le langage des faibles.

  6. #26
    Membre confirmé Avatar de d-Rek
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 438
    Points : 455
    Points
    455
    Par défaut
    Merci David.Schris

    J'ai approfondi ta méthode avec LibCurl et ça marche à merveille !
    Pour le fichier PHP, je ne poste pas je pense que tout le monde devrait s'en sortir..
    Je poste donc la source C :
    Code C : 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
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
     
    #include <curl/curl.h>
    #include <curl/types.h>
    #include <curl/easy.h>
    #include "fonction.h"
     
    using namespace std;
     
    int main()
    { char* url;
      char w;
      system("cls");
      printf("\n//////////////////////////////////////////\n");
      printf("/                  STATS                 /\n");
      printf("//////////////////////////////////////////\n\n");
      printf("Nombre de membres :\t");
      curl("http://www.mon_site.fr/curl.php?choix=1");
      printf("\nNombre de domaines :\t");
      curl("http://www.mon_site.fr/curl.php?choix=2");
      printf("\n\n\nRefresh ?\n");
      system("pause");
      main();
    }
    La fonction > fonction.h
    Code C : 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
    struct MemoryStruct {
      char *memory;
      size_t size;
    };
     
    void *myrealloc(void *ptr, size_t size)
    {
      /* There might be a realloc() out there that doesn't like reallocing
         NULL pointers, so we take care of it here */
      if(ptr)
        return realloc(ptr, size);
      else
        return malloc(size);
    }
     
    size_t
    WriteMemoryCallback(void *ptr, size_t size, size_t nmemb, void *data)
    {
      size_t realsize = size * nmemb;
      struct MemoryStruct *mem = (struct MemoryStruct *)data;
     
      mem->memory = (char *)myrealloc(mem->memory, mem->size + realsize + 1);
      if (mem->memory) {
        memcpy(&(mem->memory[mem->size]), ptr, realsize);
        mem->size += realsize;
        mem->memory[mem->size] = 0;
      }
      return realsize;
    }
     
    void curl(char* url)
    { CURL *curl_handle;
     
      struct MemoryStruct chunk;
     
      chunk.memory=NULL; /* we expect realloc(NULL, size) to work */
      chunk.size = 0;    /* no data at this point */
     
      curl_global_init(CURL_GLOBAL_ALL);
     
      /* init the curl session */
      curl_handle = curl_easy_init();
     
      /* specify URL to get */
      curl_easy_setopt(curl_handle, CURLOPT_URL, url);
     
      /* send all data to this function  */
      curl_easy_setopt(curl_handle, CURLOPT_WRITEFUNCTION, WriteMemoryCallback);
     
      /* we pass our 'chunk' struct to the callback function */
      curl_easy_setopt(curl_handle, CURLOPT_WRITEDATA, (void *)&chunk);
     
      /* some servers don't like requests that are made without a user-agent
         field, so we provide one */
      curl_easy_setopt(curl_handle, CURLOPT_USERAGENT, "libcurl-agent/1.0");
     
      /* get it! */
      curl_easy_perform(curl_handle);
     
      /* cleanup curl stuff */
      curl_easy_cleanup(curl_handle);
     
      /*
       * Now, our chunk.memory points to a memory block that is chunk.size
       * bytes big and contains the remote file.
       *
       * Do something nice with it!
       *
       * You should be aware of the fact that at this point we might have an
       * allocated data block, and nothing has yet deallocated that data. So when
       * you're done with it, you should free() it as a nice application.
       */
     
      printf("%s", chunk);
     
      if(chunk.memory)
        free(chunk.memory);
     
      //return 0;
    }

    Par contre, faut installer les packages zlib et curl suivant votre machine à écrire
    Sous Dev-C++, il faut ajouter -lcurldll dans Outils > Options du compilateur > Ajouter cette commande lors de l'appel de l'éditeur de liens (et cocher cette case)
    Il se peut que si vous lancez votre exe final, des dll soient manquantes..
    Une tite recherche dans votre dossier d'install de Dev-Cpp et hop, copier-coller dans le même dossier voir dans system32.

    J'espère pouvoir en aider quelques uns !
    J'en ai fait un outil de stats pour rafraichir des données sans lancer un navigo, me logger et rafraichir ma page.. C'est cool

  7. #27
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Points : 1 067
    Points
    1 067
    Par défaut
    Merci d'avoir posté ton code

    Cela pourra effectivement en aider quelques-uns...après quelques retouches pour rendre le tout plus "propre"
    Un problème bien exposé
    est, pour moitié, solutionné. / La connaissance s'accroît quand on la partage, pas quand on l'impose. / La violence est le langage des faibles.

  8. #28
    Membre confirmé Avatar de d-Rek
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 438
    Points : 455
    Points
    455
    Par défaut
    Euh..
    J'arrive pas à transformer ma procédure curl() (fonction.h) en fonction qui me retourne la chaine chunk au lieu de faire un printf..

    J'ai essayé mais ça passe pas..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char* curl(char* url){ .... return chunk; }
    cannot convert `MemoryStruct' to `char*' in return
    Idem pour un void* (bah j'aurai essayé)


    Résolu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char* curl(char* url){ ..return chunk.memory; }

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [MySQL] Tracage des requêtes lentes
    Par GyZmoO dans le forum Administration
    Réponses: 1
    Dernier message: 29/06/2010, 14h53
  2. [Oracle] Outil graphique pour lancer des requêtes ,
    Par falco- dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 24/02/2010, 10h50
  3. Lancer des requêtes DB2 par ligne de commande Unix
    Par rstephane dans le forum DB2
    Réponses: 3
    Dernier message: 27/05/2009, 15h36
  4. Réponses: 7
    Dernier message: 31/08/2006, 18h03
  5. [Delphi 2005] Lancer des requêtes MicroSoft Query
    Par Frank dans le forum Bases de données
    Réponses: 2
    Dernier message: 21/10/2005, 19h27

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