En utilisant TDataSet.FindKey vous pouvez localiser des enregistrements. Lorsque le résultat est True, le curseur de jeux de données sera positionné sur l'enregistrement trouvé. Quand il en résulte faux, le curseur n'est pas déplacé. Cela entraîne l'affichage des données d'enregistrement avant l'affichage de FindKey dans les composants sensibles aux données.Retourne aucun enregistrement si FIndKey donne False?
Comment puis-je coder le résultat de FindKey pour retourner un enregistrement vide?
if Not tblSomeTable.FindKey([SomeSearchData]) then
begin
< code to return empty or move data cursor to neutral position >
end;
Mise à jour: (attendis quelques jours avant de choisir bonne réponse car je crois que la coutume est et ne pas blême pour décourager d'autres commentaires.) Il y avait plusieurs suggestions sur la lutte contre cette situation même si je crois que le La bonne réponse venait de Marcelo en ce sens qu'il n'est pas possible d'avoir un curseur sur un disque. Plusieurs solutions de contournement ont été suggérées. J'ai choisi l'un des miens. Il a quelque chose comme:
If Not tblSomeTable.FindKey([SomeSearchData]) then
begin
tblSomeTable.FindKey([-1,2010]);
end
Ce que je l'ai fait est de créer un mannequin, enregistrement vide avec un indice que les données réelles ne peuvent jamais être, à savoir: La première valeur d'index ne sera jamais -1. Si la recherche initiale apparaît vide, FindKey positionnera le curseur sur cet enregistrement vide. Cela fournira l'effet visuel que je recherchais.
Pourquoi voulez-vous faire? Cela pourrait aider à répondre à la question. Comme je l'ai –
sélectionner des éléments dans une liste sur les données correspondantes gauche apparaît à droite. Lorsque FindKey échoue, les données à partir d'un enregistrement incorrect apparaît. – jwilfong