Como evitar duplicidad en un dbgrid?
Hola a todos,
Utilizo delphi 7 y mis tablas estan en access, Resulta que manelo una relacion master disteil y en un dbgrid capturo mis cuentas, como se puede evitar introducir la misma cuenta dos veces. si por fa, me pueden dar una orientacion. Gracias mil, Alcides Rep.Dom. |
Revisa documentación sobre claves primarias (PK), e índices únicos.
Utilizándolos en los campos adecuados de tu tabla puedes evitar que se repitan registros con determinados datos. |
Gracias neftali, por tu orientación.
Resulta neftali que no es en la tabla, es en el Dbgrid al momento de capturar la información, que necesito que una cuenta no se repita. Gracias Mil, Alcides Rep.Dom. |
Se me ocurre una pachotada y es que cada que agregues una cuenta la pongas en un TStringList y antes de grabar verifiques con un IndexOf al StringList y si dicha funcion devuelve diferente a -1 pues mostrar un mensaje donde diga que la cuenta esta repetida...
Eso a groso modo claro esta, pues abria que tener en cuenta varias cosas tales como, si borras una cuenta debes borrarla del StringList tambien y cosas de esas. |
A lo que se refiere Neftali, es que debes crear índices únicos en tu tabla de acces, de esta manera, cada vez que quieras agregar un registro que ya existe, se te generará una excepción de violación de llave primaria. La cuál puedes manejar a tu antojo.
Recuerda que el DBgrid es solo una representación gráfica del Dataset, es decir, lo importante es el dataset, no el dbgrid. |
La solución (pachotada) que te mostré podría servirte en un remoto caso donde quizá estés usando algún DataSet (de Memoria por ejemplo) donde no reconozca el conjunto de llaves que tienes en tu tabla.
|
Cita:
|
Hola
Como te han dicho esto se hace directamente sobre la tabla. En access es realmente facil ya que tiene un generador de consultas en donde puedes hacer la sentencia sql que necesites. Esta sentencia empieza con: Esto hace que no se repitan los datos. Saludos |
Gracias mil,
ContraVeneno, Jhonny, Neftali, caral por la orientación, Gracias, Alcides Rep.Dom. |
La franja horaria es GMT +2. Ahora son las 07:25:25. |
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