suppression d'enregistrements
Anonyme
Bonjour,

après 1 requête, 1 table se crée automatiquement et me donne les résultats de cette requête.

Dans ces résultats, je retrouve des enregistrements que je souhaiterais supprimer automatiquement
exemple :

titre date
le dico et moi 12/03/1992
le dico et moi 10/05/1982

je souhaiterais supprimer la date la + ancienne.
comment m'y prendre ?

merci de vos réponses

Contribution le : 07/02/2005 15:20
Créer un fichier PDF de la contribution Imprimer


Re: suppression d'enregistrements
Anonyme
Bonjour,

Si la requête vous renvoie un résultat,
1)-dans la création de la requête demander qu"elle soit trier par date croissante (ORDER BY ASC ainsi le HLitPremier renverra la date la plus ancienne
2)Si il sagit d'une requete de typê HExecuteRequeteSQL() n'ommetez pas la constante HModifieFichier, sinon les modification apportées à la source de données ne seront reportées physiquement sur le fichier de données.

3)via la fonction HNbEnr() vous savez combien d'enregistrement vous avez à supprimer

4) une suppression par boucle sur la source de données jusqu'a l'avant dernier enregistrement


Contribution le : 07/02/2005 16:28
Créer un fichier PDF de la contribution Imprimer


Re: suppression d'enregistrements
Stagiaire WDF
Inscrit:
05/05/2004 12:24
Post(s): 37
merci de votre aide, mais c'est justement le code de suppression par boucle que je ne connais pas !

(ma requete sql me donne déjà le dernier enregistrement sur la premiere ligne et je souhaite supprimer les autres lignes automatiquement ou si vous préférez, n'afficher que la premiere ligne dans 1 table)

Contribution le : 07/02/2005 16:56
Créer un fichier PDF de la contribution Imprimer


Re: suppression d'enregistrements
Stagiaire WDF
Inscrit:
10/02/2005 10:03
Post(s): 19
Déjà faut être sur que ta requête remplit ta table par date croissante comme dit précédemment.
Ensuite tu supprimes directement la 1ère ligne:
TableSupprime(NomTable, 1)

Si tu veux garder uniquement la date la plus récente, faut boucler:
vl_Occurrences est un entier
vl_Compteur est un entier = 1
vl_Occurrences = tableOccurences(Nomtable)
Tantque vl_Compteur < (vl_Occurrences-1)
 TableSupprime(nomTable, eCompteur)
 vl_Compteur = vl_Compteur +1
FIN


Normalement ça devrait te garder la date la plus récente si ta table a bien tout qui est trié par ordre croissant (la dernière étant censé contenir la date la plus récente)

Contribution le : 10/02/2005 10:21
Créer un fichier PDF de la contribution Imprimer


Re: suppression d'enregistrements
Anonyme
merci de ton aide, mais j'ai 1 message d'erreur à la suppression de l'enregistrement.

il m'indique que mon fichier est en lecture seule alors qu'il ne l'est pas !

sais-tu d'ou ca peut venir ?

Contribution le : 10/02/2005 14:32
Créer un fichier PDF de la contribution Imprimer


Re: suppression d'enregistrements
Anonyme
Vérifie dans ton explorateur windows que sur les propriétés du fichier, celui-ci ne soit pas en lecture seule.

Contribution le : 10/02/2005 15:54
Créer un fichier PDF de la contribution Imprimer


Re: suppression d'enregistrements
Stagiaire WDF
Inscrit:
10/02/2005 10:03
Post(s): 19
érifie dans ton explorateur windows que sur les propriétés du fichier, celui-ci ne soit pas en lecture seule.

Contribution le : 10/02/2005 15:56
Créer un fichier PDF de la contribution Imprimer


Re: suppression d'enregistrements
Stagiaire WDF
Inscrit:
05/05/2004 12:24
Post(s): 37
je l'avais vérifié, c'est ok

Contribution le : 10/02/2005 16:35
Créer un fichier PDF de la contribution Imprimer


Re: suppression d'enregistrements
Stagiaire WDF
Inscrit:
10/02/2005 10:03
Post(s): 19
c'est une table mémoire ou une table fichier au juste?
Si c'est un fichier, alors la boucle est la même mais c'est un HSupprime qu'il faut faire.
Si c'est pas le cas, je vois pas trop.
Tu peux mettre le texte de ta requête et le code pour virer les données en trop?

Contribution le : 10/02/2005 19:15
Créer un fichier PDF de la contribution Imprimer


Re: suppression d'enregistrements
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour,

2 solutions sont possibles à partir d'une table.

1) A partir d'une table fichier
Il faut à l'exécution de la requête insérer la constante HFichierModifie
Je suppose ici que la requête ai été créé avec l'éditeur de requête de WinDev avec pour nom par exemple "Req1"
La table à été crée via l'assistant sur la requête "Req1"
[Code]
//Initialisation de la table
HExecuteRequete(Req1, HRequeteDefaut+HModifieModifie, , ,...)
..FichierParcourue = "Req1"
[/code]
dans le code de la procédure de mise à jour
TANTQUE <NomTable>..Occurrence>1
 TableSupprime(<NomTable>,<NomTable>..Occurrence)
FIN

Ce qui permet d'appliquer les suprressions sur le fichier c'est la constante HModifieFichier.

2) A partir d'une table mémoire
Dans la requête insérer l'identifiant de l'enregistrement, puis remplisser votre table mémoire

Pour supprimer les enregistrements à partie de la table mémoire
TANTQUE <NomTable>..Occurrence>1
HLitRecherche(<Fichier>,<RubriqueIdentifiant>,<NomTable.RubriqueIdentifiant>)
 HSupprime(<Fichier>)
 TableSupprime(<NomTable>,<NomTable>..Occurrence)
FIN


Code saisie à la volée et peut comporter des erreurs.

Contribution le : 11/02/2005 00:24
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2