IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

HyperFileSQL Discussion :

copie ensemble d'enregistrements de deux fichiers vers deux autres


Sujet :

HyperFileSQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    windev
    Inscrit en
    Mai 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : windev
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 71
    Par défaut copie ensemble d'enregistrements de deux fichiers vers deux autres
    bonjour tout le monde
    j'ai besoin de votre aide pour réaliser une copie d'un ensemble d'enregistrements (saisis pendant une journée ) de deux fichiers liés T et Lignes vers T1 et Lignes1 (liés aussi) T et T1 ont les mm structures ,ainsi que Lignes et Lignes 1 . puis supprimer les lignes copiés des fichiers origines et ce en un seul bloc c à d tout ou rien . j'ai déjà utilisé les transactions mais ça me fait des problèmes ce n'est pas assez robuste (je perd souvent des lignes d'un coté ou de l'autre) j'utilise cette méthode pour archiver les donnees et alleger les fichiers T et Lignes supposé contenir les mouvm du journee en cours seulement . si vous avez d'autres idées ou questions je vous écoute. MERCI

  2. #2
    Expert confirmé
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 523
    Par défaut
    Bonjour,

    Les transactions ne sont pas faites pour ce que tu souhaites.

    Ce qu'il te faut, c'est faire une procédure stockée sur ton serveur HF qui va se déclencher à une heure donnée. Si la copie ne devrait pas te poser de souci, attention à la suppression car il peu y avoir des erreurs liées aux contraintes d'intégrité.

    PS : Ce fil de discussion concerne plutôt le code Windev.

  3. #3
    Membre Expert
    Femme Profil pro
    .
    Inscrit en
    Janvier 2012
    Messages
    1 107
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : .
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Janvier 2012
    Messages : 1 107
    Par défaut
    Bonsoir Bwafa,

    Si ça concerne votre application de caisse pour les café/resto :

    https://doc.pcsoft.fr/?3044261&name=...enreg_fonction

    https://doc.pcsoft.fr/fr-FR/?1000003...eenreg_exemple

    Pourquoi mettre en historique tous les jours ?
    Une fois par mois ne serait pas suffisant ?

  4. #4
    Membre confirmé
    Femme Profil pro
    windev
    Inscrit en
    Mai 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : windev
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 71
    Par défaut
    Merci pour votre réponse
    je réexplique : cette procédure se fait à la demande de l'utilisateur en fin de journée (normalement) pour archiver les données de la journée dans T1 et Lignes1 et pas à une heure donnée. j'ai utilisé les transactions pour assurer l'unité du traitement : boucle copie T vers T1 puis Lignes vers Lignes1 puis suppression de Lignes puis suppression de T ; si au cours de la boucle une erreur est déclenchée la base revient à l'état initial.
    désolée, pouvez vous m'expliquez cette perte de données: (normalement suite à une transaction non aboutie )
    Nom : CaptNULL.png
Affichages : 180
Taille : 30,7 Ko

    je pense que je dois programmer la transaction moi même mais je na sais pas comment; peut être exporter les données vers Excel puis les importer ; êtes vous avec cette idée?

  5. #5
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 371
    Par défaut
    Bonjour,
    Il est difficile de dire ce qui ne va pas dans le code, sans voir le code en question.
    Pour la gestion des transactions, il faut utiliser hTransactionDebut() en début de traitement, hTransactionFin() si tout c'est bien passé et hTransactionAnnule() en cas de problème pour tout annuler.

    Ainsi l'intégralité du traitement devient atomique.

    Évidemment tout doit être englobé dans une seule transaction, la copie des enregistrements des deux fichiers ainsi que la suppression dans les deux fichiers sources.

    Tatayo.

  6. #6
    Membre Expert
    Femme Profil pro
    .
    Inscrit en
    Janvier 2012
    Messages
    1 107
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : .
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Janvier 2012
    Messages : 1 107
    Par défaut
    On peut voir le code ?

    Je fais ce type de traitement pour mettre en historique des factures.
    Je n'ai jamais rencontré le moindre problème.

  7. #7
    Membre confirmé
    Femme Profil pro
    windev
    Inscrit en
    Mai 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : windev
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 71
    Par défaut
    @ TATAYO : oui je fait exactement ce que vous dites
    @ serendib: voici mon code complet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
     
    SI HTransactionDébut(MaConnexion)=Vrai ALORS
    HSurErreur(TicketArchives,hErrDoublon,"")
    QUAND EXCEPTION DANS 
     
    	ListeTicketsReq.Pjournee=idJournEncours
    	HExécuteRequête(ListeTicketsReq,hModifieFichier)
     
    	SI HNbEnr(ListeTicketsReq)>0 ALORS
     
    		HLitPremier(ListeTicketsReq)	
    		TANTQUE PAS HEnDehors(ListeTicketsReq )
     
    			HLitRecherchePremier(Ticket,IDTicket,ListeTicketsReq.IDTicket)
     
    			HCopieEnreg(TicketArchives,Ticket)
    			SI HAjoute(TicketArchives) ALORS
    			nouvIDticket=TicketArchives.IDTicket
    			RequeteDesLignesTick.Pidticket=ListeTicketsReq.IDTicket
    			HExécuteRequête(RequeteDesLignesTick,hModifieFichier)
    			SI HNbEnr(RequeteDesLignesTick)>0 ALORS								
    				HLitPremier(RequeteDesLignesTick)
    						TANTQUE PAS HEnDehors(RequeteDesLignesTick)
    							HLitRecherchePremier(LigneTicket,IDLigneTicket,RequeteDesLignesTick.IDLigneTicket)
     
    							HCopieEnreg(LigneTicketArchives,LigneTicket)
    							SI 	HAjoute(LigneTicketArchives) ALORS
     
    								LigneTicketArchives.IDTicket=nouvIDticket
    								HModifie(LigneTicketArchives)
     
    								HLitSuivant(RequeteDesLignesTick)
    							SINON
    								ExceptionDéclenche(1,HErreurInfo())	
    							FIN
     
    						FIN
    			FIN
    			SupprimeLignesTicketReq.Pidticket=ListeTicketsReq.IDTicket
    			HExécuteRequête(SupprimeLignesTicketReq)
     
    				SINON
    					ExceptionDéclenche(1,HErreurInfo())	
    					FIN
     
    			HLitSuivant(ListeTicketsReq)
     
     
    		FIN
     
    		HSupprimeTout(ListeTicketsReq)
     
    	FIN	
    		Journées.Etatjourn="Cloturée"
    		Journées.dateCloture=DateSys()
    		Journées.HeureClot=HeureSys()
    		HModifie(Journées)
     
    	HTransactionFin(MaConnexion)
    	RENVOYER (1)
     
    FAIRE
    	Info(ExceptionInfo(errComplet) )
    	HSurErreur(TicketArchives,hErrDoublon)
    	HTransactionAnnule(MaConnexion)
    	RENVOYER (0)
    FIN
    SINON
    	SI HErreurDoublon() ALORS
     
    	FIN
    	Info(HErreurInfo(hErrComplet))
    	RENVOYER (0)
    FIN
    j'ai oublié de préciser je suis en version 20 pour ce projet mais je le migre tres prochainement vers la 28 ( déjà aquise)

  8. #8
    Membre Expert
    Femme Profil pro
    .
    Inscrit en
    Janvier 2012
    Messages
    1 107
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : .
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Janvier 2012
    Messages : 1 107
    Par défaut
    Déjà tu peux t'affranchir des suppressions, puisque tu fais ça tous les jours.
    Tu copies les enregistrements du jour dans l'historique et à la fin
    si tout c'est bien passé, HCreation du fichier de la journée.

Discussions similaires

  1. [WD25] Copie enregistrements d'un fichier vers un autre
    Par matiasko dans le forum WinDev
    Réponses: 30
    Dernier message: 04/06/2021, 09h18
  2. [XL-2016] Copie de lignes entières d'un fichier vers un autre
    Par SaulEman dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 12/02/2019, 14h25
  3. [AC-2010] Copie d'un enregistrement d'une table vers une autre.
    Par Jeanpierre71 dans le forum VBA Access
    Réponses: 5
    Dernier message: 14/11/2016, 16h13
  4. [AC-2007] [QRY SQL] Copie d'un enregistrement d'une table vers une autre en respectant les critères
    Par Barbaboulle dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 11/10/2009, 15h03
  5. copie d'un fichier vers un autre serveur
    Par jexl dans le forum ASP
    Réponses: 4
    Dernier message: 20/12/2004, 16h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo