Le caractere " ' "dans les requete SQL avec Paradox

Résolu
bundyboss Messages postés 28 Date d'inscription mardi 24 juin 2003 Statut Membre Dernière intervention 3 mars 2005 - 7 déc. 2004 à 23:38
Loulibier Messages postés 309 Date d'inscription jeudi 6 juin 2002 Statut Membre Dernière intervention 24 septembre 2008 - 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

12 réponses

cs_oluha Messages postés 71 Date d'inscription vendredi 19 mars 2004 Statut Membre Dernière intervention 5 février 2009
8 déc. 2004 à 15:56
il te suffit de faire :

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

qui remplace une quote par deux quotes
3
Loulibier Messages postés 309 Date d'inscription jeudi 6 juin 2002 Statut Membre Dernière intervention 24 septembre 2008 2
9 déc. 2004 à 12:59
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.
3
florenth Messages postés 1023 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 17 août 2008 3
8 déc. 2004 à 13:25
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
0
bundyboss Messages postés 28 Date d'inscription mardi 24 juin 2003 Statut Membre Dernière intervention 3 mars 2005
8 déc. 2004 à 14:24
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Loulibier Messages postés 309 Date d'inscription jeudi 6 juin 2002 Statut Membre Dernière intervention 24 septembre 2008 2
8 déc. 2004 à 14:44
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.
0
bundyboss Messages postés 28 Date d'inscription mardi 24 juin 2003 Statut Membre Dernière intervention 3 mars 2005
8 déc. 2004 à 16:06
Merci pour cette dernière reponse qui me debloque bien!!
Voila ce que j appelle un "comment" et non un "moyen".
merci encore oluha.
0
florenth Messages postés 1023 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 17 août 2008 3
8 déc. 2004 à 19:07
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
0
bundyboss Messages postés 28 Date d'inscription mardi 24 juin 2003 Statut Membre Dernière intervention 3 mars 2005
9 déc. 2004 à 10:23
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
0
bundyboss Messages postés 28 Date d'inscription mardi 24 juin 2003 Statut Membre Dernière intervention 3 mars 2005
9 déc. 2004 à 17:24
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
0
Loulibier Messages postés 309 Date d'inscription jeudi 6 juin 2002 Statut Membre Dernière intervention 24 septembre 2008 2
9 déc. 2004 à 18:40
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.
0
florenth Messages postés 1023 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 17 août 2008 3
9 déc. 2004 à 18:56
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
0
Loulibier Messages postés 309 Date d'inscription jeudi 6 juin 2002 Statut Membre Dernière intervention 24 septembre 2008 2
9 déc. 2004 à 19:59
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.
0
Rejoignez-nous