2011-02-04 1 views
0

OK. J'ai simple base de données, DBGrid et DBNavigator. J'utilise ce code pour mon adoquery et vue dans ce dans mon DBGridADOQuery et DBNavigator

select Count (*) 1, 2 3 de Tableau 1 groupe par 1, 2

Le problème est que si j'ai deux ou plus le même article de 1 et j'essaye de le supprimer de DBnavigator il m'envoie

L'information de colonne principale est insuffisante ou incorrecte. Trop de rangées ont été affectées par la mise à jour. Je veux supprimer deux lignes ou plus. Pas une seule. Comment réparer cela?

Répondre

0

Je suppose qu'il ne sera pas possible d'utiliser DBNavigator d'une manière habituelle (sans écraser le bouton delete), car l'ensemble de données contient plus d'un enregistrement dans une ligne DBGrid et à mon humble avis la grille ne prend pas en charge données dans un groupe. Je dirais que si vous sélectionnez une ligne groupée et essayez de la supprimer, "DBNavigator" vérifie s'il y a une clé primaire (unique) pour une ligne, mais dans ce cas, il n'y en a pas.

Mais c'est juste ma notion, je ne peux pas le vérifier maintenant.

+0

Si cela n'est pas possible avec dvNavigator, comment le faire? –

+1

@Georgi - La méthode 'Delete' de' TDataSet' sert à supprimer l'enregistrement * active *, le DataSet doit trouver un enregistrement * unique * pour suppression. Construire une requête avec un 'delete from ...' sql à votre goût et l'ouvrir .. –

Questions connexes