ERREUR 8705

DENNLER Messages postés 6 Date d'inscription mardi 17 décembre 2002 Statut Membre Dernière intervention 15 septembre 2009 - 25 août 2005 à 14:05
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 - 12 sept. 2005 à 17:52
Je filtre la table puis j'effectue le traitement qui fait que la base (de type DBF) devient vide.
Sur la Form j'utilise des composants types TStringField,TMemoField, TBlobField;
Comment empêcher l'apparition de l'erreur "8705 En début de table"
QUERY1.First;
QUERY1.Edit; // Pour être en saisie
WHILE NOT QUERY1.EOF DO
BEGIN
QUERY1.EDIT;
Query1.FieldByName('LOGICIEL').AsString:=INFO;
try
QUERY1.POST;
except // Aucun effet
On E: Exception do
BEGIN
Showmessage('Erreur');
END;
end;
END; // Du While

3 réponses

cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
25 août 2005 à 21:36
Plutôt que d'envoyer x requêtes au moteur de base de données, il serait plus judicieux (et surtout efficace) de n'en envoyer qu'une seule du type :

UPDATE taTable SET LOGICIEL = 'INFO' WHERE taCondition

D'autre part, dans ton code, tu as oublié d'ajouter une instruction Query1. Next dans la boucle !
Ca peut tourner en rond pendant des heures comme ça

<HR color =#008000>
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
0
DENNLER Messages postés 6 Date d'inscription mardi 17 décembre 2002 Statut Membre Dernière intervention 15 septembre 2009
12 sept. 2005 à 12:44
Remarques :
- l'instruction Query1.Next n'a pas été oublié en effet avant de lancer cette procedure la table est filtrée
- je repose ma question pour qu'enfin quelqu'un puisse me réponde :
1) J'affiche sur une nouvelle Forme grâce aux composants types TStringField,TMemoField, TBlobField une table filtrée(Important).
3) L'utilisateur peut alors lancer une opération qui peut avoir comme effet de ne plus avoir à afficher d'enregistrements respectant le filtre et le message "8705 En début de table" apparait.
Comment empêcher ou intercepter l'apparition du message l'erreur "8705 En début de table"
0
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
12 sept. 2005 à 17:52
"l'instruction Query1.Next n'a pas été oublié en effet avant de lancer cette procedure la table est filtrée"
Désolé, mais je ne vois pas le rapport.
En revanche, si tu mets une boucle du type :
WHILE NOT QUERY1.EOF DO

Assure toi de passer à l'enregistrement suivant, faute de quoi tu n'atteindras jamais la fin de l'ensemble de données, qu'il soit filtré ou non. Et pour cela, il faut soit ajouter un appel à la méthode Next du composant requête, soit écrire une requête plus appropriée (voir la première proposition plus haut).


Et je persiste en affirmant qu'une requête du type UPDATE serait plus efficace.

<HR color=#008000>



Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
0
Rejoignez-nous