Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #4  
Antiguo 13-06-2013
Avatar de santiago14
santiago14 santiago14 is offline
Miembro
 
Registrado: sep 2003
Ubicación: Cerrillos, Salta, Argentina
Posts: 583
Poder: 21
santiago14 Va por buen camino
Wink

Para resolver mi problema, hice lo siguiente:

Código Delphi [-]
//.....
type
  TAviso = record
    nro_op:Integer;
    aviso:TStream;
    observaciones_aviso,
    estado_aviso:string;
  end;

//.....

uses
  DB;

//.....


procedure nuevo_aviso(r_aviso:TAviso; qAvisos:TMDOQuery);
begin
  with r_aviso, qAvisos do
  begin
    Close;
    SQL.Clear;
    SQL.Add('Insert into avisos (nro_op, texto_aviso, ');
    SQL.add('observaciones_aviso, estado_aviso) ');
    SQL.Add('Select :nro_op, :texto, :observaciones, :estado ');
    SQL.Add('From rdb$database ');
    ParamByName('nro_op').AsInteger:=nro_op;
    ParamByName('texto').LoadFromStream(aviso, ftBlob);
    ParamByName('observaciones').AsString:=observaciones_aviso;
    ParamByName('estado').AsString:=estado_aviso;
    try
      ExecSQL;
    except
      raise;
    end;
  end;
end;

end.

Código Delphi [-]
//.....

procedure TfrmPrincipal.btnRegistroAvisoClick(Sender: TObject);
var
  stream:TStream;
  r_aviso:TAviso;
begin
  stream:=TMemoryStream.Create;
//Guardamos el contenido como un flujo en stream
  Editor.Lines.SaveToStream(stream);
  with r_aviso do
  begin
    nro_op:=StrToInt(txtNroOP.Text);
    aviso:=stream;
    observaciones_aviso:='';
    estado_aviso:='NO_PUBLICADO';
  end;
  with DataModule1 do
  begin
    terminarTransaccion;
    try
      transaccion.StartTransaction;
      nuevo_aviso(r_aviso, qAvisos);
      transaccion.Commit;
      MessageBox('Registro terminado.', PChar(lblAvisos.Caption),
        MB_OK + MB_ICONINFORMATION);
    except
      on e:Exception do
      begin
        terminarTransaccion;
        mErrores(e, 'Sin registro de aviso digitalizado.', lblAvisos.Caption);
      end;
    end;                
  end;
end;

//......

Del lado de la BD la cosa es así:
Código SQL [-]
CREATE TABLE AVISOS (
    NRO_OP               INTEGER NOT NULL,
    TEXTO_AVISO          BLOB SUB_TYPE 0 SEGMENT SIZE 100,
    OBSERVACIONES_AVISO  VARCHAR(1000),
    ESTADO_AVISO         VARCHAR(50)
);

ALTER TABLE AVISOS ADD CONSTRAINT PK_AVISOS PRIMARY KEY (NRO_OP);

Lo he probado poniendo un archivo .rtf con imágenes y texto, negrita, hipervínculos, cursiva, etc., etc. etc. y me lo pasó de 10.
No hubo necesidad de guardar el .rtf a disco, que por supuesto si el usuario desea hacerlo tiene disponible el botón "guardar" para luego levantarlo a su antojo.
Firebird 2.1, conexión: IBX, Delphi 7

Bueno, gracias nuevamente por el aporte de todos.

Santiago.
__________________
Uno es responsable de lo que hace y de lo que omite hacer.

Última edición por ecfisa fecha: 18-08-2020 a las 15:41:22. Razón: quitar emoticón del código
Responder Con Cita
 



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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
¿Qué significa el mensage "BLOB has been modified" en una tabla Paradox? Alcolea Tablas planas 1 06-10-2012 17:23:54
Porque me sale cada rato un Warning "ibase_fetch_assoc()" al Guardar ???? AGAG4 PHP 6 09-09-2008 23:40:25
Error Invalid blob handle in record buffer??? sin usar "Blobs to cache" varuhs Conexión con bases de datos 4 22-01-2007 21:19:53
Campo "Blob" en SQLServer RaulChemical MS SQL Server 0 27-06-2006 12:24:08
¿Como Guardar un "RECORD" en un campo BLOB? sitrico Conexión con bases de datos 5 29-06-2004 17:32:01


La franja horaria es GMT +2. Ahora son las 02:34:34.


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