Ver Mensaje Individual
  #1  
Antiguo 30-03-2024
navbuoy navbuoy is offline
Miembro
 
Registrado: mar 2024
Posts: 17
Reputación: 0
navbuoy Va por buen camino
metiendo un TMSRichEditor como BLOB en MySQL y como sacarlo de ahi

Hola, estoy teniendo un problemilla con esta historia

1) quiero guardar en una Tabla MySQL en un campo BLOB un archivo .rte (rich editor-Texto enriquecido)

esto lo estoy haciendo asi:

Código:
TMemoryStream *MemoryStream = new TMemoryStream;

 des = Form1->appPath + "\\data\\RTE\\" + "RichEditDesc" + AnsiString(Form1->template_Notas[c].id) + ".rte";
		   
Form1->RichEditor1->LoadFromFile(des);
Form1->RichEditor1->SaveToStream(MemoryStream);

y luego al crear el registro en la tabla, append etc la instruccion es esta:

MyTable_SERVER_TEMPLATES->FieldValues["RTE_BLOB"] = MemoryStream;

(esto lo hace bien, no da error ni nada asi que creo que lo mete en la BD)

el problema viene al intentar hacer la operacion inversa, es decir, sacar el *.rte del RTE_BLOB y escribirlo en disco y que lo haga bien claro para que lo pueda leer el RichEdit

lo tengo asi:

Código:
	   TField *field = Form7->MyTable_SERVER_TEMPLATES->FieldByName("RTE_BLOB");
	   TBlobField *blob = dynamic_cast<TBlobField *>(field);

	   AnsiString des = Form1->appPath + "\\data\\RTE\\" + "RichEditDesc" + AnsiString(Form1->notas2[count].id) + ".rte";
       		blob->SaveToFile(des);
y aunque lo guarda y tal, no lo hace bien porque el contenido del *.rte creado no tiene toda la historia de cosas raras que suele tener el fichero binario de Rich Text
y me dice cuando intento cargarlo en el RichEdit "read error" es decir el formato no lo ha guardado con el que tendria el rich edit rte.

si alguien me echa una mano pues gracias
Responder Con Cita