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 :

Copier des enregistrement d'une base Acces vers une base HF


Sujet :

HyperFileSQL

  1. #1
    Membre régulier
    Homme Profil pro
    Spécialiste en Maintenance Applicative / Developpeur C#, VB, PL-SQL, T-SQL
    Inscrit en
    Septembre 2008
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Spécialiste en Maintenance Applicative / Developpeur C#, VB, PL-SQL, T-SQL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 206
    Points : 93
    Points
    93
    Par défaut Copier des enregistrements d'une base Access vers une base HF
    Bonjour,

    Je doit réaliser un logiciel qui doit permettre de copier les enregistrement contenu dans une table Access vers une autre table HyperFile Classic (de même structure).

    Les connexion (OrigineAssess et DestinationHyperFile) ont été créé avec l'assistant dans l'analyse.
    La connexion OrigineAssess se connecte à la base de données Access (elle fonctionne).

    Pour l'instant j'ai essayé ce code :

    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
    Sablier(Vrai)
    SI HChangeConnexion("*", OrigineAccess) ALORS
    	HExécuteRequête(REQ_Affiche_Catégories)
    	SI HLitPremier(REQ_Affiche_Catégories) ALORS
    		TANTQUE PAS HEnDehors
    			//Trace(ADRESSES.CodePostal)
    			REQ_Ajout_Catégorie.desc = REQ_Affiche_Catégories.Description
    			REQ_Ajout_Catégorie.guid = REQ_Affiche_Catégories.s_GUID
    			REQ_Ajout_Catégorie.nom = REQ_Affiche_Catégories.NomCatégorie
    			REQ_Ajout_Catégorie.num = REQ_Affiche_Catégories.N_Catégorie
    			SI HChangeConnexion("*",DestinationHyperFile) ALORS
    				SI PAS HExécuteRequête(REQ_Ajout_Catégorie) ALORS
    					Erreur("Erreur d'initialisation de la requête"+RC+HErreurInfo())
    				SINON
    					HLitSuivant(REQ_Affiche_Catégories)
    				FIN
    			SINON
    				Info("Impossible de se connecter à la table" + RC + HErreurInfo())
    			FIN
    		FIN
    		Info(i + " enregistrements on été ajoutés")
    	SINON
    		Info("Aucun enregistrement lu" + RC + HErreurInfo())
    	FIN
    SINON
    	Info("Impossible de se connecter à la table" + RC + HErreurInfo())
    FIN
    Sablier(Faux)
    REQ_Ajout_Catégorie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    INSERT INTO Catégorie
    	( 
    		s_GUID,	
    		NomCatégorie,	
    		N°Catégorie,	
    		Description
    	)
    VALUES
    	( 
    		{guid},	
    		{nom},	
    		{num},	
    		{desc}
    	 )
    REQ_Affiche_Catégories :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT 
    	Catégorie.s_GUID AS s_GUID,	
    	Catégorie.NomCatégorie AS NomCatégorie,	
    	Catégorie.[N°Catégorie] AS N_Catégorie,	
    	Catégorie.Description AS Description
    FROM 
    	Catégorie
    Mais quand j'execute le code, il y a une erreur. je n'arrive pas à comprendre la raison de cette erreur !!!

    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
    Erreur à la ligne 5 du traitement Clic sur BTN_Copie_Tables.
    Vous avez appelé la fonction HLitPremier.
    Fichier <REQ_Affiche_Catégories> inconnu dans l'analyse <C:\Mes Projets\Import_base_Access\Analyse_Import_Access.wdd>, ou requête ou vue non initialisée.
     
    Informations techniques
     
    Projet : Import_base_Access
     
    Dump de l'erreur du module <WD140HF.DLL> <14.00Icb>.
     
    - Appel WL :
    Traitement de <FEN_Accueil.BTN_Copie_Tables>, ligne <5>, thread <0>
    Fonction <HLitPremier>, n° de syntaxe <3>
     
    - Niveau : erreur fatale (EL_FATAL)
     
    - Code erreur : 70018
     
    - Code erreur WD55 : 18
     
    - Pas de code d'erreur système
     
    - Pas de message d'erreur système
     
    - Que s'est-il passé ?
    Fichier <REQ_Affiche_Catégories> inconnu dans l'analyse <C:\Mes Projets\Import_base_Access\Analyse_Import_Access.wdd>, ou requête ou vue non initialisée.
     
    - Infos de debug :
    IEWDHF=1001
    Module=<WDHF>
    Version=<14.00Icb>
    Fonction (7,10)
     
    - Infos attachées :
    EIT_PATHWDD : <C:\Mes Projets\Import_base_Access\Analyse_Import_Access.wdd>
    EIT_LOGICALTABLENAME : <REQ_Affiche_Catégories>
    EIT_PILEWL :
    Clic sur BTN_Copie_Tables (FEN_Accueil.BTN_Copie_Tables), ligne 5
    EIT_COMPOSANT :
     
    EIT_DATEHEURE : 24/12/2009 16:07:36
     
    - Identifiant dans le .err : 70116
    Quelqu'un a t-il une solution ?

    Merci

  2. #2
    Expert confirmé
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 378
    Points : 4 494
    Points
    4 494
    Par défaut
    Bonsoir

    Tu ne testes pas le retour de HExécuteRequête(REQ_Affiche_Catégories). Si il y a une erreur c'est normal que HLitPremier échoue

    HExécuteRequête renvoie VRAI ou FAUX
    Ensuite tu peux afficher le message d'erreur avec :

  3. #3
    Membre régulier
    Homme Profil pro
    Spécialiste en Maintenance Applicative / Developpeur C#, VB, PL-SQL, T-SQL
    Inscrit en
    Septembre 2008
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Spécialiste en Maintenance Applicative / Developpeur C#, VB, PL-SQL, T-SQL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 206
    Points : 93
    Points
    93
    Par défaut
    Bonjour,

    J'arrive à me connecter à la base de données et à lire les enregistrement d'une table donnée :

    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
    SI HChangeConnexion("*" ,OrigineAccess) ALORS
    	SI PAS HExécuteRequête(REQ_Affiche_Langue) ALORS
    		Erreur("Erreur d'initialisation de la requête"+RC+HErreurInfo())
    	SINON
    		SI HLitPremier(REQ_Affiche_Langue) ALORS
    			TANTQUE PAS HEnDehors (REQ_Affiche_Langue)
    				REQ_Ajout_Langue.CodeLangue = REQ_Affiche_Langue.Codelangue
    				REQ_Ajout_Langue.Langue = REQ_Affiche_Langue.Langue
    				SI HChangeConnexion("*", DestinationHyperFile) ALORS
    					SI PAS HExécuteRequête(REQ_Ajout_Langue) ALORS
    						Erreur("Erreur d'initialisation de la requête"+RC+HErreurInfo())
    					SINON
    						HLitSuivant(REQ_Affiche_Langue)
    					FIN
    				SINON
    					Info("Impossible de se connecter à la table" + RC + HErreurInfo())
    				FIN
    			FIN
    		SINON
    			Info("Aucun enregistrement lu" + RC + HErreurInfo())
    		FIN
    	FIN
    SINON
    	Info("Impossible de se connecter à la base de données" + RC + HErreurInfo())
    FIN
    Mais je n'arrive pas à lire l'enregistrement suivant (il y a une erreur) et je ne comprend pas pourquoi. Voici l'erreur :

    Erreur à la ligne 18 du traitement Clic sur BTN_Afficher_Langue_A.
    Vous avez appelé la fonction HLitSuivant.
    Fichier <REQ_Affiche_Langue> inconnu dans l'analyse <R:\Admin\BD Rotronics Windev\Développement\Import_base_Access\Analyse_Import_Access.wdd>, ou requête ou vue non initialisée.

  4. #4
    Expert confirmé
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 378
    Points : 4 494
    Points
    4 494
    Par défaut
    Bonjour
    A mon avis changer la connexion de tous les fichiers en plein parcours ça ne doit pas trop lui plaire
    Si tu dois ajouter dans un fichier ayant la même structure tu peux passer par exemple par un alias, en modifiant la connexion de l'alias uniquement

  5. #5
    Membre régulier
    Homme Profil pro
    Spécialiste en Maintenance Applicative / Developpeur C#, VB, PL-SQL, T-SQL
    Inscrit en
    Septembre 2008
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Spécialiste en Maintenance Applicative / Developpeur C#, VB, PL-SQL, T-SQL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 206
    Points : 93
    Points
    93
    Par défaut
    Non, mes fichier n'auront pas toujours la même structure !
    Je pense que la requete ne contient plus de résultat car j'ai changé de connexion, ce qui doit supprimer tout les résultat de l'éxécution précédente de la requete.
    Y doit bien y avoir un moyen de garder les résultats quelque part !

  6. #6
    Expert confirmé
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 378
    Points : 4 494
    Points
    4 494
    Par défaut
    Alors je ne comprends pas pourquoi le changement de connexion.
    Si tu définis chaque fichier sur une connexion il n'y a rien à faire, et surtout pas pendant le parcours

  7. #7
    Membre régulier
    Homme Profil pro
    Spécialiste en Maintenance Applicative / Developpeur C#, VB, PL-SQL, T-SQL
    Inscrit en
    Septembre 2008
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Spécialiste en Maintenance Applicative / Developpeur C#, VB, PL-SQL, T-SQL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 206
    Points : 93
    Points
    93
    Par défaut
    Je ne m'y prend peut être pas de la bonne façon !

    Voila ce que je veut faire :
    Je possède une base de données Access 2000 que je veut migrer vers une base HyperFileSQL. Les tables de la base HyperFileSQL vont être légèrement différentes de la base Access (changement de nom de certains champs, fusion de 2 champs en 1, etc.).
    Je veut donc copier les enregistrements un à un pour faire les modifications nécessaires.

    J'ai 2 connexion : une connexion sur ma base HyperFile et une autre sur me base Access.
    Il me semblais donc logique de me connecter sur la base Access afin de récupérer les enregistrements de la table voulue, puis de me connecter sur la base HyperFile pour ajouter les enregistrements.

    Si il y a une autre solutions que celle-ci, je veut bien la connaître.

    Merci

  8. #8
    Expert confirmé
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 378
    Points : 4 494
    Points
    4 494
    Par défaut
    Pour chacun de tes fichiers tu définis dans l'analyse la connexion à utiliser (Access ou HF) et c'est tout
    Il n'y a rien d'autre à faire

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    // FICHIER1 pointe sur une connexion ACCESS dans l analyse
    // FICHIER2 pointe sur une connexion HF dans l analyse
     
    POUR TOUT FICHIER1
     
        HRAZ(FICHIER2)
        FICHIER2.CHAMP1 = FICHIER1.CHAMP1
        FICHIER2.CHAMP2 = FICHIER1.CHAMP2 + " " + FICHIER2.CHAMP2
        // etc ...
        HAjoute(FICHIER2)
     
    FIN

  9. #9
    Membre régulier
    Homme Profil pro
    Spécialiste en Maintenance Applicative / Developpeur C#, VB, PL-SQL, T-SQL
    Inscrit en
    Septembre 2008
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Spécialiste en Maintenance Applicative / Developpeur C#, VB, PL-SQL, T-SQL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 206
    Points : 93
    Points
    93
    Par défaut
    OK, donc si ma base de données Access contient 52 tables, il me faut 104 tables dans mon analyse HyperFile ?

    J'ai essayé ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    // Langue_Access pointe sur une connexion ACCESS dans l analyse
    // Langue pointe sur une connexion HF dans l analyse
    POUR TOUT Langue_Access 
    	HRAZ(Langue)
    	Langue.Codelangue = Langue_Access.Codelangue
    	Langue.Langue = Langue_Access.Langue 
    	HAjoute(Langue)
    FIN
    Lors de l'execution du code, j'ai une erreur :
    Erreur à la ligne 3 du traitement Clic sur BTN_Bouton1.
    Le mécanisme de sécurité HyperFileSQL s'est déclenché lors d'un parcours intégré du fichier 'Langue_Access' sur la rubrique ''.
    Impossible de créer le fichier <R:\Admin\BD Rotronics Windev\Bases de données\WinDev_donnees_2000R.mdb\Langue_Access.ndx>.
    Le fichier n'a été trouvé ni sur disque, ni dans les bibliothèques (.WDL) ou les composants (.WDK) chargés.

  10. #10
    Expert confirmé
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 378
    Points : 4 494
    Points
    4 494
    Par défaut
    OK, donc si ma base de données Access contient 52 tables, il me faut 104 tables dans mon analyse HyperFile ?
    Oui si tu veux utiliser les entités Windev (FICHIER.CHAMP = ...)
    Si tu utilises une requête SQL les tables n'ont pas besoin d'être décrites dans l'analyse (l'analyse elle même est inutile d'ailleurs)

    Pour ton message d'erreur : ton fichier Langue_Access est reconnu comme étant de type hyperfile, vérifie sa liaison avec la connexion Access

  11. #11
    Membre régulier
    Homme Profil pro
    Spécialiste en Maintenance Applicative / Developpeur C#, VB, PL-SQL, T-SQL
    Inscrit en
    Septembre 2008
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Spécialiste en Maintenance Applicative / Developpeur C#, VB, PL-SQL, T-SQL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 206
    Points : 93
    Points
    93
    Par défaut
    Pour ton message d'erreur : ton fichier Langue_Access est reconnu comme étant de type hyperfile, vérifie sa liaison avec la connexion Access
    Le fichier a bien une liaison sur ma base de données Access. En revanche il est de type HF. Faut il changer le type ?

  12. #12
    Expert confirmé
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 378
    Points : 4 494
    Points
    4 494
    Par défaut
    oui

  13. #13
    Membre régulier
    Homme Profil pro
    Spécialiste en Maintenance Applicative / Developpeur C#, VB, PL-SQL, T-SQL
    Inscrit en
    Septembre 2008
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Spécialiste en Maintenance Applicative / Developpeur C#, VB, PL-SQL, T-SQL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 206
    Points : 93
    Points
    93
    Par défaut
    J'ai changé le type en "Accès natif \ Autre accès OLE DB" et ça marche.

    Etant donné que j'utilise WinDev depuis seulement 2 mois, je n'ai pas encore tout les bons réflexes !!!

    Merci beaucoup de votre aide.

  14. #14
    Membre régulier
    Homme Profil pro
    Spécialiste en Maintenance Applicative / Developpeur C#, VB, PL-SQL, T-SQL
    Inscrit en
    Septembre 2008
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Spécialiste en Maintenance Applicative / Developpeur C#, VB, PL-SQL, T-SQL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 206
    Points : 93
    Points
    93
    Par défaut
    Quand on veut importer des données d'une base Access vers une nouvelle base HyperFile, il n'est pas nécessaire de créer une connexion HyperFile car les nouveaux fichier sont déjà de type HyperFile.

    Il faut donc créer une seule connexion de type "Accès natif \ Autre accès OLE DB" pour les tables lié à la base de données Access.

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : Italie

    Informations forums :
    Inscription : Mai 2012
    Messages : 20
    Points : 10
    Points
    10
    Par défaut info code
    bonjour, je ne suis pas un programmeur, je serais intéressé par le code que vous avez utilisé pour lire le fichier et importer la base de données d'accès hyperfile.
    Importateur des Données DANS HF DEPUIS juin DB externe.
    si elle peut avoir la gentillesse de me faire parvenir le code.
    salutations

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 04/08/2010, 14h02
  2. Réponses: 0
    Dernier message: 07/06/2009, 12h31
  3. Réponses: 5
    Dernier message: 22/05/2008, 14h42
  4. copier des plages variables de plusieurs feuilles vers une seule
    Par irene15 dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 22/06/2007, 13h44
  5. copie d'une table Y d'une base A vers une table X d'une base
    Par moneyboss dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 30/08/2005, 21h24

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