Ver Mensaje Individual
  #5  
Antiguo 17-09-2008
Walterdf Walterdf is offline
Miembro
 
Registrado: may 2003
Ubicación: Buenos Aires
Posts: 152
Reputación: 22
Walterdf Va por buen camino
Lo explico mejor. Tengo un formulario donde el usuario va agregando los articulos, y 2 datamodules (1 para la logica de negocios donde estan los clientdatasets y otro para el acceso a datos donde estan las ttables Paradox).

Lo que hago en el form cuando el usuario inserta un articulo es llamar al procedimiento InsertarItem del datamodule de la siguiente manera:

Código:
procedure TdmDomain.InsertarItem(item : TArticle);
begin
  with cdsDetailOrder do
  begin
    Open;
    Insert;
    FieldByName('CODIGO').AsString := item.Code;
    FieldByName('MARCA').AsString := item.Mark;
    FieldByName('PRECIOUNITARIO').AsFloat := item.Price;
    FieldByName('CANTIDAD').AsInteger := item.Quantity;
    Post;
  end;
end;
O sea que cada vez que el usuario inserta un item se llama a este procedimiento. El error me lo tira cuando realizo el 2do insert, o sea que ni llego a hacer ApplyUpdates y es el siguiente:
Project PPedidos.exe raised exception class EDBClient with message ". Process stopped. Use Step or Run to continue.

Si lo hago de esta manera:

Código:
procedure TdmDomain.InsertarItem(item : TArticle);
begin
  with cdsDetailOrder do
  begin
    Open;
    Insert;
    FieldByName('CODIGO').AsString := item.Code;
    FieldByName('MARCA').AsString := item.Mark;
    FieldByName('PRECIOUNITARIO').AsFloat := item.Price;
    FieldByName('CANTIDAD').AsInteger := item.Quantity;
    Post;
    ApplyUpdates(0); //nueva linea
    Close; //nueva linea
  end;
end;
Me inserta el registro sin inconvenientes pero esto significa insertar en la los registros tabla de a 1.

Evidentemente algo estoy haciendo mal.
Muchas gracias!!
Responder Con Cita