Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MySQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=21)
-   -   Campo RTF no pasa a objeto StringStream (https://www.clubdelphi.com/foros/showthread.php?t=96442)

darkamerico 12-10-2023 16:32:11

Campo RTF no pasa a objeto StringStream
 
Saludos amigos,
Cuando deseo cargar el contenido RTF de un campo tipo longtext, pasa lo siguiente cuando correo paso a paso:

Paso 1:
https://ibb.co/QmCsLYw

Paso 2:
https://ibb.co/xL6Thtt

Estoy usando la siguiente versión del servidor: 10.4.28-MariaDB - mariadb.org binary distribution
Uso Delphi 10.3 Rio

Agradecería mucho su ayuda

pgranados 12-10-2023 17:40:43

¿Y
Código Delphi [-]
q_DetBuscal.FieldByName('documento').asString
trae algún valor?

darkamerico 12-10-2023 17:42:37

Cita:

Empezado por pgranados (Mensaje 552931)
¿Y
Código Delphi [-]
q_DetBuscal.FieldByName('documento').asString
trae algún valor?

Si claro, trae datos. Eso se puede apreciar en la imagen del paso 1.

Gracias por responder

pgranados 12-10-2023 17:46:54

¿Y si le pasas al stringstream solo texto también te lo retorna vacío?

Código Delphi [-]
Lista:= TStringStream.Create('Hola Mundo');

darkamerico 12-10-2023 17:49:48

Cita:

Empezado por pgranados (Mensaje 552933)
¿Y si le pasas al stringstream solo texto también te lo retorna vacío?

Código Delphi [-]
Lista:= TStringStream.Create('Hola Mundo');


ooo igualmente se pierde el valor hmmm, brother usas WhatsApp? mi numero es +51956940019, ya no se que mas moverle.

pgranados 12-10-2023 17:53:03

Yo checaría si "contenido" ya fue creado previamente

Código Delphi [-]
if contenido <> nil then
contenido := TStringStream.Create('Hola Mundo');

Revísalo y nos informas

darkamerico 12-10-2023 17:57:19

Cita:

Empezado por pgranados (Mensaje 552935)
Yo checaría si "contenido" ya fue creado previamente

Código Delphi [-]
if contenido <> nil then
contenido := TStringStream.Create('Hola Mundo');

Revísalo y nos informas

El objeto contenido es nil:

darkamerico 12-10-2023 17:59:13

Contenido nil
 
Objeto Nil:

https://ibb.co/M1Zhtqy

La Unidad Completa esta aquí: uUbicaDoc.zip

El Evento en cuestion es gridResBuscaCellClick;

pgranados 12-10-2023 18:32:18

Un error, en lugar de "<>" era "=" pero deja reviso el unit para ver que pasa

darkamerico 12-10-2023 18:42:03

Cita:

Empezado por pgranados (Mensaje 552938)
Un error, en lugar de "<>" era "=" pero deja reviso el unit para ver que pasa

Amigo, si deseas un extracto de la tabla documento, de la BD secretaria aqui te la doy:

Tabla documento

pgranados 12-10-2023 18:42:33

Siéndote honesto no veo el error, en una forma hice lo siguiente y funciono

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  Lista: TStringStream;
  datos: string;
begin
  datos:= 'HOLA';
  Lista:= TStringStream.Create(datos);
end;

Intenta agregar antes de crear el stringStream
Código Delphi [-]
FreeAndNil(contenido);

darkamerico 12-10-2023 18:50:46

video del problema
 
Cita:

Empezado por pgranados (Mensaje 552940)
Siéndote honesto no veo el error, en una forma hice lo siguiente y funciono

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  Lista: TStringStream;
  datos: string;
begin
  datos:= 'HOLA';
  Lista:= TStringStream.Create(datos);
end;

Intenta agregar antes de crear el stringStream
Código Delphi [-]
FreeAndNil(contenido);

---------------------------------------------------

Amigo, aquí hice un pequeño video para reproducir el problema
Problema

pgranados 12-10-2023 18:56:24

Ya veo, ¿tienes teamviewer o algún otro programa de conexión remota?

darkamerico 12-10-2023 18:58:55

Si amigo
 
Cita:

Empezado por pgranados (Mensaje 552942)
Ya veo, ¿tienes teamviewer o algún otro programa de conexión remota?

Anydesk ID: 346 471 409

pgranados 12-10-2023 19:44:40

Aqui te paso el codigo para generar el txt

Código Delphi [-]
procedure GuardarTextoEnArchivo(const texto: string; const nombreArchivo: string);
var
  archivo: TextFile;
begin
  AssignFile(archivo, nombreArchivo);
  Rewrite(archivo);
  Write(archivo, texto);
  CloseFile(archivo);
end;

texto le pasas el valor del field y en nombre archivo la ruta de donde se guardara con el nombre y la extensión

y ya después de cargar la info te recomiendo eliminar el archivo

DeleteFile(miarchivo);

darkamerico 12-10-2023 20:55:01

Resuelto
 
Cita:

Empezado por pgranados (Mensaje 552946)
Aqui te paso el codigo para generar el txt

Código Delphi [-]
procedure GuardarTextoEnArchivo(const texto: string; const nombreArchivo: string);
var
  archivo: TextFile;
begin
  AssignFile(archivo, nombreArchivo);
  Rewrite(archivo);
  Write(archivo, texto);
  CloseFile(archivo);
end;

texto le pasas el valor del field y en nombre archivo la ruta de donde se guardara con el nombre y la extensión

y ya después de cargar la info te recomiendo eliminar el archivo

DeleteFile(miarchivo);


Estimado amigo, lo resolvi de esta manera:

...
TBlobField(q_DetBusca1.FieldByName('documento')).SaveToStream(Contenido);
Contenido.Position := 0;
docView.Lines.LoadFromStream(Contenido);
...

Gracias y gracias

pgranados 12-10-2023 20:56:23

Genial, otra forma mas elegante que la mía de resolverlo :D
Saludos y buen día !


La franja horaria es GMT +2. Ahora son las 18:41:11.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi