Hello all, i think the subject resumes all.
I want to store a formatted text from a richedit on a (blob) field in a sqlite database and restore it later.
I've succesfully stored an image on a blob in a mysql database but i can't make work with text.
I've tried many suggestions and tried to make modifications but dosesn't seem to work.
Something is stored but when i retrieve it the richmemo is blank.
If i retrieve as text it's incomplete i guess.
here is the code for the insertion
...
try
strStream := TMemoryStream.Create();
strstream2:= TMemoryStream.Create();
RichMemo1.SaveRichText(strStream);
RichMemo2.SaveRichText(strstream2);
ibase.fbase.queryle.ParamByName('param1').DataType:=ftblob;
ibase.fbase.queryle.ParamByName('param1').ParamType:=ptinput;
ibase.fbase.queryle.ParamByName('param1').LoadFromStream(strStream, ftBlob);
ibase.fbase.queryle.ParamByName('param2').DataType:=ftblob;
ibase.fbase.queryle.ParamByName('param2').ParamType:=ptinput;
ibase.fbase.queryle.ParamByName('param2').LoadFromStream(strStream2, ftBlob);
cadw:='INSERT INTO presupuestos (idcliente, fecha, publico, privado) VALUES ('+label2.Caption+', "';
cadw:=cadw+devolverfecha(DateEdit5.Date)+'", :param1, :param2)';
ibase.fbase.queryle.SQL.Clear;
ibase.fbase.queryle.SQL.Add(cadw);
ibase.fbase.queryle.ExecSQL;
ibase.fbase.queryle.Close;
ShowMessage('El presupuesto fue guardado');
strStream.Free;
strStream2.Free;
except
showmessage('No se pudo guardar el presupuesto');
strStream.Free;
strStream2.Free;
end;
...
And this to retrieve it
procedure tform4.cargarpresu;
var
cad: TCaption;
strStream ,strStream2: TMemoryStream;
Begin
cad:='SELECT * FROM presupuestos WHERE idpresupuesto = '+label37.Caption;
ibase.fbase.querysl.SQL.Clear;
ibase.fbase.querysl.SQL.Text:=cad;
ibase.fbase.querysl.Open;
strStream := TMemoryStream.Create();
strStream2:= TMemoryStream.Create();
if not ibase.fbase.querysl.EOF then begin
DateEdit5.Date:=devolverfechan(ibase.fbase.querysl.FieldByName('fecha').AsString);
TBlobField(ibase.fbase.querysl.FieldByName('publico')).SaveToStream(strStream);
RichMemo1.LoadRichText(strStream);
TBlobField(ibase.fbase.querysl.FieldByName('privado')).SaveToStream(strStream2);
RichMemo2.LoadRichText(strStream2);
end;
ibase.fbase.querysl.Close;
PageControl1.PageIndex:=2;
RichMemo1.SetFocus;
strStream.Free;
strStream2.Free;
end;
Thanks!