Le caractere " ' "dans les requete SQL avec Paradox [Résolu]

bundyboss 33 Messages postés mardi 24 juin 2003Date d'inscription 3 mars 2005 Dernière intervention - 7 déc. 2004 à 23:38 - Dernière réponse : Loulibier 323 Messages postés jeudi 6 juin 2002Date d'inscription 24 septembre 2008 Dernière intervention
- 9 déc. 2004 à 19:59
Salut a vous!!
Je sais ce forum actif alors j en profite pour vous exposer mon probleme!
Voila j enregistre sans probleme dans ma base une info ayant comme valeur "d'histoire" par exmple.
Mon probleme est lorsque je vais une recherche le "d' " enfin plus precisemetn le " ' " pose un porbleme.
Ma requete est en dur dans mon code
ex: query.sql.append('where titre.nom = ''' + Edit.text + '*'''');

donc en gros qd il arrive au caractere " ' " il prend cela comme la fin du code!

Si je suis pas assez clair je donnerai le message d erreur.!

Merci
Afficher la suite 

12 réponses

Répondre au sujet
cs_oluha 71 Messages postés vendredi 19 mars 2004Date d'inscription 5 février 2009 Dernière intervention - 8 déc. 2004 à 15:56
+3
Utile
il te suffit de faire :

mavariable = StringReplace(Edit.text, '''', '''''', [rfReplaceAll]);

qui remplace une quote par deux quotes
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_oluha
Loulibier 323 Messages postés jeudi 6 juin 2002Date d'inscription 24 septembre 2008 Dernière intervention - 9 déc. 2004 à 12:59
+3
Utile
salut bundyboss,

Pourquoi ne reprends-tu pas le code de la function StringReplace de la version de Delphi 7 pour le retranscrire en Delphi 3 ?

comme l'exemple suivant :
function StrReplace(const S, OldPattern, NewPattern: string): string;
var
  SearchStr : string;
  Patt      : string;
  NewStr    : string;
  Offset    : Integer;
begin
  SearchStr := S;
  Patt := OldPattern;

  NewStr := S;
  Result := '';

  while SearchStr <> '' do
  begin
    Offset := AnsiPos(Patt, SearchStr);

    if Offset = 0 then
    begin
      Result := Result + NewStr;
      Break;
    end;

    Result := Result + Copy(NewStr, 1, Offset - 1) + NewPattern;
    NewStr := Copy(NewStr, Offset + Length(OldPattern), MaxInt);

    SearchStr := Copy(SearchStr, Offset + Length(Patt), MaxInt);
  end;
end;


Bonne Prog, ;)

Olivier

PS : Lorsqu'une réponse vous convient, n'oubliez pas de la valider.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Loulibier
florenth 1105 Messages postés dimanche 1 août 2004Date d'inscription 17 août 2008 Dernière intervention - 8 déc. 2004 à 13:25
0
Utile
Euh, pour mettre un apostrophe il suffit de redoubler le ' , non ?
Ët pois je crois que l'on peut mette des guillements " avec la touche guillemets sans avoir besoin de mettre 4 apostrophes ( '''' ).

Dans ce cas je pense que en remplacant tout cela cela va marcher (j'ai pas Delphi sous la mian donc ...)

@ ++ Florent

Si tu ne te plantes pas ......
tu ne poussera jamais
Commenter la réponse de florenth
bundyboss 33 Messages postés mardi 24 juin 2003Date d'inscription 3 mars 2005 Dernière intervention - 8 déc. 2004 à 14:24
0
Utile
je suis entierement d accord avec toi toutes tes remarques sont justes..
Le seul porbleme c'est que tu ne vas pas dire a la personne qui utilise qu'il suffit de mettre 2 apostrophes.... Enfin il me semble.
Je demande un pas un moyen car je l ai connais, je demande un comment!

Merci si une autre reponse pourrai etre produite
Commenter la réponse de bundyboss
Loulibier 323 Messages postés jeudi 6 juin 2002Date d'inscription 24 septembre 2008 Dernière intervention - 8 déc. 2004 à 14:44
0
Utile
salut bundyboss,

Pourquoi tu ne test pas la trame de la requete saisit par ton utilisateur et que tu rajoutes toi même le '.

exemple :
 l'utilisateur saisit                       : Toto'
            Après ton traitement sa donne : Toto''


Bonne Prog, ;)

Olivier

PS : Lorsqu'une réponse vous convient, n'oubliez pas de la valider.
Commenter la réponse de Loulibier
bundyboss 33 Messages postés mardi 24 juin 2003Date d'inscription 3 mars 2005 Dernière intervention - 8 déc. 2004 à 16:06
0
Utile
Merci pour cette dernière reponse qui me debloque bien!!
Voila ce que j appelle un "comment" et non un "moyen".
merci encore oluha.
Commenter la réponse de bundyboss
florenth 1105 Messages postés dimanche 1 août 2004Date d'inscription 17 août 2008 Dernière intervention - 8 déc. 2004 à 19:07
0
Utile
Autant pour moi ....

Je croyait que tu demandais un Moyen :-p
La prochaine fois, pose une question à la fin de ton explication comme cela tu auras toujours une réponse (le Comment)

@ ++ Florent

Si tu ne te plantes pas ......
tu ne poussera jamais
Commenter la réponse de florenth
bundyboss 33 Messages postés mardi 24 juin 2003Date d'inscription 3 mars 2005 Dernière intervention - 9 déc. 2004 à 10:23
0
Utile
Pas de probleme Ok j y penserai

Par contre je vais parraitre penible [:-)] mais
mavariable := StringReplace(Edit.text, '''', '''''', [rfReplaceAll]);
ne marche pas sous Delphi 3. Sous delphi 7pas de problème par contre..
Si une autre solution... ?
Merci
Commenter la réponse de bundyboss
bundyboss 33 Messages postés mardi 24 juin 2003Date d'inscription 3 mars 2005 Dernière intervention - 9 déc. 2004 à 17:24
0
Utile
Yeah merci beaucoup!!

Bin je l ai pas fait car tout simplement je ne sais pas ou tu as trouver le code de la fonction de cette fonction!!
Si tu pouvais me dire ca serai bien cool! Car n ayant pas la version 7 il me manque plein de traitement de ce genre!
J'imagine qu'il faut ouvrir un .pas ou .dcu quelconque mais lequel?

Merci pour ta reponse Loulibier

A bientot
Commenter la réponse de bundyboss
Loulibier 323 Messages postés jeudi 6 juin 2002Date d'inscription 24 septembre 2008 Dernière intervention - 9 déc. 2004 à 18:40
0
Utile
Dans la version de delphi ou il y a la function que tu souhaites récuperer les sources, il te suffit de cliquer droit sur l'appel de cette function et e selectionner "chercher la déclaration" et si les sources sont disponible tu les verras.

Bonne Prog, ;)

Olivier

PS : Lorsqu'une réponse vous convient, n'oubliez pas de la valider.
Commenter la réponse de Loulibier
florenth 1105 Messages postés dimanche 1 août 2004Date d'inscription 17 août 2008 Dernière intervention - 9 déc. 2004 à 18:56
0
Utile
Tu sais loubilier, tu peux modifier les parametres de la fonction (ou procédure) même si tu n'as pas mis le mot "var". Cela t'évites de creer des variables locales qui contiendront la même chose que les parametres.

Par contre je croix que l'on ne peut pas modifier les parametres si on met devant le mot "const" dont je n'ai pas compris l'utilité.

@ ++ Florent

Si tu ne te plantes pas ......
tu ne poussera jamais
Commenter la réponse de florenth
Loulibier 323 Messages postés jeudi 6 juin 2002Date d'inscription 24 septembre 2008 Dernière intervention - 9 déc. 2004 à 19:59
0
Utile
Je sais florenth lorsque tu ne met pas const ou var devant ta variable tu as la possibilité de travailler avec les variables en entrées de ta procedure ou fonction tout en n'affectant pas leur contenus.

Le code que j'ai proposé est le code récupéré de la function StringReplace de Delphi 7. J'ai simplement supprimer un paramètre de la function mais je n'ai pas modifié le code.

Bonne Prog, ;)

Olivier

PS : Lorsqu'une réponse vous convient, n'oubliez pas de la valider.
Commenter la réponse de Loulibier

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.