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!!