FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
buscar un campo
Imaginemos: tengo una tabla que la visualizo con un dbgrid. Cada vez que hago click encima de cada registro, me guardo el valor del campo 'ID' en una variable.
Pues bien, como puedo hacer para que en otro momento dado que a mi me interese, se posicione el puntero del dbgrid en el registro al cual corresponde el id que tenia yo guardado??? No se si me he explicado con claridad, sino, decidmelo e intentare aclarar la cosa. Un saludo. |
#2
|
||||
|
||||
La ubicacion del resgistro activo de un DBGrid es la misma del registro activo de su conjunto de datos (tabla o consulta).
Lo que puedes hacer es un locate sobre la tabla que tienes asociada con tu DBGrid. Algo asi: Tabla.locate('campoclave',variabe,[]); Espero haber entendido bien tu pregunta.... Suerte... |
#3
|
||||
|
||||
Una sugerencia: Si bien lo expuesto por Osorio es correcto, quiero sugerirte que en lugar de guardar el valor del campo ID del registro, guardes el Bookmark del mismo (a no ser que por otro motivo necesites del ID). La ventaja de guardar el Bookmark es que el acceso es mucho mas rápido, ya que no tiene ninguna necesidad de realizar una búsqueda en los datos de la consulta. La ventaja de guardar un ID, es que si cambiamos el set de resultados, aún podemos ubicar el registro por su clave primaria.
Código:
type TForm1 = class(TForm) ... private SBookMark: string; end; implementation procedure TForm1.btnGuardarPosicionClick(Sender: TObject); begin SBookMark := Query1.Bookmark; end; procedure TForm1.btnIrAlBookmarkClick(Sender: TObject); begin Query1.GotoBookmark(Pointer(SBookMark)); end;
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#4
|
|||
|
|||
Gracias Osorio, tu respuesta ha sido 100% lo que queria hacer.
Un saludo. |
|
|
|