Supprimer les doublons dans un dbgrid [Résolu]

PythonGreg 70 Messages postés jeudi 3 novembre 2011Date d'inscription 6 février 2015 Dernière intervention - 13 févr. 2012 à 14:33 - Dernière réponse : cs_cantador 4996 Messages postés dimanche 26 février 2006Date d'inscription 27 mars 2018 Dernière intervention
- 20 févr. 2012 à 15:50
Bonjour a tous,

j'ai une base de données avec un champ (Nom) qui est indexé sans doublons
mon problème aujourd'hui c'est quand je rentre un doublons dans EditNom.text puis je valide
--------------------------------
with ado.table do
begin
insert;
fieldbyname('Nom').value := EditNom.text
post;
--------------------------------
- J'ai un message qui me dit que j'ai un doublons jus que la tout va bien.
- Mais quand je veut modifier le doublons ou entrer un nouveau Nom il me dit toujours la même chose qu'il y a un doublons alors qu'il y a aucun doublons dans la base de données.
- Je suis obliger de me déconnecté de ma base de données puis me reconnecté pour pouvoir entrer un nouveau Nom.
- J'aimerai fait un contrôle directement sur mon dbgrid ou sur AdoTable
- Ou peu être qu'il y a une autre solution pour faire plus simple ??

Merci de votre réponse
Afficher la suite 

4 réponses

Répondre au sujet
PythonGreg 70 Messages postés jeudi 3 novembre 2011Date d'inscription 6 février 2015 Dernière intervention - 13 févr. 2012 à 15:45
+3
Utile
Rectification du code petite error

procedure TLecture.BtRecherClick(Sender: TObject);
var MsG : Integer;
begin // Si il ne trouve pas le Nom
if not ADOTable.Locate('Nom',EditNom.Text,[]) then
with ado.table do
begin
insert;
fieldbyname('Nom').value := EditNom.text
post;
end
else // Si il trouve le Nom
// ... exemple messageDlg Warning indiquant qu'il n'ai pas possible d'insert se Nom dans la Table risque un doublons
end;
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de PythonGreg
cs_MAURICIO 2233 Messages postés mardi 10 décembre 2002Date d'inscription 15 décembre 2014 Dernière intervention - 13 févr. 2012 à 15:30
0
Utile
Salut,

comme déjà dit plusieurs fois, on est pas devins!
Base de données et Compos utilisés?

Rien qu' avec ce que tu me dis, cela semble normal et il faut faire la mise à jour grâce à une clé unique.
Tu peux aussi essayer de faire un CancelUpdates après l' erreur de l' ajout.

A+


Composants Cindy pour Delphi
Faites une donation.
Commenter la réponse de cs_MAURICIO
PythonGreg 70 Messages postés jeudi 3 novembre 2011Date d'inscription 6 février 2015 Dernière intervention - 13 févr. 2012 à 15:39
0
Utile
je pense avoir trouver une solution peu être pas la meilleur mais sa devrai traité mais doublons je fait une rechercher dans la table avent d'inséré le nouveau Nom

procedure TLecture.BtRecherClick(Sender: TObject);
var MsG : Integer;
begin // Si il ne trouve pas le Nom
if not ADOTable.Locate('Nom',EditNom.Text,[]) then
with ado.table do
begin
insert;
fieldbyname('Nom').value := EditNom.text
post;
else // Si il trouve le Nom
// ... exemple messageDlg Warning indiquant qu'il n'ai pas possible d'insert se Nom dans la Table risque un doublons
end;
end;
Commenter la réponse de PythonGreg
cs_cantador 4996 Messages postés dimanche 26 février 2006Date d'inscription 27 mars 2018 Dernière intervention - 20 févr. 2012 à 15:50
0
Utile
Bonjour,

la solution de MAURICIO me semble quand même plus simple !

cantador
Commenter la réponse de cs_cantador

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.