PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Passage dynamique d'une base hyperfile SQL client-serveur vers base Hyperfile classique
Passage dynamique d'une base hyperfile SQL client-serveur vers base Hyperfile classique
Débuté par Gabarel, 06 mar. 2017 15:36 - 3 réponses
Posté le 06 mars 2017 - 15:36
Bonjour,

Je me connecte à une base hyperfile client serveur en appalelant la procédure

Init_Donnees()

// Je fais des traitement => OK tout va bien
// Je me connecte maintenant à une base hyperfile classique qui se trouve dans le répertoire c:\DATA

Init_Donnees_Archive(c:\DATA)

// Je fais des traitement => ok tout va bien
// Je reviens en client serveur :

Init_Donnees()

Et là dès qu'il arrive dans la procedure <<verifierFic>>
il plante à la ligne :

=> SI HFichierExiste(sFichier) ALORS
Ou n'importe qu'elle instruction h qui accède aux données.

L'erreur retrounée et la suivante :

Code erreur : 70199
Message : l'identifiant interne du client est invalide


Merci d'avance pour votre aide

Romuald

// Variables globales du projet
gcnxConnexionHFCS est une Connexion



// Connexion aux données clients-serveur //
//---------------------------------------//
Procedure Init_Donnees()

HFerme("*")

// Description de la connexion réseau
gcnxConnexionHFCS..Utilisateur = xxxxxxx mes Données de connexion xxxxxxxxx
gcnxConnexionHFCS..MotDePasse = xxxxxxx mes Données de connexion xxxxxxxxx
gcnxConnexionHFCS..Serveur = xxxxxxx mes Données de connexion xxxxxxxxx
gcnxConnexionHFCS..BaseDeDonnées = xxxxxxx mes Données de connexion xxxxxxxxx


gcnxConnexionHFCS..Provider = hAccèsHFClientServeur
gcnxConnexionHFCS..InfosEtendues = "Infos étendues"
gcnxConnexionHFCS..OptionsCurseur = hCurseurClient

// On ferme si une ancienne connexion est en cours
HFermeConnexion(gcnxConnexionHFCS)

// Connexion
SI PAS HOuvreConnexion(gcnxConnexionHFCS) ALORS
Erreur(ChaîneConstruit("Les données sont inaccessibles !!",HErreurInfo()))
RENVOYER Faux
FIN

// On change le chemin des fichiers
SI PAS HChangeConnexion("*",gcnxConnexionHFCS) ALORS
HFermeConnexion(gcnxConnexionHFCS)
Erreur(ChaîneConstruit("Impossible de se connecter aux fichiers de données de la base <%1> du serveur !",gcnxConnexionHFCS..BaseDeDonnées,HErreurInfo()))
RENVOYER Faux
FIN

SI PAS HChangeRep("*",".\") ALORS
Erreur(ChaîneConstruit("Impossible de se connecter aux fichiers de données de la base <%1> du serveur !",gcnxConnexionHFCS..BaseDeDonnées,HErreurInfo()))
HFermeConnexion(gcnxConnexionHFCS)
RENVOYER Faux
FIN

// On vérifie si les fichier HF sont synchronisé avec l'analyse
SI PAS VerifierFic(sCheminDonnees) ALORS
RENVOYER Faux
FIN


RENVOYER Vrai


// Connexion locale - hyperfile monoposte //
//----------------------------------------//
Procedure Init_Donnees_Archive(sCheminDonnees est une chaîne)

// fermeture des anciennes connexions
HFermeConnexion(gcnxConnexionHFCS)

ThreadPause(50)
HChangeConnexion("*","")
ThreadPause(50)

// on pointe sur le répertoire des données temporaire
SI PAS HChangeRep("*",sCheminDonnees) ALORS
Erreur(ChaîneConstruit("Impossible de pointer sur le répertoire des données : ",sCheminDonnees))
RENVOYER Faux
FIN

// On vérifie si les fichier HF sont synchronisé avec l'analyse
SI PAS VerifierFic(sCheminDonnees) ALORS
RENVOYER Faux
FIN

RENVOYER Vrai




// Vérification des formts des fichiers de données //
// ----------------------------------------------- //
Procedure VerifierFic()

// Chemin du programme de modification des fichiers
sListeFichier est une chaîne
sFichier est une chaîne
iCpt est un entier
sFichierAAnalyser est une chaîne


// Liste des fichiers hyperfile
sListeFichier = HListeFichier(ComplèteRep(fRepExe())+"PDV_Restaurant.wdd","xxx mot de passe xxx",hLstTriée)
iCpt = 1
sFichier = ExtraitChaîne(sListeFichier,iCpt,RC,DepuisFin)

// tant qu'il y a des fichiers à traiter
TANTQUE sFichier <> EOT

SI HFichierExiste(sFichier) ALORS


QUAND EXCEPTIONEXCEPTION DANS

sFichierAAnalyser = {sFichier, indFichier}..GUIDAnalyse
sFichierAAnalyser = {sFichier, indFichier}..GUIDFichier

FAIRE

SI PAS HModifieStructure(sFichier,hmsNormal,"PDVSOLU3838","",FEN_MAJ_DONNEES.JAUGE_progession) ALORS

Erreur("Impossible de mettre à jour vos fichiers de données : "+HErreurInfo())
RENVOYER Faux

FIN
ExceptionActive()
FIN

// définition du passe
QUAND EXCEPTIONEXCEPTION DANS

SI PAS HPasse(sFichier,"PDVSOLU3838") ALORS
Erreur("Erreur serveur licence- Mot de passe invalide pour le fichier : "+sFichier)
RENVOYER Faux
FIN

FAIRE

Erreur("Impossible de mettre à jour vos fichiers de données : "+HErreurInfo())
RENVOYER Faux

FIN

FIN
FIN

// Fichier suivant
iCpt++
sFichier = ExtraitChaîne(sListeFichier,iCpt,RC,DepuisFin)

FIN


RENVOYER Vrai
Posté le 27 mars 2017 - 11:46
Bonjour,

Je rencontre le même message d'erreur ("L'identifiant interne du client est invalide").
Je n'ai pas trouvé la cause de cette erreur et par conséquent comment la corriger...

Est-ce que de votre côté, vous avez trouvé une solution ou une piste pour éviter l'erreur ?

Merci de votre aide.

Seb
Posté le 07 mai 2018 - 16:04
bonjour,
J'ai egalement dés fois ce message (l'identifiant interne du client invalide". Le support me dit :

" Il s'agit d'une erreur interne du serveur HyperFileSQL, à priori que vous ne pouvez pas provoquer depuis le code W-Langage. Dit simplement, le client HyperFileSQL évoque un "objet" que le serveur HyperFileSQL ne connait pas."

Quelqu'un a-t-il trouvé une raison ?
Posté le 18 octobre 2018 - 17:44
J'ai rencontré également le message : L'identifiant interne du client est invalide
mais avec la fonction iimprimeEtat.
Dans mon cas, c'était lié à une rubrique de l'état non relié à une source de données et non affecté par programmation !!!
J'ai corrigé ce jour en espérant avoir levé le problème.
Dans le cas de base HF, il faut peut-être regarder du coté de champs non affectés qui n'acceptent pas la valeur 'NULL'