2010-05-28 14 views
1

J'ai deux tables ADO liées en tant que tables maître/détails, tblCategory (maître) et tblItems (détails). Les deux tables ont leur propre grille et sont affichées sous la même forme. J'ai aussi des contrôles sensibles aux données (dbedits). Dites, actuellement je suis à: Catégorie = Livres, Nombre d'éléments = 10 enregistrements, et pointant sur le numéro d'enregistrement 5 dans la grille. Je veux ajouter un nouvel enregistrement à l'article, donc j'utilise:Delphi: TAdoTable.Insert pas vraiment un insert?

tblItems.Insert;

Le problème est que, au lieu d'ajouter une nouvelle ligne, la grille et les commandes sensibles à la db affichent l'enregistrement en cours (référence n ° 5). Pas inly, il semble que l'enregistrement est en mode édition aussi. Après l'avoir annulé et répété la commande Insérer, seulement la nouvelle ligne est apparue.

Comment résoudre ce problème, donc chaque fois que je l'utilise tblItems.Insert Ajouter toujours une ligne nouvelle et vide :)

Répondre

1

de Nevermind, je pense que je sais ce qui a causé. Ce sont les contrôles conscients de DB. Après la commande insert, l'utilisateur va entrer des données. Cela permet au contrôle db de recevoir le focus et il positionne automatiquement sa position sur l'enregistrement en cours et l'affiche.

La solution consiste à utiliser des contrôles non-db-courant au lieu, et définir le comportement programatically

+0

Vous pouvez sélectionner votre réponse que la réponse acceptée; il suffit de cliquer sur la coche à gauche. – vcldeveloper