Ver Mensaje Individual
  #3  
Antiguo 09-04-2008
Avatar de mlara
[mlara] mlara is offline
Miembro Premium
 
Registrado: jun 2003
Ubicación: Colombia
Posts: 667
Reputación: 21
mlara Va por buen camino
Ya, creo que alguna vez me pasó lo mismo. Cuando se hace un append el componente no te recupera el valor del campo Identity que debería tener el registro. En realidad esto no es problema, ya que al hacer Post el servidor asigna el valor al campo Identify al nuevo registro.

La cuestión es que "quieras ver" el valor del campo Identity que tendrá el nuevo registro justo cuando ejecutas 'Append'. Bueno, pues en este caso, si tienes mucho problema al cambiar la propiedad FieldKind, entonces podrías hacer una consulta así:

Código SQL [-]
SELECT MAX(Id) FROM T
, donde Id es el campo Identity de la tabla T. Esto lo harías en el evento BeforeInsert del DataSet (sea Query, Table, o DataSet). Obviamente al tener este valor le sumas 1 y lo asignas al campo tipo Identity, así:

Código Delphi [-]
// Aquí la consulta anterior que podría recuperarse en la variable NewId.

...

Inc(NewId);
DataSet.Append;
DataSet.FieldByName('Id').AsInteger := NewId;

Espero que te haya podido colaborar.
__________________
...y mañana caminaré por las calles pasando inadvertido, como siempre.

Última edición por mlara fecha: 09-04-2008 a las 20:40:06.
Responder Con Cita