saludos amigos, tengo un componente TRxRichEdit, el cual lee el contenido de un registro de la BD, en el evento OnActivate:
Código Delphi
[-]procedure TForm7.FormActivate(Sender: TObject);
var
Contenido: TStringStream;
begin
doc.Lines.Clear;
DMMYsql.q_DocDelReclamoX.close;
DMMYsql.q_DocDelReclamoX.Params[0].asInteger:=StrToInt(form1.lblIDReclamo.Caption);
DMMYsql.q_DocDelReclamoX.Params[1].asInteger:=form1.tipoDoc;
DMMYsql.q_DocDelReclamoX.Open;
Contenido := TStringStream.Create(DMMYsql.q_DocDelReclamoX.FieldByName('documento').AsString);
try
doc.Lines.LoadFromStream(Contenido);
finally
Contenido.Free;
end;
end;
Ahora bien, el problema que tengo es que deseo que ese contenido pueda ser editado por el cliente y finalmente en un boton "Actualizar" se almacene nuevamente la nueva version del documento. Intente el siguiente codigo, pero me coloca basura en el campo:
Código Delphi
[-]procedure TForm7.btnGrabarDocClick(Sender: TObject);
begin
DMMYsql.q_UPDDocReclamoX.Close;
DMMYsql.q_UPDDocReclamoX.Params[0].AsString:=doc.Lines.Text;
DMMYsql.q_UPDDocReclamoX.Params[1].AsInteger:=StrToInt(form1.lblIDReclamo.Caption);
DMMYsql.q_UPDDocReclamoX.Params[2].AsInteger:=form1.tipoDoc;
DMMYsql.q_UPDDocReclamoX.ExecSQL;
ShowMessage('Documento Actualizado!');
end;
La consulta sql del componente
q_UPDDocReclamoX es:
Código SQL
[-]UPDATE reclamo_documentos
SET documento=OCView
WHERE reclamo_documentos.idreclamo_fk = :IDReclamoX AND
reclamo_documentos.tipDoc = :TipDoc
Finalmente la estructura de la tabla
reclamo_documentos es la siguiente:
Código SQL
[-]CREATE TABLE `reclamo_documentos` (
`id_recDocumento` int(11) NOT NULL,
`idreclamo_fk` int(11) NOT NULL,
`tipDoc` int(11) NOT NULL,
`fecha_doc` varchar(10) NOT NULL,
`documento` longtext NOT NULL,
PRIMARY KEY (`id_recDocumento`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Gracias de antemano por la ayuda compañeros.
Atte
Americo