![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Cual es la finalidad de la busqueda? Seleccionar un registro en particular y mandarlo a un form hijo? Como mostras los resultados de la busqueda? Algun control enlazado a un DataSource conectado al TTable (estilo DBGrid)?
Si fuera por ejemplo el caso del DBGrid y el usuario tiene que seleccionar un registro, si el DBGrid esta linkeado a un DataSource conectado al TTable, el TTable te queda "magicamente" apuntando a la PK que buscas |
|
#2
|
|||
|
|||
|
Hola, depende del hijo. Algunos son grids, otros tienen dbedits... Por ello necesito "traducir" el findkey a dbexpress, lo ideal sería obtener de algún modo los campos de la clave primaria de esa tabla (con alguna función) y hacer un locate, pero tampoco encuentro esa "función" que me devuelva los campos.
|
|
#3
|
||||
|
||||
|
Es algo confuso el problema porque decís que en el formulario base tenés una tabla a la que le aplicas una búsqueda, y luego se la pasas a un formulario hijo en donde se define el tablename ??? Como trabajar con un table si no tiene definido tablename?
Por otro lado, cuando haces la búsqueda en tú primer formulario, te queda la tabla apuntando al primer registro que cumpla las condiciones de búsqueda, es decir el registro actual. Proba hacer un show message de los campos en algún botón para que me entiendas Saludos |
|
#4
|
|||
|
|||
|
El tablename es lo primero que se asigna en el create del hijo. Así pues si tiene tablename. O no me estoy explicando bien o es más confuso de lo que parece. Pero como bien he dicho lo que necesito es o bien cambiar ese FindKey por alguna intrucción "semejante" o como creo que no existe, intentar obtener la PK de la tabla para así poder hacer un LOCATE.
|
|
#5
|
||||
|
||||
|
No se que base de datos usas ni el volumen de datos que utilizas, pero componentes de tipo Table contra BBDD es lo más ineficiente que hay, y el problema se agrava si tabajas desde varios puestos simultaneamente. Yo te recomendaría que lo cambies por un Query y en lugar de FindKey, Locate, etc hagas un 'SELECT * FROM NOMBRE_DE_LA_TABLA WHERE CLAVE = VALOR_A_POSICIONAR'. No es tanto el cambio y en términos de eficiencia, rapidez, veracidad de datos, etc. si tienes cierto volumen, lo notarías mucho. Inconveniente? Tocar algo de código y olvidarte de Siguiente-Anterior desde el formulario de edición (algo normalmente innecesario e inutil, e.m.h.o.).
En todo caso, si no hay equivalente a FindKey, deberás trasladar el posicionamiento en las tablas al método OnCreate, OnShow (o el que creas oportuno) de cada form hijo, así que el cambio no sería tan grande. Un saludo.
__________________
http://www.gestionportable.com |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| findkey y fieldkind en sql | federicorl | Conexión con bases de datos | 2 | 09-04-2008 20:34:57 |
| FindKey | elpacua | Conexión con bases de datos | 1 | 22-02-2008 21:52:05 |
| ApplyUpdates(0); TSQLQuery ó TSQLTable | mramos65 | Conexión con bases de datos | 0 | 17-12-2007 18:21:26 |
| 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 |
|