Précédent   Forum du club des développeurs et IT Pro > Environnements de développement > WinDev > HyperFileSQL
HyperFileSQL HyperFileSQL est un système de gestion de base de données relationnel exploité par les logiciels WinDev, WebDev et WinDev Mobile.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 04/12/2012, 10h39   #1
windmastr26
Membre du Club
 
Avatar de windmastr26
 
Homme
Développeur informatique
Inscription : juillet 2009
Messages : 191
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juillet 2009
Messages : 191
Points : 61
Points : 61
Par défaut [WD11] Mise à jour HF/CS et suppression de données

Bonjour à tous,

J'ai migré une application WD de HF classique à HF/CS. J'ai énormément bataillé car, je ne sais pour quelle raison, lors de l'import de mes données vers HF/CS, Windev m'a vidé plusieurs champs dans mes fichiers de données...

J'ai contourné le problème en réimportant mes fichiers HF classique dans mon HF/CS.

Là, j'ai ajouté un champ dans mon analyse. Opération anodine en apparence : et bien non ! Au moment de mettre à jour mes fichiers de données, WD me vide à nouveau mes champs : je me retrouve donc avec, par exemple, un fichier de prospect où il ne reste que les champs de type numérique ! Tous les champs de type texte sont vides !

Est-ce que quelqu'un a une idée d'où pourrait venir ce problème ? J'ai sûrement mal fait quelque chose au moment de la migration ? Si je suis obligé de galérer à chaque modification de mon analyse, bonjour l'angoisse !

Merci pour toute aide.
windmastr26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2012, 13h31   #2
djejackk
Membre éprouvé
 
Homme
Inscription : avril 2005
Messages : 158
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : avril 2005
Messages : 158
Points : 445
Points : 445
Bonjour,

Comment faites-vous la "migration" ?
djejackk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2012, 14h03   #3
windmastr26
Membre du Club
 
Avatar de windmastr26
 
Homme
Développeur informatique
Inscription : juillet 2009
Messages : 191
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juillet 2009
Messages : 191
Points : 61
Points : 61
J'effectue la "migration" à partir du serveur HF/CS.

Dans l'onglet "bases de données" il y a une option "copier une base de données HF classique". Je n'ai plus qu'à aller chercher le dossier où sont stockés mes fichiers et à les importer.
windmastr26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2012, 15h47   #4
windmastr26
Membre du Club
 
Avatar de windmastr26
 
Homme
Développeur informatique
Inscription : juillet 2009
Messages : 191
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juillet 2009
Messages : 191
Points : 61
Points : 61
Je viens de remarquer quelque chose qui ne m'aide pas vraiment mais pourrait peut être aider quelqu'un passant par là.

Je fais la mise à jour de mes fichiers hyperfile = les champs de type texte sont alors vidés
Si je laisse les fichiers en l'état, et que j'entre des données dans les champs textes, lors de la prochaine mise à jour de mes fichiers HF, ces champs ne seront pas vidés.

J'ai donc l'impression que les fichiers HF ont été mal convertis à la base... Du coup le processus de maj remet les fichiers au bon format mais au détriment de l'intégrité des données qu'ils contiennent...

Je crois qu'il va falloir me recréer mes fichiers en faisant un export/import style csv. Chose qui risque d'être assez laborieuse...
windmastr26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2012, 16h01   #5
frenchsting
Expert Confirmé
 
Avatar de frenchsting
 
Homme Claude
Développeur informatique
Inscription : juin 2003
Messages : 1 807
Détails du profil
Informations personnelles :
Nom : Homme Claude
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juin 2003
Messages : 1 807
Points : 2 945
Points : 2 945
Ou de passer par des alias ?

En créant un alias qui va pointer sur tes anciens fichiers, essaye de faire des HcopieEnreg().
__________________
Commencez toujours par là : et puis n'hésitez à passer par là : ou par un autre moteur de recherche...
Pas de question par MP s'il vous plait. Le forum est fait pour cela...

Make it real not fantasy
frenchsting est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2012, 16h24   #6
windmastr26
Membre du Club
 
Avatar de windmastr26
 
Homme
Développeur informatique
Inscription : juillet 2009
Messages : 191
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juillet 2009
Messages : 191
Points : 61
Points : 61
Merci frenchsting, c'est une excellente idée que je vais exploiter sans tarder
windmastr26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2012, 09h17   #7
windmastr26
Membre du Club
 
Avatar de windmastr26
 
Homme
Développeur informatique
Inscription : juillet 2009
Messages : 191
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juillet 2009
Messages : 191
Points : 61
Points : 61
Ça y est je viens de terminer mon script de recopie et tout a fonctionné comme prévu.

J'ai recréé mes fichiers hf/cs dans une nouvelle base puis j'ai copié ligne à ligne les champs dans ces fichiers.

Je ne sais pas si mon code sera utile, d'autant qu'il n'est pas très bien écrit, mais je le met tout de même :

Code :
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
sFicName est une chaîne
sListRub est une chaîne
sListRubS est une chaîne
sRubrique est une chaîne
sListFic est une chaîne
sFichier est une chaîne
 
SI HDécritConnexion("source","login","pass","nomServeur:4900","BD_source",hAccèsHFClientServeur,hOLecture) ALORS
	SI HOuvreConnexion("source") ALORS
		//Ouverture de la base de données source
 
		//ON liste les fichiers de la base de données source
		sListFic = HListeFichier("source");
 
		SI HDécritConnexion("destination","login","pass","nomServeur:4900","BD_destination",hAccèsHFClientServeur,hOLectureEcriture) ALORS
			SI HChangeConnexion("*","destination") ALORS
				//Modification de la connexion de l'analyse en cours vers la base de destination
 
				HCréationSiInexistant("*") //Création des fichiers de données
				HGèreIntégrité("*", "*", hCardinalité+hEnModification, Faux) //Désactivation des règles d'intégrité
				HGèreDoublon(monFichier, monChamp, Faux) //Désactivation de la gestion des doublons si besoin
 
				POUR TOUTE CHAINE sFichier DE sListFic SEPAREE PAR RC
					sFicName = Remplace(sFichier,".FIC","",SansCasse)
					SI HDéclareExterne(sFichier,"dest","source") ALORS
						sListRub = HListeRubrique(sFicName)
						sListRubS = HListeRubrique({"dest",indFichier})
						POUR CHAQUE {"dest",indFichier}
							//Enumération des colonnes du fichier de destination
							HRAZ(sFicName)
							POUR TOUTE CHAINE sRubrique DE sListRub SEPAREE PAR RC
								SI Position(sListRubS, sRubrique)>0 ALORS
									//Si le champ existe dans la base de données de destination
									{sFicName + "." + sRubrique,indRubrique} = {"dest." + sRubrique,indRubrique}
								FIN
							FIN
							HAjoute(sFicName,hForceIdAuto) //ForceID pour obliger HF à utiliser l'ID inséré, et non générer lui-même son propre ID
						FIN
 
						HAnnuleDéclaration("dest")
					FIN
				FIN
 
				//Réactivation des différentes règles
				HGèreDoublon(monFichier, monChamp, Vrai)
				HGèreIntégrité("*", "*", hCardinalité+hEnModification, Vrai)
				HFermeConnexion("source")
			SINON
				Erreur("Impossible d'ouvrir la connexion source")
			FIN
		SINON
			Erreur("Impossible d'établir la connexion de destination")
		FIN
	SINON
		Erreur("Impossible d'ouvrir la connexion source")
	FIN
SINON
	Erreur("Impossible d'établir la connexion source")
FIN
windmastr26 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 14/12/2012, 09h56   #8
frenchsting
Expert Confirmé
 
Avatar de frenchsting
 
Homme Claude
Développeur informatique
Inscription : juin 2003
Messages : 1 807
Détails du profil
Informations personnelles :
Nom : Homme Claude
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juin 2003
Messages : 1 807
Points : 2 945
Points : 2 945
Merci pour ton retour. Ton code sera utile, je n'en doute pas.
__________________
Commencez toujours par là : et puis n'hésitez à passer par là : ou par un autre moteur de recherche...
Pas de question par MP s'il vous plait. Le forum est fait pour cela...

Make it real not fantasy
frenchsting est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 15h22.


 
 
 
 
Partenaires

Hébergement Web