Supprimer les doublons dans un dbgrid

Résolu
PythonGreg
Messages postés
68
Date d'inscription
jeudi 3 novembre 2011
Statut
Membre
Dernière intervention
6 février 2015
- 13 févr. 2012 à 14:33
cs_cantador
Messages postés
4720
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
31 juillet 2021
- 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

4 réponses

PythonGreg
Messages postés
68
Date d'inscription
jeudi 3 novembre 2011
Statut
Membre
Dernière intervention
6 février 2015

13 févr. 2012 à 15:45
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;
3
cs_MAURICIO
Messages postés
2106
Date d'inscription
mardi 10 décembre 2002
Statut
Modérateur
Dernière intervention
15 décembre 2014
5
13 févr. 2012 à 15:30
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.
0
PythonGreg
Messages postés
68
Date d'inscription
jeudi 3 novembre 2011
Statut
Membre
Dernière intervention
6 février 2015

13 févr. 2012 à 15:39
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;
0
cs_cantador
Messages postés
4720
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
31 juillet 2021
14
20 févr. 2012 à 15:50
Bonjour,

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

cantador
0