Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-11-2014
Avatar de rretamar
[rretamar] rretamar is offline
Miembro Premium
 
Registrado: ago 2006
Ubicación: San Francisco, Córdoba, Argentina
Posts: 1.168
Poder: 23
rretamar Va camino a la famarretamar Va camino a la fama
La mejor forma de perderle el miedo a Lazarus es....usándolo. Familiarizarse haciendo pequeñas aplicaciones, conocer todas las opciones de configuración (que son muchísimas), conocer sus componentes...y luego sí hacer algo concreto. Creeme que mejoró mucho, ya no es más aquel IDE de hace varios años atrás que se cerraba a veces hasta colocando un componente en un formulario. Hoy se puede usar en producción perfectamente...realmente FUNCIONA. Viniendo desde Delphi la "adaptación" es bastante rápida y comienzas a ser productivo en muy poco tiempo.
__________________
Lazarus Codetyphon : Desarrollo de aplicaciones Object Pascal, libre y multiplataforma.

Última edición por rretamar fecha: 05-11-2014 a las 04:38:57.
Responder Con Cita
  #2  
Antiguo 05-11-2014
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.465
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Que yo sepa no hay otra forma.
Puedes hacer un SP que haga la inserción y te retorne el valor generado (por el generador), de esta forma desde el "cliente" se hace en un sólo paso, auunque el trabajo de desarrollo es mayor. No se si vale la pena...
__________________
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.
Responder Con Cita
  #3  
Antiguo 05-11-2014
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.696
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Puedes retornar el valor insertado, mira aquí:
http://www.firebirdfaq.org/faq29/
Responder Con Cita
  #4  
Antiguo 05-11-2014
Avatar de rretamar
[rretamar] rretamar is offline
Miembro Premium
 
Registrado: ago 2006
Ubicación: San Francisco, Córdoba, Argentina
Posts: 1.168
Poder: 23
rretamar Va camino a la famarretamar Va camino a la fama
Gracias por las respuestas. Normalmente el valor de una clave primaria no debería interesarle al usuario final, no son para mirar. Pero en este caso es la excepción, sí necesito mostrar el valor cada vez que se guarda un nuevo registro.
__________________
Lazarus Codetyphon : Desarrollo de aplicaciones Object Pascal, libre y multiplataforma.
Responder Con Cita
  #5  
Antiguo 06-11-2014
Avatar de rretamar
[rretamar] rretamar is offline
Miembro Premium
 
Registrado: ago 2006
Ubicación: San Francisco, Córdoba, Argentina
Posts: 1.168
Poder: 23
rretamar Va camino a la famarretamar Va camino a la fama
Me respondo a mí mismo.

Al final lo que hice fue una chapuza (que funciona ):

Luego del POST, guardo la posición del registro actual en un marcador (TBookmark), hago un REFRESH del dataset y luego recupero la posición del registro usando el marcador.

Utilizo disablecontrols y enablecontrols en Lazarus para que el usuario no note nada. Todo eso se hace en una fracción de segundo...y así el usuario puede ver el valor que toma el campo autoincrementado para el registro que acaba de guardar.
__________________
Lazarus Codetyphon : Desarrollo de aplicaciones Object Pascal, libre y multiplataforma.
Responder Con Cita
  #6  
Antiguo 14-11-2014
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.696
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
http://www.firebirdfaq.org/faq243/
Responder Con Cita
  #7  
Antiguo 03-12-2014
Avatar de rretamar
[rretamar] rretamar is offline
Miembro Premium
 
Registrado: ago 2006
Ubicación: San Francisco, Córdoba, Argentina
Posts: 1.168
Poder: 23
rretamar Va camino a la famarretamar Va camino a la fama
Gracias Casimiro por la respuesta.

Al final modifiqué el código y al guardar el registro ejecuto esto en AfterPost:
Código Delphi [-]
Var ID: Integer;
....
ID := ZQEstudios.FieldByName('ID').AsInteger; 
Consulta.DisableControls;                               
Consulta.Refresh;
Consulta.Locate('ID' , ID , []);
Consulta.EnableControls;
Es otra "chapuza", pero funciona. Utilizo una variable temporal llamada ID para guardar la posición, luego uso locate con esa variable como parámetro de búsqueda.

ID es la primary key de la tabla, y teniendo en cuenta que existe un índice para esa columna, el posicionamiento usando LOCATE es prácticamente instantáneo a la vista del usuario final.
__________________
Lazarus Codetyphon : Desarrollo de aplicaciones Object Pascal, libre y multiplataforma.

Última edición por nlsgarcia fecha: 04-12-2014 a las 03:33:23. Razón: Resaltar sintaxis Delphi
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
ClientDataSet no muestra AggregateField (Campo agregado)) Jere_84 Conexión con bases de datos 3 30-03-2012 23:36:59
No muestra Campo Blob en mi DBGrid ingabraham Varios 2 23-03-2010 13:50:16
Busqueda en un campo autoincrementado Alexandro Tablas planas 0 20-10-2008 16:52:15
Firebird Suma 2 valores en un campo autoincrementado en insercion de registro Adrian Murua Firebird e Interbase 5 03-05-2007 12:16:19
no me muestra un campo actualizado con triggers pmfras Firebird e Interbase 0 05-03-2005 17:41:07


La franja horaria es GMT +2. Ahora son las 03:11:17.


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