![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Hola, ¿y como haces el Applyupdate?, inserta el código si no es ninguna molestia.
Saludos.
__________________
![]() Mi BLOG - ¡Joder, leanse la guia de estilo! Las Palabras son enanas, los ejemplos gigantes. |
|
#2
|
|||
|
|||
|
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;
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;
Evidentemente algo estoy haciendo mal. Muchas gracias!! |
|
#3
|
||||
|
||||
|
Dos cosas, intenta hacer el open del clientdataset fuera del procedimiento, o sea, tenerlo abierto todo el tiempo, puede ser al crear el formulario y la otra agrega lo siguiente:
Comentanos como te fue. Saludos.
__________________
![]() Mi BLOG - ¡Joder, leanse la guia de estilo! Las Palabras son enanas, los ejemplos gigantes. |
|
#4
|
|||
|
|||
|
mmmmm, no entiendo en que cambia ApplyUpdates(-1)?, me sigue insertando los items de a 1. ¿?
|
|
#5
|
||||
|
||||
|
Cita:
y en el botón donde tienes el applyupdates le cambias el 0 por -1. Saludos. PD. el open del ClientDataset lo abres cuando creas el form u en otro sitio.
__________________
![]() Mi BLOG - ¡Joder, leanse la guia de estilo! Las Palabras son enanas, los ejemplos gigantes. |
|
#6
|
|||
|
|||
|
Haciendolo de esa manera, al hacer el Post (en el 2do. registro) me tira el error que comentaba antes.
|
|
#7
|
||||
|
||||
|
A mi con un código como este (lo he hecho a partir del tuyo) funciona perfectamente y me inserta varios registros.
Revisa que el error no te lo estén generando los datos que insertas; Problemas con claves duplicadas, índices únicos,... Revisa el parámetro entero del ApplyUpdates que te da el número de errores; También puedes intentar programar alguna cosa en los eventos que se refieren a los posibles errores en la inserción; OnPostError, OnAfterPost, OnAfterApplyUpdates,...
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Duda con CancelUpdates y ApplyUpdates con ClientDataSet | David | Conexión con bases de datos | 1 | 11-02-2011 20:00:07 |
| Between y ClientDataSet | d2nemi | Firebird e Interbase | 10 | 26-02-2008 09:21:00 |
| ClientDataSet y XML | gsilvei | Conexión con bases de datos | 0 | 03-10-2007 22:59:18 |
| ClientDataSet y W98 | tgsistemas | Conexión con bases de datos | 5 | 03-08-2004 10:13:06 |
|