Ver Mensaje Individual
  #3  
Antiguo 22-08-2017
LIGERO LIGERO is offline
Miembro
 
Registrado: jun 2007
Posts: 42
Reputación: 0
LIGERO Va por buen camino
Buenas Ecfisa.

Gracias por contestar
Sigo con el mismo problema.
Mi DB es SQLServer 2008 y mi delphi EX3.

Tengo un formulario sencillo con dos TDBEdit, un TDBimage, con datos del registro, un Edit donde pongo la referencia del artículo y dos botones, uno para buscar el artículo a través del parámetro REFPROVEEDOR y otro para cargar una imagen jpg en el TDBImage.
Hasta ahí todo bien hasta que ejecutamos la sentencia

Código Delphi [-]
 if (ClientDataSet1.ChangeCount > 0) then
        ClientDataSet1.ApplyUpdates(-1);


que es donde da el error.

Adjunto código por si se ve algo extraño


Código Delphi [-]
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DBXMSSQL, Data.FMTBcd,
  Vcl.ExtCtrls, Vcl.DBCtrls, Data.DB, Data.SqlExpr, Datasnap.DBClient,
  Datasnap.Provider, Vcl.StdCtrls, Vcl.Mask, Vcl.ExtDlgs, jpeg;

type
  TForm1 = class(TForm)
    SQLConnection1: TSQLConnection;
    SQLTable2: TSQLTable;
    DBImage1: TDBImage;
    DataSource1: TDataSource;
    DBNavigator1: TDBNavigator;
    ClientDataSet1: TClientDataSet;
    DataSetProvider1: TDataSetProvider;
    Button1: TButton;
    DBEdit1: TDBEdit;
    DBEdit2: TDBEdit;
    OpenPictureDialog1: TOpenPictureDialog;
    Button2: TButton;
    SQLQuery1: TSQLQuery;
    Edit1: TEdit;
    SQLDataSet1: TSQLDataSet;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}


function ConvertJPG2BMP(FileName:String):TBitmap;
var
  pic:TPicture;
begin
  pic := TPicture.Create;
  pic.LoadFromFile(FileName);
  result:=TBitmap.create;
  result.Assign(pic.Graphic);
  pic.Free;
end;

(*
function ConvertBMP2JPG(BMPImage:TBitMap, FileName:String, CompQual:Integer):
var
  Jpg:Tjpegimage;
begin
  Jpg:=TJpegImage.Create;
  Jpg.CompressionQuality:=CompQual;
  result.Jpg.Assign(BMPImage); //Here assign the bitmap.image and change the function at top.
  Jpg.SaveToFile(FielName);
  Jpg.free;
end;
*)

procedure TForm1.Button1Click(Sender: TObject);
begin
  if OpenPictureDialog1.Execute then
  begin
    if (ANSIUpperCase(ExtractFileExt(OpenPictureDialog1.FileName)) = '.JPG')
        or
        (ANSIUpperCase(ExtractFileExt(OpenPictureDialog1.FileName)) = '.JPEG') then
    begin
      if not (ClientDataSet1.State = dsInsert) then
        ClientDataSet1.Edit;
      dbImage1.Picture.Bitmap := ConvertJPG2BMP(OpenPictureDialog1.FileName );
    end
    else
    begin
      if not (ClientDataSet1.State = dsInsert) then
        ClientDataSet1.Edit;
      dbImage1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
    end;
      ClientDataSet1.Post;

     if (ClientDataSet1.ChangeCount > 0) then
        ClientDataSet1.ApplyUpdates(-1);

  end;

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  SQLQuery1.Close;
  ClientDataSet1.Active:=false;
  SQLQuery1.Params.ParamByName('REFPROVEEDOR').AsString:=UpperCase(Edit1.Text);
  ClientDataSet1.Active:=true;
  SQLQuery1.Open;
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
  SQLConnection1.AutoClone:=true;
end;

end.

Última edición por Casimiro Notevi fecha: 22-08-2017 a las 12:59:46.
Responder Con Cita