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

Requêtes PostgreSQL Discussion :

Insertion avec n'importe quel caractère


Sujet :

Requêtes PostgreSQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 412
    Par défaut Insertion avec n'importe quel caractère
    hello

    Je veux insérer du texte par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO table_principal(montext) VALUES ('ABCD' 'E\F''G');
    Mais évidement cela pose problème quand je fais ma requête.
    Comme le texte peut contenir n'importe quoi et en quantité inconnue. je fais comment

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Par défaut
    Bonjour,

    les binding par hasards ? rapprochez-vous du langage de programmation de votre application.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 412
    Par défaut
    oups j'ai oublié de préciser que je code en c++ et que donc j'utilise libpqxx

    je vais essayer d'utiliser ceci, je vous re-dis si ça roule
    http://pqxx.org/devprojects/libpqxx/...ce/a00193.html

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 412
    Par défaut
    bonjour
    Alors ça ne change pas le problème

    j'ai même pu voir grâce au soft pgadmin3 que les ' et \ rendent la base de données incohérente.

    apparemment il faut que je filtre chaque entrée et que je double les ' et les \ ..
    ça va sacrément alourdir la charge du cpu à filtrer caractère par caractère
    punaise mais il doit bien y avoir une autre solution... ?

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Par défaut
    Citation Envoyé par panthere noire Voir le message
    punaise mai il doit bien y avoir une autre solution... ?
    Oui il faut appeler les fonctions qui sont faites pour ça. Mais sans voir aucun bout de code, difficile de deviner ce qui ne va pas.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 412
    Par défaut
    Euh j'aurai penser que sans cela suffisait mai bon:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    /*fonction applante*/
    cSP.InsertTPrincipal( std::string("0"), time_day ,std::string("E'/home\\user3/Téléchargements\\tmp\\mon fichier'"));

    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
     
    void cSqlPqxx::InsertTPrincipal(const std::string & exist,
    									const std::string & datescan,
    										const std::string & path){
     
    std::string debugstr="INSERT INTO "+ cT.TPrincipal() + "(" +
    			cC.Exist()+ "," + cC.DateScan() + ","+ cC.Path() + "," + cC.KeyId() + ") VALUES ('"+
    			exist +"','"+datescan +"','"+ cCT.DoubleQuoteBakslash(path) +"',"+ "default"  + ")";
    std::cout << debugstr << std::endl;
     
    cSqlPqxx::StartTransaction();
     
    (*p_connect).prepare("my_statement", debugstr);
    (*p_work).prepared("my_statement").exec();
    cSqlPqxx::Commit();
    pas très très claire, mai voila la requette qui est obtenue et preparée puis executée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    INSERT INTO table_principal(exist,datescan,path,keyid) VALUES ('0','10:38:49','E'/home\\user3/Téléchargements\\tmp\\mon fichier'',default)
    l'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    terminate called after throwing an instance of 'pqxx::syntax_error'
    what():  ERREUR:  erreur de syntaxe sur ou près de « \ 
    LINE 1: ...tescan,path,keyid) VALUES ('0','10:42:54','E'/home\\user3/Té...
    Alors les valeurs peuves complètement changé. donc je doit filtrer chaques ' et les doubler
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    E'mavaleur est d\'or avec un text endomager \>'\</*¬&%*\\\\///''''''svcxasde3rxcvasd\æßð'
    bref le code est là mai la valeur peux contenir n'importe quoi...
    pas d'autre moyen ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 29/06/2010, 09h43
  2. Expression régulière : "n'importe quel caractère"
    Par Thordax dans le forum Langage
    Réponses: 6
    Dernier message: 30/03/2010, 15h36
  3. [Wamp] Utiliser Wamp avec n'importe quel port
    Par quentiin dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 11
    Dernier message: 27/01/2010, 12h46
  4. Réponses: 1
    Dernier message: 27/02/2008, 20h26
  5. Conversion avec n'importe quel langage
    Par mastere.info dans le forum Langages de programmation
    Réponses: 1
    Dernier message: 07/04/2007, 19h23

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