Re: stocker un champ RTF dans une base (MySQL ou HF)

Posté par daniel le 17/2/2008 19:18:55
Il n'y a aucun problème pour stocker du RTF sous MySQL et ceci dès les premières versions de MySQL.

Le type de champ est "text".

Il suffit de prendre le code que je vous ai donné uniquement pour l'écriture.


En lecture un simple "select" est suffisant.

Dans votre cas il suffisait de faire



POUR ECRIRE LE RTF dans la base MySQL

v_chaine_ok est une chaîne = mySQLEscapeString(fen1.ONG_Onglet1.SCRTF3.SaisieTexte)

// pas besoin de quoter la chaine car fait par la fonction mySQLEscapeString
SQLExec("UPDATE `base`.`table` SET `rtf1` = "+v_chaine_ok+" WHERE `Id`='1'","SQL_RQ")




Le fonction ci-dessous est à utiliser uniquement en écriture
FONCTION mySQLEscapeString(textString is string)

// Fonction vient de mysql4wd

v_textstring est une chaîne = textString

	IF (Position(textString, "\") > 0) THEN v_textstring = Replace(v_textstring, "\", "\\")
	IF (Position(textString, Charact(0)) > 0) THEN v_textstring = Replace(v_textstring, Charact(0), "\0")
	IF (Position(textString, TAB) > 0) THEN v_textstring = Replace(v_textstring, TAB, "\t")
	IF (Position(textString, Charact(10)) > 0) THEN v_textstring = Replace(v_textstring, Charact(10), "\n")
	IF (Position(textString, Charact(13)) > 0) THEN v_textstring = Replace(v_textstring, Charact(13), "\r")
	IF (Position(textString, "'") > 0) THEN v_textstring = Replace(v_textstring, "'", "\'")
	v_textstring = "'" + v_textstring + "'"

RESULT (v_textstring)

Cette contribution était de : http://old.wdforge.org/newbb/viewtopic.php?forum=17&topic_id=5654&post_id=23237