Bonjour,
J'ai besoin de faire un "import" de MySql vers HF .
Pour cela je créée une requête d'extraction de ma base MySQL.
J'integre enregistrement par enregistrement dans ma base HF (sous
condition)
Cela fonctionne trés bien.
Par contre quand je fais à nouveau un "import", je teste la présence de
l'enregistrement dans la base cible auquel cas je fais un Hmodifie() au
lieu d'un HAjoute()
Quand je débugge, HModifie() renvoie vrai pourtant les enregistrement
ne sont pas mis à jour.
Si quelqu'un à une idée ?
Merci d'avance.
Gilles Le Nouveau (qui ne l'ai plus vraiment d'ailleurs)
Bonjour,
J'ai besoin de faire un "import" de MySql vers HF .
Pour cela je créée une requête d'extraction de ma base MySQL.
J'integre enregistrement par enregistrement dans ma base HF (sous
condition)
Cela fonctionne trés bien.
Par contre quand je fais à nouveau un "import", je teste la présence de
l'enregistrement dans la base cible auquel cas je fais un Hmodifie() au
lieu d'un HAjoute()
Quand je débugge, HModifie() renvoie vrai pourtant les enregistrement
ne sont pas mis à jour.
Si quelqu'un à une idée ?
Merci d'avance.
Gilles Le Nouveau (qui ne l'ai plus vraiment d'ailleurs)
Bonjour,
J'ai besoin de faire un "import" de MySql vers HF .
Pour cela je créée une requête d'extraction de ma base MySQL.
J'integre enregistrement par enregistrement dans ma base HF (sous
condition)
Cela fonctionne trés bien.
Par contre quand je fais à nouveau un "import", je teste la présence de
l'enregistrement dans la base cible auquel cas je fais un Hmodifie() au
lieu d'un HAjoute()
Quand je débugge, HModifie() renvoie vrai pourtant les enregistrement
ne sont pas mis à jour.
Si quelqu'un à une idée ?
Merci d'avance.
Gilles Le Nouveau (qui ne l'ai plus vraiment d'ailleurs)
On 16 fév, 15:54, Gilles le nouveau wrote:Bonjour,
J'ai besoin de faire un "import" de MySql vers HF .
Pour cela je créée une requête d'extraction de ma base MySQL.
J'integre enregistrement par enregistrement dans ma base HF (sous
condition)
Cela fonctionne trés bien.
Par contre quand je fais à nouveau un "import", je teste la présence de
l'enregistrement dans la base cible auquel cas je fais un Hmodifie() au
lieu d'un HAjoute()
Quand je débugge, HModifie() renvoie vrai pourtant les enregistrement
ne sont pas mis à jour.
Si quelqu'un à une idée ?
Merci d'avance.
Gilles Le Nouveau (qui ne l'ai plus vraiment d'ailleurs)
Bonjour
Un bout de code pourrait être utile.
Yannick
On 16 fév, 15:54, Gilles le nouveau <t...@toto.com> wrote:
Bonjour,
J'ai besoin de faire un "import" de MySql vers HF .
Pour cela je créée une requête d'extraction de ma base MySQL.
J'integre enregistrement par enregistrement dans ma base HF (sous
condition)
Cela fonctionne trés bien.
Par contre quand je fais à nouveau un "import", je teste la présence de
l'enregistrement dans la base cible auquel cas je fais un Hmodifie() au
lieu d'un HAjoute()
Quand je débugge, HModifie() renvoie vrai pourtant les enregistrement
ne sont pas mis à jour.
Si quelqu'un à une idée ?
Merci d'avance.
Gilles Le Nouveau (qui ne l'ai plus vraiment d'ailleurs)
Bonjour
Un bout de code pourrait être utile.
Yannick
On 16 fév, 15:54, Gilles le nouveau wrote:Bonjour,
J'ai besoin de faire un "import" de MySql vers HF .
Pour cela je créée une requête d'extraction de ma base MySQL.
J'integre enregistrement par enregistrement dans ma base HF (sous
condition)
Cela fonctionne trés bien.
Par contre quand je fais à nouveau un "import", je teste la présence de
l'enregistrement dans la base cible auquel cas je fais un Hmodifie() au
lieu d'un HAjoute()
Quand je débugge, HModifie() renvoie vrai pourtant les enregistrement
ne sont pas mis à jour.
Si quelqu'un à une idée ?
Merci d'avance.
Gilles Le Nouveau (qui ne l'ai plus vraiment d'ailleurs)
Bonjour
Un bout de code pourrait être utile.
Yannick
Après mûre réflexion, a écrit :On 16 fév, 15:54, Gilles le nouveau wrote:Bonjour,
J'ai besoin de faire un "import" de MySql vers HF .
Pour cela je créée une requête d'extraction de ma base MySQL.
J'integre enregistrement par enregistrement dans ma base HF (sous
condition)
Cela fonctionne trés bien.
Par contre quand je fais à nouveau un "import", je teste la présence de
l'enregistrement dans la base cible auquel cas je fais un Hmodifie() au
lieu d'un HAjoute()
Quand je débugge, HModifie() renvoie vrai pourtant les enregistrement
ne sont pas mis à jour.
Si quelqu'un à une idée ?
Merci d'avance.
Gilles Le Nouveau (qui ne l'ai plus vraiment d'ailleurs)
Bonjour
Un bout de code pourrait être utile.
Yannick
Pas de problème , c'était pour pas ennuyez le monde avec mon
programmation de nain ;)
//////code //
HExécuteRequête(REQ_AccountInfo_Hardware,hModifieFichier)
HLitPremier(REQ_AccountInfo_Hardware)
TANTQUE HEnDehors(REQ_AccountInfo_Hardware) = Faux
//A FAIRE Gérer les Ordinateur Déjà Présent par Hardware_id et
Ordinateur.IDSite
SI
HLitRecherchePremier(Site,NuméroInterneSite,REQ_AccountInfo_Hardware.TAG)
ALORS
Ordinateur.Nom_PC=REQ_AccountInfo_Hardware.NAME
Ordinateur.Nom_Du_Reseau=REQ_AccountInfo_Hardware.WORKGROUP
Ordinateur.NuméroExterneOCS=REQ_AccountInfo_Hardware.ID
Ordinateur.NuméroInterneSite=REQ_AccountInfo_Hardware.TAG
Ordinateur.NuméroExterneOCS=REQ_AccountInfo_Hardware.HARDWARE_ID
Ordinateur.AdresseIP=REQ_AccountInfo_Hardware.IPADDR
Ordinateur.SytemeExploitation=REQ_AccountInfo_Hardware.OSNAME
Ordinateur.Serveur=ChaîneOccurrence(Ordinateur.SytemeExploitation,"Server")
// Retourne 0 si le mot server est absent 1 si le mot server est présent
Ordinateur.CommentaireOS=REQ_AccountInfo_Hardware.OSCOMMENTS
Ordinateur.Processeur=REQ_AccountInfo_Hardware.PROCESSORT
Ordinateur.RAM=REQ_AccountInfo_Hardware.MEMORY
Ordinateur.NuméroInterneOrdinateur=Ordinateur.NuméroInterneSite+"-"+Ordinateur.NuméroExterneOCS
// Si le PC existe déjà dans la base , on le met à jour.
SI
HLitRecherchePremier(Ordinateur,NuméroInterneOrdinateur,Ordinateur.NuméroInterneOrdinateur)
ALORS
HModifie(Ordinateur)
SINON
HAjoute(Ordinateur)
FIN
SINON
// On trace les Ordinateurs qui n'ont pas été intégrés fautes de
site présent.
UneLigne="Numéro OCS :
"+REQ_AccountInfo_Hardware.HARDWARE_ID+TAB+"Numéro du site :
"+REQ_AccountInfo_Hardware.TAG+TAB+" Serveur :
"+ChaîneOccurrence(REQ_AccountInfo_Hardware.OSNAME,"Server")
sResþcritLigne(nResOuverture,&UneLigne,Taille(UneLigne))
FIN
// Passe à l'enregistrement suivant
HLitSuivant(REQ_AccountInfo_Hardware)
FIN
fFerme(nResOuverture)
Après mûre réflexion, yannick.rusch@gmail.com a écrit :
On 16 fév, 15:54, Gilles le nouveau <t...@toto.com> wrote:
Bonjour,
J'ai besoin de faire un "import" de MySql vers HF .
Pour cela je créée une requête d'extraction de ma base MySQL.
J'integre enregistrement par enregistrement dans ma base HF (sous
condition)
Cela fonctionne trés bien.
Par contre quand je fais à nouveau un "import", je teste la présence de
l'enregistrement dans la base cible auquel cas je fais un Hmodifie() au
lieu d'un HAjoute()
Quand je débugge, HModifie() renvoie vrai pourtant les enregistrement
ne sont pas mis à jour.
Si quelqu'un à une idée ?
Merci d'avance.
Gilles Le Nouveau (qui ne l'ai plus vraiment d'ailleurs)
Bonjour
Un bout de code pourrait être utile.
Yannick
Pas de problème , c'était pour pas ennuyez le monde avec mon
programmation de nain ;)
//////code //
HExécuteRequête(REQ_AccountInfo_Hardware,hModifieFichier)
HLitPremier(REQ_AccountInfo_Hardware)
TANTQUE HEnDehors(REQ_AccountInfo_Hardware) = Faux
//A FAIRE Gérer les Ordinateur Déjà Présent par Hardware_id et
Ordinateur.IDSite
SI
HLitRecherchePremier(Site,NuméroInterneSite,REQ_AccountInfo_Hardware.TAG)
ALORS
Ordinateur.Nom_PC=REQ_AccountInfo_Hardware.NAME
Ordinateur.Nom_Du_Reseau=REQ_AccountInfo_Hardware.WORKGROUP
Ordinateur.NuméroExterneOCS=REQ_AccountInfo_Hardware.ID
Ordinateur.NuméroInterneSite=REQ_AccountInfo_Hardware.TAG
Ordinateur.NuméroExterneOCS=REQ_AccountInfo_Hardware.HARDWARE_ID
Ordinateur.AdresseIP=REQ_AccountInfo_Hardware.IPADDR
Ordinateur.SytemeExploitation=REQ_AccountInfo_Hardware.OSNAME
Ordinateur.Serveur=ChaîneOccurrence(Ordinateur.SytemeExploitation,"Server")
// Retourne 0 si le mot server est absent 1 si le mot server est présent
Ordinateur.CommentaireOS=REQ_AccountInfo_Hardware.OSCOMMENTS
Ordinateur.Processeur=REQ_AccountInfo_Hardware.PROCESSORT
Ordinateur.RAM=REQ_AccountInfo_Hardware.MEMORY
Ordinateur.NuméroInterneOrdinateur=Ordinateur.NuméroInterneSite+"-"+Ordinateur.NuméroExterneOCS
// Si le PC existe déjà dans la base , on le met à jour.
SI
HLitRecherchePremier(Ordinateur,NuméroInterneOrdinateur,Ordinateur.NuméroInterneOrdinateur)
ALORS
HModifie(Ordinateur)
SINON
HAjoute(Ordinateur)
FIN
SINON
// On trace les Ordinateurs qui n'ont pas été intégrés fautes de
site présent.
UneLigne="Numéro OCS :
"+REQ_AccountInfo_Hardware.HARDWARE_ID+TAB+"Numéro du site :
"+REQ_AccountInfo_Hardware.TAG+TAB+" Serveur :
"+ChaîneOccurrence(REQ_AccountInfo_Hardware.OSNAME,"Server")
sResþcritLigne(nResOuverture,&UneLigne,Taille(UneLigne))
FIN
// Passe à l'enregistrement suivant
HLitSuivant(REQ_AccountInfo_Hardware)
FIN
fFerme(nResOuverture)
Après mûre réflexion, a écrit :On 16 fév, 15:54, Gilles le nouveau wrote:Bonjour,
J'ai besoin de faire un "import" de MySql vers HF .
Pour cela je créée une requête d'extraction de ma base MySQL.
J'integre enregistrement par enregistrement dans ma base HF (sous
condition)
Cela fonctionne trés bien.
Par contre quand je fais à nouveau un "import", je teste la présence de
l'enregistrement dans la base cible auquel cas je fais un Hmodifie() au
lieu d'un HAjoute()
Quand je débugge, HModifie() renvoie vrai pourtant les enregistrement
ne sont pas mis à jour.
Si quelqu'un à une idée ?
Merci d'avance.
Gilles Le Nouveau (qui ne l'ai plus vraiment d'ailleurs)
Bonjour
Un bout de code pourrait être utile.
Yannick
Pas de problème , c'était pour pas ennuyez le monde avec mon
programmation de nain ;)
//////code //
HExécuteRequête(REQ_AccountInfo_Hardware,hModifieFichier)
HLitPremier(REQ_AccountInfo_Hardware)
TANTQUE HEnDehors(REQ_AccountInfo_Hardware) = Faux
//A FAIRE Gérer les Ordinateur Déjà Présent par Hardware_id et
Ordinateur.IDSite
SI
HLitRecherchePremier(Site,NuméroInterneSite,REQ_AccountInfo_Hardware.TAG)
ALORS
Ordinateur.Nom_PC=REQ_AccountInfo_Hardware.NAME
Ordinateur.Nom_Du_Reseau=REQ_AccountInfo_Hardware.WORKGROUP
Ordinateur.NuméroExterneOCS=REQ_AccountInfo_Hardware.ID
Ordinateur.NuméroInterneSite=REQ_AccountInfo_Hardware.TAG
Ordinateur.NuméroExterneOCS=REQ_AccountInfo_Hardware.HARDWARE_ID
Ordinateur.AdresseIP=REQ_AccountInfo_Hardware.IPADDR
Ordinateur.SytemeExploitation=REQ_AccountInfo_Hardware.OSNAME
Ordinateur.Serveur=ChaîneOccurrence(Ordinateur.SytemeExploitation,"Server")
// Retourne 0 si le mot server est absent 1 si le mot server est présent
Ordinateur.CommentaireOS=REQ_AccountInfo_Hardware.OSCOMMENTS
Ordinateur.Processeur=REQ_AccountInfo_Hardware.PROCESSORT
Ordinateur.RAM=REQ_AccountInfo_Hardware.MEMORY
Ordinateur.NuméroInterneOrdinateur=Ordinateur.NuméroInterneSite+"-"+Ordinateur.NuméroExterneOCS
// Si le PC existe déjà dans la base , on le met à jour.
SI
HLitRecherchePremier(Ordinateur,NuméroInterneOrdinateur,Ordinateur.NuméroInterneOrdinateur)
ALORS
HModifie(Ordinateur)
SINON
HAjoute(Ordinateur)
FIN
SINON
// On trace les Ordinateurs qui n'ont pas été intégrés fautes de
site présent.
UneLigne="Numéro OCS :
"+REQ_AccountInfo_Hardware.HARDWARE_ID+TAB+"Numéro du site :
"+REQ_AccountInfo_Hardware.TAG+TAB+" Serveur :
"+ChaîneOccurrence(REQ_AccountInfo_Hardware.OSNAME,"Server")
sResþcritLigne(nResOuverture,&UneLigne,Taille(UneLigne))
FIN
// Passe à l'enregistrement suivant
HLitSuivant(REQ_AccountInfo_Hardware)
FIN
fFerme(nResOuverture)
Gilles le nouveau a écrit :Après mûre réflexion, a écrit :On 16 fév, 15:54, Gilles le nouveau wrote:Bonjour,
J'ai besoin de faire un "import" de MySql vers HF .
Pour cela je créée une requête d'extraction de ma base MySQL.
J'integre enregistrement par enregistrement dans ma base HF (sous
condition)
Cela fonctionne trés bien.
Par contre quand je fais à nouveau un "import", je teste la présence de
l'enregistrement dans la base cible auquel cas je fais un Hmodifie() au
lieu d'un HAjoute()
Quand je débugge, HModifie() renvoie vrai pourtant les enregistrement
ne sont pas mis à jour.
Si quelqu'un à une idée ?
Merci d'avance.
Gilles Le Nouveau (qui ne l'ai plus vraiment d'ailleurs)
Bonjour
Un bout de code pourrait être utile.
Yannick
Pas de problème , c'était pour pas ennuyez le monde avec mon programmation
de nain ;)
//////code //
HExécuteRequête(REQ_AccountInfo_Hardware,hModifieFichier)
HLitPremier(REQ_AccountInfo_Hardware)
TANTQUE HEnDehors(REQ_AccountInfo_Hardware) = Faux
//A FAIRE Gérer les Ordinateur Déjà Présent par Hardware_id et
Ordinateur.IDSite
SI
HLitRecherchePremier(Site,NuméroInterneSite,REQ_AccountInfo_Hardware.TAG)
ALORS
Ordinateur.Nom_PC=REQ_AccountInfo_Hardware.NAME
Ordinateur.Nom_Du_Reseau=REQ_AccountInfo_Hardware.WORKGROUP
Ordinateur.NuméroExterneOCS=REQ_AccountInfo_Hardware.ID
Ordinateur.NuméroInterneSite=REQ_AccountInfo_Hardware.TAG
Ordinateur.NuméroExterneOCS=REQ_AccountInfo_Hardware.HARDWARE_ID
Ordinateur.AdresseIP=REQ_AccountInfo_Hardware.IPADDR
Ordinateur.SytemeExploitation=REQ_AccountInfo_Hardware.OSNAME
Ordinateur.Serveur=ChaîneOccurrence(Ordinateur.SytemeExploitation,"Server")
// Retourne 0 si le mot server est absent 1 si le mot server est présent
Ordinateur.CommentaireOS=REQ_AccountInfo_Hardware.OSCOMMENTS
Ordinateur.Processeur=REQ_AccountInfo_Hardware.PROCESSORT
Ordinateur.RAM=REQ_AccountInfo_Hardware.MEMORY
Ordinateur.NuméroInterneOrdinateur=Ordinateur.NuméroInterneSite+"-"+Ordinateur.NuméroExterneOCS
// Si le PC existe déjà dans la base , on le met à jour.
SI
HLitRecherchePremier(Ordinateur,NuméroInterneOrdinateur,Ordinateur.NuméroInterneOrdinateur)
ALORS
HModifie(Ordinateur)
SINON
HAjoute(Ordinateur)
FIN
SINON
// On trace les Ordinateurs qui n'ont pas été intégrés fautes de
site présent.
UneLigne="Numéro OCS :
"+REQ_AccountInfo_Hardware.HARDWARE_ID+TAB+"Numéro du site :
"+REQ_AccountInfo_Hardware.TAG+TAB+" Serveur :
"+ChaîneOccurrence(REQ_AccountInfo_Hardware.OSNAME,"Server")
sResþcritLigne(nResOuverture,&UneLigne,Taille(UneLigne))
FIN
// Passe à l'enregistrement suivant
HLitSuivant(REQ_AccountInfo_Hardware)
FIN
fFerme(nResOuverture)
C'est normal, quand tu fais ton hlitrecherche (Ordinateur) tu écrases les
données avec celles que tu viens de lire.
Fais plutot ainsi
> //////code //
> HExécuteRequête(REQ_AccountInfo_Hardware,hModifieFichier)
> HLitPremier(REQ_AccountInfo_Hardware)
> TANTQUE HEnDehors(REQ_AccountInfo_Hardware) = Faux
> //A FAIRE Gérer les Ordinateur Déjà Présent par Hardware_id et
> Ordinateur.IDSite
> SI
> HLitRecherchePremier(Site,NuméroInterneSite,REQ_AccountInfo_Hardware.TAG)
> ALORS
> SI >HLitRecherchePremier(Ordinateur,
NuméroInterneOrdinateur,Ordinateur.NuméroInterneOrdinateur)
> ALORS
> Ordinateur.Nom_PC=REQ_AccountInfo_Hardware.NAME
> Ordinateur.Nom_Du_Reseau=REQ_AccountInfo_Hardware.WORKGROUP
> Ordinateur.NuméroExterneOCS=REQ_AccountInfo_Hardware.ID
> Ordinateur.NuméroInterneSite=REQ_AccountInfo_Hardware.TAG
> Ordinateur.NuméroExterneOCS=REQ_AccountInfo_Hardware.HARDWARE_ID
> Ordinateur.AdresseIP=REQ_AccountInfo_Hardware.IPADDR
> Ordinateur.SytemeExploitation=REQ_AccountInfo_Hardware.OSNAME
>
>
Ordinateur.Serveur=ChaîneOccurrence(Ordinateur.SytemeExploitation,"Server")
> // Retourne 0 si le mot server est absent 1 si le mot server est présent
> Ordinateur.CommentaireOS=REQ_AccountInfo_Hardware.OSCOMMENTS
> Ordinateur.Processeur=REQ_AccountInfo_Hardware.PROCESSORT
> Ordinateur.RAM=REQ_AccountInfo_Hardware.MEMORY
>
>
Ordinateur.NuméroInterneOrdinateur=Ordinateur.NuméroInterneSite+"-"+Ordinateur.NuméroExterneOCS
>
> // Si le PC existe déjà dans la base , on le met à jour.
>
>
HModifie(Ordinateur)
> SINON
> Ordinateur.Nom_PC=REQ_AccountInfo_Hardware.NAME
> Ordinateur.Nom_Du_Reseau=REQ_AccountInfo_Hardware.WORKGROUP
> Ordinateur.NuméroExterneOCS=REQ_AccountInfo_Hardware.ID
> Ordinateur.NuméroInterneSite=REQ_AccountInfo_Hardware.TAG
> Ordinateur.NuméroExterneOCS=REQ_AccountInfo_Hardware.HARDWARE_ID
> Ordinateur.AdresseIP=REQ_AccountInfo_Hardware.IPADDR
> Ordinateur.SytemeExploitation=REQ_AccountInfo_Hardware.OSNAME
>
>
Ordinateur.Serveur=ChaîneOccurrence(Ordinateur.SytemeExploitation,"Server")
> // Retourne 0 si le mot server est absent 1 si le mot server est présent
> Ordinateur.CommentaireOS=REQ_AccountInfo_Hardware.OSCOMMENTS
> Ordinateur.Processeur=REQ_AccountInfo_Hardware.PROCESSORT
> Ordinateur.RAM=REQ_AccountInfo_Hardware.MEMORY
>
>
Ordinateur.NuméroInterneOrdinateur=Ordinateur.NuméroInterneSite+"-"+Ordinateur.NuméroExterneOCS
>
> HAjoute(Ordinateur)
> FIN
>
> SINON
> // On trace les Ordinateurs qui n'ont pas été intégrés fautes de
> site présent.
> UneLigne="Numéro OCS :
> "+REQ_AccountInfo_Hardware.HARDWARE_ID+TAB+"Numéro du site :
> "+REQ_AccountInfo_Hardware.TAG+TAB+" Serveur :
> "+ChaîneOccurrence(REQ_AccountInfo_Hardware.OSNAME,"Server")
> sResþcritLigne(nResOuverture,&UneLigne,Taille(UneLigne))
>
> FIN
> // Passe à l'enregistrement suivant
> HLitSuivant(REQ_AccountInfo_Hardware)
>
> FIN
> fFerme(nResOuverture)
Gilles le nouveau a écrit :
Après mûre réflexion, yannick.rusch@gmail.com a écrit :
On 16 fév, 15:54, Gilles le nouveau <t...@toto.com> wrote:
Bonjour,
J'ai besoin de faire un "import" de MySql vers HF .
Pour cela je créée une requête d'extraction de ma base MySQL.
J'integre enregistrement par enregistrement dans ma base HF (sous
condition)
Cela fonctionne trés bien.
Par contre quand je fais à nouveau un "import", je teste la présence de
l'enregistrement dans la base cible auquel cas je fais un Hmodifie() au
lieu d'un HAjoute()
Quand je débugge, HModifie() renvoie vrai pourtant les enregistrement
ne sont pas mis à jour.
Si quelqu'un à une idée ?
Merci d'avance.
Gilles Le Nouveau (qui ne l'ai plus vraiment d'ailleurs)
Bonjour
Un bout de code pourrait être utile.
Yannick
Pas de problème , c'était pour pas ennuyez le monde avec mon programmation
de nain ;)
//////code //
HExécuteRequête(REQ_AccountInfo_Hardware,hModifieFichier)
HLitPremier(REQ_AccountInfo_Hardware)
TANTQUE HEnDehors(REQ_AccountInfo_Hardware) = Faux
//A FAIRE Gérer les Ordinateur Déjà Présent par Hardware_id et
Ordinateur.IDSite
SI
HLitRecherchePremier(Site,NuméroInterneSite,REQ_AccountInfo_Hardware.TAG)
ALORS
Ordinateur.Nom_PC=REQ_AccountInfo_Hardware.NAME
Ordinateur.Nom_Du_Reseau=REQ_AccountInfo_Hardware.WORKGROUP
Ordinateur.NuméroExterneOCS=REQ_AccountInfo_Hardware.ID
Ordinateur.NuméroInterneSite=REQ_AccountInfo_Hardware.TAG
Ordinateur.NuméroExterneOCS=REQ_AccountInfo_Hardware.HARDWARE_ID
Ordinateur.AdresseIP=REQ_AccountInfo_Hardware.IPADDR
Ordinateur.SytemeExploitation=REQ_AccountInfo_Hardware.OSNAME
Ordinateur.Serveur=ChaîneOccurrence(Ordinateur.SytemeExploitation,"Server")
// Retourne 0 si le mot server est absent 1 si le mot server est présent
Ordinateur.CommentaireOS=REQ_AccountInfo_Hardware.OSCOMMENTS
Ordinateur.Processeur=REQ_AccountInfo_Hardware.PROCESSORT
Ordinateur.RAM=REQ_AccountInfo_Hardware.MEMORY
Ordinateur.NuméroInterneOrdinateur=Ordinateur.NuméroInterneSite+"-"+Ordinateur.NuméroExterneOCS
// Si le PC existe déjà dans la base , on le met à jour.
SI
HLitRecherchePremier(Ordinateur,NuméroInterneOrdinateur,Ordinateur.NuméroInterneOrdinateur)
ALORS
HModifie(Ordinateur)
SINON
HAjoute(Ordinateur)
FIN
SINON
// On trace les Ordinateurs qui n'ont pas été intégrés fautes de
site présent.
UneLigne="Numéro OCS :
"+REQ_AccountInfo_Hardware.HARDWARE_ID+TAB+"Numéro du site :
"+REQ_AccountInfo_Hardware.TAG+TAB+" Serveur :
"+ChaîneOccurrence(REQ_AccountInfo_Hardware.OSNAME,"Server")
sResþcritLigne(nResOuverture,&UneLigne,Taille(UneLigne))
FIN
// Passe à l'enregistrement suivant
HLitSuivant(REQ_AccountInfo_Hardware)
FIN
fFerme(nResOuverture)
C'est normal, quand tu fais ton hlitrecherche (Ordinateur) tu écrases les
données avec celles que tu viens de lire.
Fais plutot ainsi
> //////code //
> HExécuteRequête(REQ_AccountInfo_Hardware,hModifieFichier)
> HLitPremier(REQ_AccountInfo_Hardware)
> TANTQUE HEnDehors(REQ_AccountInfo_Hardware) = Faux
> //A FAIRE Gérer les Ordinateur Déjà Présent par Hardware_id et
> Ordinateur.IDSite
> SI
> HLitRecherchePremier(Site,NuméroInterneSite,REQ_AccountInfo_Hardware.TAG)
> ALORS
> SI >HLitRecherchePremier(Ordinateur,
NuméroInterneOrdinateur,Ordinateur.NuméroInterneOrdinateur)
> ALORS
> Ordinateur.Nom_PC=REQ_AccountInfo_Hardware.NAME
> Ordinateur.Nom_Du_Reseau=REQ_AccountInfo_Hardware.WORKGROUP
> Ordinateur.NuméroExterneOCS=REQ_AccountInfo_Hardware.ID
> Ordinateur.NuméroInterneSite=REQ_AccountInfo_Hardware.TAG
> Ordinateur.NuméroExterneOCS=REQ_AccountInfo_Hardware.HARDWARE_ID
> Ordinateur.AdresseIP=REQ_AccountInfo_Hardware.IPADDR
> Ordinateur.SytemeExploitation=REQ_AccountInfo_Hardware.OSNAME
>
>
Ordinateur.Serveur=ChaîneOccurrence(Ordinateur.SytemeExploitation,"Server")
> // Retourne 0 si le mot server est absent 1 si le mot server est présent
> Ordinateur.CommentaireOS=REQ_AccountInfo_Hardware.OSCOMMENTS
> Ordinateur.Processeur=REQ_AccountInfo_Hardware.PROCESSORT
> Ordinateur.RAM=REQ_AccountInfo_Hardware.MEMORY
>
>
Ordinateur.NuméroInterneOrdinateur=Ordinateur.NuméroInterneSite+"-"+Ordinateur.NuméroExterneOCS
>
> // Si le PC existe déjà dans la base , on le met à jour.
>
>
HModifie(Ordinateur)
> SINON
> Ordinateur.Nom_PC=REQ_AccountInfo_Hardware.NAME
> Ordinateur.Nom_Du_Reseau=REQ_AccountInfo_Hardware.WORKGROUP
> Ordinateur.NuméroExterneOCS=REQ_AccountInfo_Hardware.ID
> Ordinateur.NuméroInterneSite=REQ_AccountInfo_Hardware.TAG
> Ordinateur.NuméroExterneOCS=REQ_AccountInfo_Hardware.HARDWARE_ID
> Ordinateur.AdresseIP=REQ_AccountInfo_Hardware.IPADDR
> Ordinateur.SytemeExploitation=REQ_AccountInfo_Hardware.OSNAME
>
>
Ordinateur.Serveur=ChaîneOccurrence(Ordinateur.SytemeExploitation,"Server")
> // Retourne 0 si le mot server est absent 1 si le mot server est présent
> Ordinateur.CommentaireOS=REQ_AccountInfo_Hardware.OSCOMMENTS
> Ordinateur.Processeur=REQ_AccountInfo_Hardware.PROCESSORT
> Ordinateur.RAM=REQ_AccountInfo_Hardware.MEMORY
>
>
Ordinateur.NuméroInterneOrdinateur=Ordinateur.NuméroInterneSite+"-"+Ordinateur.NuméroExterneOCS
>
> HAjoute(Ordinateur)
> FIN
>
> SINON
> // On trace les Ordinateurs qui n'ont pas été intégrés fautes de
> site présent.
> UneLigne="Numéro OCS :
> "+REQ_AccountInfo_Hardware.HARDWARE_ID+TAB+"Numéro du site :
> "+REQ_AccountInfo_Hardware.TAG+TAB+" Serveur :
> "+ChaîneOccurrence(REQ_AccountInfo_Hardware.OSNAME,"Server")
> sResþcritLigne(nResOuverture,&UneLigne,Taille(UneLigne))
>
> FIN
> // Passe à l'enregistrement suivant
> HLitSuivant(REQ_AccountInfo_Hardware)
>
> FIN
> fFerme(nResOuverture)
Gilles le nouveau a écrit :Après mûre réflexion, a écrit :On 16 fév, 15:54, Gilles le nouveau wrote:Bonjour,
J'ai besoin de faire un "import" de MySql vers HF .
Pour cela je créée une requête d'extraction de ma base MySQL.
J'integre enregistrement par enregistrement dans ma base HF (sous
condition)
Cela fonctionne trés bien.
Par contre quand je fais à nouveau un "import", je teste la présence de
l'enregistrement dans la base cible auquel cas je fais un Hmodifie() au
lieu d'un HAjoute()
Quand je débugge, HModifie() renvoie vrai pourtant les enregistrement
ne sont pas mis à jour.
Si quelqu'un à une idée ?
Merci d'avance.
Gilles Le Nouveau (qui ne l'ai plus vraiment d'ailleurs)
Bonjour
Un bout de code pourrait être utile.
Yannick
Pas de problème , c'était pour pas ennuyez le monde avec mon programmation
de nain ;)
//////code //
HExécuteRequête(REQ_AccountInfo_Hardware,hModifieFichier)
HLitPremier(REQ_AccountInfo_Hardware)
TANTQUE HEnDehors(REQ_AccountInfo_Hardware) = Faux
//A FAIRE Gérer les Ordinateur Déjà Présent par Hardware_id et
Ordinateur.IDSite
SI
HLitRecherchePremier(Site,NuméroInterneSite,REQ_AccountInfo_Hardware.TAG)
ALORS
Ordinateur.Nom_PC=REQ_AccountInfo_Hardware.NAME
Ordinateur.Nom_Du_Reseau=REQ_AccountInfo_Hardware.WORKGROUP
Ordinateur.NuméroExterneOCS=REQ_AccountInfo_Hardware.ID
Ordinateur.NuméroInterneSite=REQ_AccountInfo_Hardware.TAG
Ordinateur.NuméroExterneOCS=REQ_AccountInfo_Hardware.HARDWARE_ID
Ordinateur.AdresseIP=REQ_AccountInfo_Hardware.IPADDR
Ordinateur.SytemeExploitation=REQ_AccountInfo_Hardware.OSNAME
Ordinateur.Serveur=ChaîneOccurrence(Ordinateur.SytemeExploitation,"Server")
// Retourne 0 si le mot server est absent 1 si le mot server est présent
Ordinateur.CommentaireOS=REQ_AccountInfo_Hardware.OSCOMMENTS
Ordinateur.Processeur=REQ_AccountInfo_Hardware.PROCESSORT
Ordinateur.RAM=REQ_AccountInfo_Hardware.MEMORY
Ordinateur.NuméroInterneOrdinateur=Ordinateur.NuméroInterneSite+"-"+Ordinateur.NuméroExterneOCS
// Si le PC existe déjà dans la base , on le met à jour.
SI
HLitRecherchePremier(Ordinateur,NuméroInterneOrdinateur,Ordinateur.NuméroInterneOrdinateur)
ALORS
HModifie(Ordinateur)
SINON
HAjoute(Ordinateur)
FIN
SINON
// On trace les Ordinateurs qui n'ont pas été intégrés fautes de
site présent.
UneLigne="Numéro OCS :
"+REQ_AccountInfo_Hardware.HARDWARE_ID+TAB+"Numéro du site :
"+REQ_AccountInfo_Hardware.TAG+TAB+" Serveur :
"+ChaîneOccurrence(REQ_AccountInfo_Hardware.OSNAME,"Server")
sResþcritLigne(nResOuverture,&UneLigne,Taille(UneLigne))
FIN
// Passe à l'enregistrement suivant
HLitSuivant(REQ_AccountInfo_Hardware)
FIN
fFerme(nResOuverture)
C'est normal, quand tu fais ton hlitrecherche (Ordinateur) tu écrases les
données avec celles que tu viens de lire.
Fais plutot ainsi
> //////code //
> HExécuteRequête(REQ_AccountInfo_Hardware,hModifieFichier)
> HLitPremier(REQ_AccountInfo_Hardware)
> TANTQUE HEnDehors(REQ_AccountInfo_Hardware) = Faux
> //A FAIRE Gérer les Ordinateur Déjà Présent par Hardware_id et
> Ordinateur.IDSite
> SI
> HLitRecherchePremier(Site,NuméroInterneSite,REQ_AccountInfo_Hardware.TAG)
> ALORS
> SI >HLitRecherchePremier(Ordinateur,
NuméroInterneOrdinateur,Ordinateur.NuméroInterneOrdinateur)
> ALORS
> Ordinateur.Nom_PC=REQ_AccountInfo_Hardware.NAME
> Ordinateur.Nom_Du_Reseau=REQ_AccountInfo_Hardware.WORKGROUP
> Ordinateur.NuméroExterneOCS=REQ_AccountInfo_Hardware.ID
> Ordinateur.NuméroInterneSite=REQ_AccountInfo_Hardware.TAG
> Ordinateur.NuméroExterneOCS=REQ_AccountInfo_Hardware.HARDWARE_ID
> Ordinateur.AdresseIP=REQ_AccountInfo_Hardware.IPADDR
> Ordinateur.SytemeExploitation=REQ_AccountInfo_Hardware.OSNAME
>
>
Ordinateur.Serveur=ChaîneOccurrence(Ordinateur.SytemeExploitation,"Server")
> // Retourne 0 si le mot server est absent 1 si le mot server est présent
> Ordinateur.CommentaireOS=REQ_AccountInfo_Hardware.OSCOMMENTS
> Ordinateur.Processeur=REQ_AccountInfo_Hardware.PROCESSORT
> Ordinateur.RAM=REQ_AccountInfo_Hardware.MEMORY
>
>
Ordinateur.NuméroInterneOrdinateur=Ordinateur.NuméroInterneSite+"-"+Ordinateur.NuméroExterneOCS
>
> // Si le PC existe déjà dans la base , on le met à jour.
>
>
HModifie(Ordinateur)
> SINON
> Ordinateur.Nom_PC=REQ_AccountInfo_Hardware.NAME
> Ordinateur.Nom_Du_Reseau=REQ_AccountInfo_Hardware.WORKGROUP
> Ordinateur.NuméroExterneOCS=REQ_AccountInfo_Hardware.ID
> Ordinateur.NuméroInterneSite=REQ_AccountInfo_Hardware.TAG
> Ordinateur.NuméroExterneOCS=REQ_AccountInfo_Hardware.HARDWARE_ID
> Ordinateur.AdresseIP=REQ_AccountInfo_Hardware.IPADDR
> Ordinateur.SytemeExploitation=REQ_AccountInfo_Hardware.OSNAME
>
>
Ordinateur.Serveur=ChaîneOccurrence(Ordinateur.SytemeExploitation,"Server")
> // Retourne 0 si le mot server est absent 1 si le mot server est présent
> Ordinateur.CommentaireOS=REQ_AccountInfo_Hardware.OSCOMMENTS
> Ordinateur.Processeur=REQ_AccountInfo_Hardware.PROCESSORT
> Ordinateur.RAM=REQ_AccountInfo_Hardware.MEMORY
>
>
Ordinateur.NuméroInterneOrdinateur=Ordinateur.NuméroInterneSite+"-"+Ordinateur.NuméroExterneOCS
>
> HAjoute(Ordinateur)
> FIN
>
> SINON
> // On trace les Ordinateurs qui n'ont pas été intégrés fautes de
> site présent.
> UneLigne="Numéro OCS :
> "+REQ_AccountInfo_Hardware.HARDWARE_ID+TAB+"Numéro du site :
> "+REQ_AccountInfo_Hardware.TAG+TAB+" Serveur :
> "+ChaîneOccurrence(REQ_AccountInfo_Hardware.OSNAME,"Server")
> sResþcritLigne(nResOuverture,&UneLigne,Taille(UneLigne))
>
> FIN
> // Passe à l'enregistrement suivant
> HLitSuivant(REQ_AccountInfo_Hardware)
>
> FIN
> fFerme(nResOuverture)