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 13
20 févr. 2012 à 15:50
Bonjour,

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

cantador
0
Rejoignez-nous