Ver Mensaje Individual
  #2  
Antiguo 10-03-2009
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Reputación: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Para eliminar o actualizar el registro, el componente proveedor necesita identificarlo de algún modo. Normalmente es mediante el campo que tenga la bandera pfInKey en ProviderFlags. Pero eso depende de qué valor tenga la propiedad UpdateMode del proveedor. Por lo general se recomienda upWhereKeyOnly.

En DBConsts.pas se encuentra la constante:
SRecordChanged = 'Record not found or changed by another user';
la cual es usada en varios puntos de la unidad Provider.pas

Si compilas el programa con la opción Use Debug DCUs (del cuadro de diálogo Project Options), a la hora de saltar una excepción el IDE te proporcionará más información sobre qué camino siguió el programa hasta llegar a la condición de error. Usando la pila de llamadas (Ctrl+Alt+S) podrás ver, en este caso, en qué punto de la unidad Provider no se cumplió alguna condición necesaria para la correcta aplicación de cambios.

Te sugiero revisar las propiedades ProviderFlags y UpdateMode.

Saludos.

Al González.

Última edición por Al González fecha: 11-03-2009 a las 17:25:09. Razón: Cambiar "Para eliminar..." por "Para eliminar o actualizar..."
Responder Con Cita