Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-03-2008
federicorl federicorl is offline
Miembro
 
Registrado: may 2006
Posts: 31
Poder: 0
federicorl Va por buen camino
Cool findkey y fieldkind en sql

saludos foristas estoy trabajando con Delphi 7 y con una base en SQL resulta que si manejo los Campos de identidad en SQL estos no se actualizan en deplhi al hacer un append, para solucionar esto hay que cambiar la propiedad fieldkind del campo a fkInternalCalc pero en este caso los indices dejan de funcionar y si haces un findkey o un locate no te localiza el registro en cuestion a menos que la propiedad fieldkind este en FkData alguien sabe como hacer para que el campo funcione como autoincremento pero se pueda usar como indice tambien, mil gracias por su tiempo Saludos!
Responder Con Cita
  #2  
Antiguo 09-04-2008
Avatar de mlara
[mlara] mlara is offline
Miembro Premium
 
Registrado: jun 2003
Ubicación: Colombia
Posts: 667
Poder: 21
mlara Va por buen camino
Quizá siendo un poco más explícito con relación al uso de componentes podría colaborar en algo... no no no, creo que no hay problema con esto. Estaba pensando en otras cosas. Continúo en el siguiente Post.
__________________
...y mañana caminaré por las calles pasando inadvertido, como siempre.

Última edición por mlara fecha: 09-04-2008 a las 20:06:29.
Responder Con Cita
  #3  
Antiguo 09-04-2008
Avatar de mlara
[mlara] mlara is offline
Miembro Premium
 
Registrado: jun 2003
Ubicación: Colombia
Posts: 667
Poder: 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
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
FindKey elpacua Conexión con bases de datos 1 22-02-2008 21:52:05
Findkey?? o Locate Ubed Conexión con bases de datos 8 10-10-2007 00:56:04
Findkey e IBTable Puche Firebird e Interbase 1 10-07-2006 15:47:12
Findkey trex2000 Tablas planas 15 01-04-2004 21:35:35
Findkey en ADO !!! vpepen Conexión con bases de datos 3 05-12-2003 11:14:18


La franja horaria es GMT +2. Ahora son las 11:33:06.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi