Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-11-2005
gcaffe gcaffe is offline
Miembro
 
Registrado: oct 2004
Posts: 53
Poder: 20
gcaffe Va por buen camino
Question Como grabar un TRichEdit y conserve sus propiedades

Hola:

Anteriormente hice una consulta sobre un TRichEdit, gracias por la respuesta que recibí. Ahora lo que pregunto es, como hacer para grabar un campo TRichEdit, que está formateado, es decir con Negritas, Italicas, etc., en un campo nText de una base de datos SQL Server 2000, de tal froma que conserve sus atributos y que al volver a abrir el campo nText me muestro el TRichEdit formateado.

Muchas gracias
Responder Con Cita
  #2  
Antiguo 30-11-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Guardalo utilizando el método SaveToStream del TRichEdit, y LoadFromStream de tu campo/parámetro si es que este es un TBlobField.

http://www.clubdelphi.com/foros/show...13&postcount=2

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 01-12-2005
gcaffe gcaffe is offline
Miembro
 
Registrado: oct 2004
Posts: 53
Poder: 20
gcaffe Va por buen camino
Hola:
Gracias por tu sugerencia Delphi.com.ar, esto es lo que he realizado:

1) He modificado el código delphi que ejecuta el TADOStoreProcedure que actualiza la Tabla, quedando así:

Código Delphi [-]
 procedure TfrmInformes.frmBtnsbtnPostClick(Sender: TObject);
 var
   AStream: TStream;
 begin
   with DM.SProc do begin
      Active := False;
      ProcedureName := 'InformesMOD;1';
      Parameters.Refresh;
      Parameters.FindParam('@IDInforme').Value := DM.InformesVERIDInforme.Value;
 
      AStream := TMemoryStream.Create;
      try
         edRMemo.Lines.SaveToStream(AStream);
        Parameters.FindParam('@Texto').LoadFromStream(AStream, ftBlob); //    .Value := edRMemo.Lines;
      finally
         AStream.Free;
      end;
      if not Prepared then Prepared := True;
      ExecProc;
   end;
 end;

Nota: He eliminado lineas para que sea mas claro

2) Tambien he modificado el procedimento del MS SQL Server 2000, según las sugerencias técnicas para la Administración de datos nText, Text e Image, quedando finalmente así:

Código SQL [-]
 CREATE PROCEDURE InformesMOD
             @IDInforme    int,
             @Letrado    Char(4),
             @Resumen    nChar(80),
             @Adjuntos    Char(200),
             @FEnvio    SmallDateTime,
             @Texto     ntext,
             @Proxima    smalldatetime,
             @ARealizar    nChar(100)
                 
 AS
 
 BEGIN TRAN
 DECLARE    @PtrVal binary(16)
 
     UPDATE Informes
     SET     Letrado = @Letrado,
         Resumen = @Resumen,
                 Adjuntos = @Adjuntos,
                 FechaEnvio = @FEnvio,    
                ProximaAccion = @Proxima,
         Texto = @Texto,
         ParaHacer = @ARealizar
     WHERE IDInforme = @IDInforme
 
     EXECUTE sp_dboption 'Informes', 'select into/bulkcopy', 'TRUE'
 
     SELECT @PtrVal = TEXTPTR(Texto)
     FROM Informes
     WHERE IDInforme = @IDInforme
     UPDATETEXT Informes.Texto @PtrVal 0 NULL @Texto
 
     EXECUTE sp_dboption 'Informes', 'select into/bulkcopy', 'FALSE'
 
 IF @@ERROR = 0
     COMMIT TRAN
 ELSE
     ROLLBACK TRAN
 GO

Nota: Este procedimiento está completo, se pasan todos los parámetros.

3) Al ejecutarlo me da el siguiente error:

"Espacio de almacenamiento insuficiente para completar la operación"

Y hasta aquí he llegado y no sé como seguir, agradecería cualquier sugerencia.

Muchas gracias.
Responder Con Cita
  #4  
Antiguo 01-12-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
¿Es tan grande el texto como para que de ese error? (Mas de 1.073.741.823 bytes)
El tipo image es del doble de tamaño del nText.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 19:30:49.


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
Copyright 1996-2007 Club Delphi