[WD11] Requête SQL sur HF, quote et slashes

Le
Antoine
Bonjour,

Je fais des requêtes SQL sur des fichiers HF (HExecuteRequeteSQL).
Tout fonctionne bien, jusqu'à ce que j'ai des quotes et des slashes.
Pour les quotes, je faisais un Remplace(TexteSQL,"'","''") et ça semblait
marcher.
Mais si j'ai des quotes et des slashes qui se mélangent, quoi faire ??

Ca arrive pour du texte RTF, Exemple de ce que je voudrais enregistrer dans
le fichier HF par requête:

{tf1ansiansicpg1252deff0deflang1036{fonttbl{f0fswissfprq2fcharset0
Arial;}}<RC>{*generator Msftedit 5.41.15.1507;}viewkind4uc1pardf0fs16
lquote archivage : L'archivage/d'e9sarchivage ont le m'eame raccourci
par<RC>}<RC>ÿ{tf1ansiansicpg1252deff0deflang1036{fonttbl{f0fnilfcharset0
MS Shell Dlg;}}<RC>{*generator Msftedit
5.41.15.1507;}viewkind4uc1pardf0fs17par<RC>}<RC>

Ce qui me pose problème, c'est le mot "désarchivage", qui en RTF donne
apparemment "d'e9sarchivage" et le "'" pose problème

J'ai essayer de doubler les slashes, mais ça ne marche pas ?

Merci pour votre aide !!

Antoine
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Romain PETIT
Le #14520561
Antoine avait soumis l'idée :
Bonjour,



Bonjour,

Merci pour votre aide !!



Tu n'as qu'à "crypter" ta chaine en base 64 (cf fonction
crypte/decrypte avant de la stocker.
(et évidemment tu devras la décrypter avant utilisation)

A+


--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)
Antoine
Le #14520551
Bonjour,

Merci pour ta réponse.

Malheureusement je ne peux pas utiliser ta solution... Le fichier que
j'utilise est aussi utilisé par d'autres applications Windev existantes et
développées par une autre société. Je dois donc conserver le format actuel
de la rubrique. Ces autres applications font des modifications dans les
fichiers HF par des HModifie mais je voudrais être 100% SQL et ne pas passer
par des HModifie.

Il me faut donc absolument faire l'équivalent du HModifie mais en requête.

Antoine

"Romain PETIT"
Antoine avait soumis l'idée :
Bonjour,



Bonjour,

Merci pour votre aide !!



Tu n'as qu'à "crypter" ta chaine en base 64 (cf fonction crypte/decrypte
avant de la stocker.
(et évidemment tu devras la décrypter avant utilisation)

A+


--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)




Romain PETIT
Le #14520541
Antoine a émis l'idée suivante :

Il me faut donc absolument faire l'équivalent du HModifie mais en requête.



Alors essaye :
Remplace(TexteSQL,"'","\'")

A+

--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)
Antoine
Le #14520491
Salut, malheureusement j'avais déjà essayé ta suggestion, ça ne marchait pas
non plus...
Le problème est bien le cas du antislash+quote...

Alors finalement j'ai contourné le problème avec un truc un peu ignoble mais
qui marche...:

TexteSQL=Remplace(Remplace(ch_Valeur,"'","''"),"'","'+LEFT(' ',1)+''")

J'utilise un LEFT(' ',1) pour insérer l'antislash quand il est suivi d'une
quote... J'ai pas trouvé la fonction CARACT() ou l'équivalent en SQL-Windev
(il y a bien ASCII mais pas l'inverse).

Voilà, merci Romain pour ton temps passé.

Antoine


"Romain PETIT"
Antoine a émis l'idée suivante :

Il me faut donc absolument faire l'équivalent du HModifie mais en
requête.



Alors essaye :
Remplace(TexteSQL,"'","\'")

A+

--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)




Publicité
Poster une réponse
Anonyme