INSERT dans mySQL avec Delphi (problème de backslash)

INSERT dans mySQL avec Delphi (problème de backslash) - Delphi/Pascal - Programmation

Marsh Posté le 23-05-2010 à 15:43:58    

Bonsoir,
 
Je suis en BTS 2e année et je passe mes PTI dans une semaine.
Je poste très rarement sur les forums sous peur de me faire lynché par la communauté. Mais là, il y a problème ^^`
 
Mon projet Pascal développé sous Delphi7 est un répertoire de phrases du langage des signes (il affiche une vidéo ou une image quand une phrase est sélectionnée).
Mon application peut aussi ajouter des phrases. Lorsque l'utilisateur crée une nouvelle phrase, il faut lui indiquer le lien de la vidéo ou de l'image. Nous y voila.
 

Code :
  1. DataModule.DataModule2.ADOCommand1.CommandText := 'INSERT INTO phraseVideo (id_phraseVideo, lien_video) VALUES (' + intToStr(identifiant) + ', mysql_escape_string( ' + QuotedStr(Self.lien_video) + ') )' ;
  2. DataModule.DataModule2.ADOCommand1.Execute;


 
Je rentre donc par exemple : 1 (en tant que id_phraseVideo) et "C:\Users\***\videos\Barre chocolatee.m1v"  (* étant quand même un chemin de dossiers)
 
Lors que je vais dans ma base de données MySQL, je retrouve bien ma phrase, mais le lien ajouté n'a plus ses backslash (\)
"C:\Users\***\videos\Barre chocolatee.m1v" devient donc : "C:Users***videosBarre chocolatee.m1v"
Et c'est problématique lors que le MediaPlayer cherche la video ^^`
 
Je sais qu'il existe une propriété en PHP mysql_escape_string(), existe elle en Delphi ?
 
Je vous remercie pour toutes éventuelles réponses :)
 
---
Alexandre Serre

Reply

Marsh Posté le 23-05-2010 à 15:43:58   

Reply

Marsh Posté le 23-05-2010 à 16:32:33    

Bon j'en ai parlé à des collègues et personne ne connait la fonction. Ils m'ont donc conseillé de créer ma propre fonction :
 

Code :
  1. function TFo_ACCUEIL.doubleBackslash( lien : String ): String;
  2. begin
  3.      lien := StringReplace( lien, '\', '\\',[rfReplaceAll] );
  4.      doubleBackslash := lien;
  5. end;


 
StrinReplace a 4 paramètres :  
lien : étant la variable de type String à modifier
'\' : est de type String et est le caractère à changer
'\\' : est de type String et est le caractère qui le remplace
[rfReplaceAll] : permet de dire qu'il faut changer partout dans la variable à modifier.
 
Pour que le MySQL ne rejète pas le '\' il faut le doubler. C'est le cas de ma fonction.
 
---
Alexandre Serre


Message édité par css_Pikoo le 23-05-2010 à 16:33:58
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed