He reestructurado un poco el diseño, no por nada sino por dejarlo todo mas ordenado.
He creado un DataModule y en el procedimiento donde aplico cambios he cerrado y abierto conexión.
Código:
procedure TDM.Aplicar;
begin
SQLConnection1.Close;
SQLConnection1.Open;
if not (ClientDataSet1.State = dsInsert) then
ClientDataSet1.Edit;
ClientDataSet1.Post;
if (ClientDataSet1.ChangeCount > 0) then
ClientDataSet1.ApplyUpdates(-1);
ClientDataSet1.Close;
ClientDataSet1.Open;
end;
Primero localizo el registro y lo muestro.
A partir de ahí, busco la imagen y la cargo en el dbimage
Código:
procedure TForm1.CargarImageClick(Sender: TObject);
begin
IrARegistroClick(Sender);
if OpenPictureDialog1.Execute then
begin
if not (DM.ClientDataSet1.State = dsInsert) then
DM.ClientDataSet1.Edit;
if (ANSIUpperCase(ExtractFileExt(OpenPictureDialog1.FileName)) = '.JPG')
or (ANSIUpperCase(ExtractFileExt(OpenPictureDialog1.FileName)) = '.JPEG') then
dbImage1.Picture.Bitmap := ConvertJPG2BMP(OpenPictureDialog1.FileName )
else
dbImage1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
end;
end;
Y ahora ya si puedo aplicar los cambios sin que se produzca el error
Gracias a los que habéis contestado o seguido este hilo.
Lo doy por cerrado.