Ver Mensaje Individual
  #4  
Antiguo 02-09-2003
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Reputación: 24
guillotmarc Va por buen camino
Hola.

Los Querys de dbExpress són de solo lectura, por lo que imagino que el Delete para borrar el registro, lo realizas sobre un ClientDataSet relacionado con el Query.

Realmente el ClientDataSet no puede darse cuenta de que no se podrá borrar el registro, puesto que simplemente lo borra de su caché local. No es hasta que se realiza un ApplyUpdates que no intenta borrar realmente el registro en la base de datos. Pero en ese momento si se tiene que enterar del problema, y lanzar una excepción. NOTA : Pón un 0 en el parámetro del ApplyUpdates, para que falle al encontrar un error.

Sobre el problema con la relación maestro-detalle. ¿ Porqué no eliminas los componentes y los vuelves a crear ?, no sea que haya por ahí alguna propiedad escondidad, que hayas modificado en algún momento, y te esté haciendo la puñeta. Puesto que establecer la relación es muy sencillo, y tiene que funcionar, yo lo utilizo muchisimo.

----qryPedido :
SQL : select * from Pedidos where IdPedido = :IdPedido

----idsPedido
DataSet : qryPedido

----qryDetallesPedido
Datasource : idsPedido
SQL : select * from DetallesPedido where IdPedido = :IdPedido

----dspPedido :
Dataset : qryPedido

---cdsPedido :
Provider : dspPedido

--- dsPedido :
Dataset : cdsPedido

---cdsDetallesPedido
DatasetFieldName : cdsPedidoqryDetallesPedido

---dsDetallesPedido
Dataset : cdsDetallesPedido

Recuerda de crear los campos persistentes tanto en los querys como en los clientdatasets, y de crear también persistentes los parámetros.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita