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++Builder Discussion :

Arrrrg \ et '


Sujet :

C++Builder

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2002
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 18
    Points : 14
    Points
    14
    Par défaut Arrrrg \ et '
    Bonjour, voici mon probleme :
    lors d'une migration de base de donnees, je dois récupérer un libelle texte qui contient le cractere ' (code ASCII : 39)
    Seulement voila, je dois deja le mettre entre ' dans mon TQuery... J'en ai donc un en trop à la fin => Probleme...

    J'ai deja essaye de rajouter un \ avant mais Buider est trop intellignet et ne me rajoute pas \ mas \\ !!!

    Comment faire ???
    Quand j'entend ce que j'entend et que je vois ce que je vois, il est normal de penser ce que je pense !

  2. #2
    Membre habitué
    Avatar de Freeze
    Homme Profil pro
    Inscrit en
    Octobre 2002
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 131
    Points : 162
    Points
    162
    Par défaut
    utilise ParamByName, il me semble que c'est le seul moyen de résoudre le problème, il me semble ...

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2002
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 18
    Points : 14
    Points
    14
    Par défaut
    Il faudrait donc que j'ai :

    Query1->ParamByName(MonLibelle);

    Query1->SQL->Add("insert into Table values (" + Query1->ParamByName->AsString + ")");


    Est ce bien cela ???
    Quand j'entend ce que j'entend et que je vois ce que je vois, il est normal de penser ce que je pense !

  4. #4
    exe
    exe est déconnecté
    Nouveau membre du Club
    Inscrit en
    Mars 2003
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 39
    Points : 31
    Points
    31
    Par défaut
    Non ce n'est pas ca.Mais plutot:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Query1->SQL->Clear();
    Query1->SQL->Add("insert into Table values 
    (':maChaine',:monNumero,':maDate')");
    Query1->ParamByName("maChaine")->AsString="je l'ai fait";
    Query1->ParamByName("monNumero")->AsInteger=15;
    Query1->ParamByName("maDate")='06/08/2003';
    J'espere que ca va marcher.Tu peux aussi regarder la doc...
    Morpheus(Reloaded 8) )
    Ce soir nous allons adresser un message a cette armée.Ce soir nous allons faire trembler ces murs de terre,d'acier et de pierre.

  5. #5
    Membre habitué
    Avatar de Freeze
    Homme Profil pro
    Inscrit en
    Octobre 2002
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 131
    Points : 162
    Points
    162
    Par défaut
    non je crois plutot que c'est ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    AnsiString req="insert into Table values(:maChaine,:monNumero,:maDate)"; 
     
    Query1->SQL->Clear(); 
    Query1->SQL->Add(req);
    Query1->ParamByName("maChaine")->AsString="je l'ai fait"; 
    Query1->ParamByName("monNumero")->AsInteger=15; 
    Query1->ParamByName("maDate")->AsString="06/08/2003";

  6. #6
    Membre à l'essai
    Inscrit en
    Mai 2002
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 18
    Points : 14
    Points
    14
    Par défaut
    Tu as raison pour l'ecriture mais il ne connait pas le param "Libelle"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Query1->ParamByName("Libelle")->AsString = MonLibelle;
    Il faut donc que je le définisse mais lorsque je clique sur PArams dans les propriétés du Query, je ne peux pas ajouter de Param ???

    Aurais tu une idée ?
    Quand j'entend ce que j'entend et que je vois ce que je vois, il est normal de penser ce que je pense !

  7. #7
    exe
    exe est déconnecté
    Nouveau membre du Club
    Inscrit en
    Mars 2003
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 39
    Points : 31
    Points
    31
    Par défaut
    On t'a donne un exemple utilisant 3 parametres!!!Essaie de faire de meme avec le nom de ta table.Regardes bien cet exemple:il y a : apres chaque parametre.C'est comme ca qu'on les introduit (les parametres) dans les requetes.Fais de meme avec Libelle.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    AnsiString req="insert into Table values(:Libelle,:.....;
    //et ensuite
    Query1->ParamByName("Libelle")->AsString = MonLibelle;
    Morpheus(Reloaded 8) )
    Ce soir nous allons adresser un message a cette armée.Ce soir nous allons faire trembler ces murs de terre,d'acier et de pierre.

  8. #8
    Membre habitué
    Avatar de Freeze
    Homme Profil pro
    Inscrit en
    Octobre 2002
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 131
    Points : 162
    Points
    162
    Par défaut
    non, non ton paramètre est défini dans ta requète par ":" (j'avais un peu tronqué la requete mais la voici entiere)
    tu pourrais aussi bien faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    AnsiString req="insert into Table (Libelle,Numero,Date) values(:Param1,:Param2,:Param3)"; 
     
    Query1->SQL->Clear(); 
    Query1->SQL->Add(req); 
    Query1->ParamByName("Param1")->AsString="je l'ai fait"; 
    Query1->ParamByName("Param2")->AsInteger=15; 
    Query1->ParamByName("Param3")->AsString="06/08/2003";
    attention, certains noms sont reservés (cf DATE,...) il faut faire attention

  9. #9
    Membre à l'essai
    Inscrit en
    Mai 2002
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 18
    Points : 14
    Points
    14
    Par défaut
    MERCI pour votre aide
    Quand j'entend ce que j'entend et que je vois ce que je vois, il est normal de penser ce que je pense !

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

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