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 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
| PROCEDURE CopiarRegistro(CnxDestino est une Connexion, FicheroDestino, CnxOrigen est une Connexion, FicheroOrigen, sClavePrincipal, ValorID, bEliminar est un booléen)
sFicheroINI est une chaîne = ".\CONFIG.INI"
sSeccion est une chaîne = "VARIABLES"
//sProviderOrigen est une chaîne
//sProviderDestino est une chaîne
//sDatosOrigen est une chaîne
//sDatosDestino est une chaîne
sRegistros est une chaîne
// Désactiver les règles d'intégrité sur tous les fichiers de l'application
HGèreIntégrité("*", "*", hCardinalité + hEnModification + hEnSuppression, Faux)
// Déclaration de l'alias
sdFicheroDestino est une Source de Données
// Création de l'alias
SI HAlias(FicheroOrigen, sdFicheroDestino)= Vrai ALORS
// Si le fichier sFicheroCopia.FIC est dans un autre répertoire, il faut ajouter :
// Connexion à la base HyperFileSQL Client/Serveur.. connexion définie dans l'analyse
// Si la base HyperFileSQL Client/Serveur est accessible, on travaille avec les données en mode Client/Serveur
SI HOuvreConnexion(CnxDestino) = Vrai ALORS
SI HChangeConnexion(sdFicheroDestino, CnxDestino) ALORS
// CONEXION CORRECTA
SI PAS HChangeNom(sdFicheroDestino, FicheroDestino) ALORS
Erreur("Error de conexión a "+FicheroDestino)
FIN
SI PAS HCréationSiInexistant(sdFicheroDestino) ALORS
Erreur("Error al crear el fichero: "+FicheroDestino)
SINON
//info(FicheroDestino+" Fichero creado.")
FIN
SINON
HErreurInfo()
FIN
SINON
Erreur("¡Servidor de Datos alternativo "+CnxDestino..Serveur+" no disponible!")
sRegistros=fChargeTexte("REMOTE.TXT")
sRegistros=sRegistros+FicheroOrigen+TAB+sClavePrincipal+TAB+ValorID+RC
fSauveTexte("REMOTE.TXT", sRegistros)
// Annulation de l'alias
HAnnuleAlias(sdFicheroDestino)
//HFermeConnexion(CnxDestino)
// Activer les règles d'intégrité sur tous les fichiers de l'application
HGèreIntégrité("*", "*", hCardinalité + hEnModification + hEnSuppression, Vrai)
RETOUR
//Erreur(HErreur(hErrMessage))
FIN
HFerme(sdFicheroDestino)
HChangeNom(sdFicheroDestino,FicheroOrigen)
// Pour filtrer les enregistrements copiés, ajoutez une fonction HFiltre ici
//hfiltre(FicheroOrigen,sClavePrincipal,ValorID,ValorID)...
HLitRecherchePremier(FicheroOrigen, sClavePrincipal, ValorID)
//SI val(ValorID)=0 ALORS
// Erreur("Clave vacía: no se puede hacer la copia en el Servidor alternativo.")
//SINON
HLitRecherchePremier(sdFicheroDestino, sClavePrincipal, ValorID)
SI HTrouve(sdFicheroDestino) ALORS
SI bEliminar=Vrai ALORS
//MaTrace(ValorID+" Eliminado en "+CnxDestino..BaseDeDonnées+" de "+CnxDestino..Serveur)
SI PAS HSupprime(sdFicheroDestino) ALORS
Erreur(ValorID+" no se ha suprimido.")
FIN
SINON
SI HCopieEnreg(sdFicheroDestino, FicheroOrigen, hCopieIdAuto + hValDéfaut) ALORS
//MaTrace(ValorID+" Modificado en "+CnxDestino..BaseDeDonnées+" de "+CnxDestino..Serveur)
SI PAS HModifie(sdFicheroDestino) ALORS
Erreur(ValorID+" no se ha modificado.")
FIN
SINON
// Erreur sur la fonction HCopieEnreg // Affichage d'un message d'erreur
Erreur(ValorID+" Imposible modificar el Registro.")
FIN
FIN
SINON
SI bEliminar=Vrai ALORS
// NO PROCEDE
SINON
SI HCopieEnreg(sdFicheroDestino, FicheroOrigen, hCopieIdAuto + hValDéfaut) ALORS
//MaTrace(ValorID+" Añadido en "+CnxDestino..BaseDeDonnées+" de "+CnxDestino..Serveur)
SI PAS HAjoute(sdFicheroDestino,hFixeIdAuto) ALORS
Erreur(ValorID+" no se ha añadido.")
FIN
SINON
Erreur(ValorID+" Imposible añadir el Registro.")
FIN
FIN
FIN
//FIN
SINON
// Erreur sur la fonction HAlias
// Affichage d'un message sur l'erreur
Erreur("Detalle del Problema " + HErreurInfo())
FIN
// Annulation de l'alias
HAnnuleAlias(sdFicheroDestino)
//HFermeConnexion(CnxDestino)
// Activer les règles d'intégrité sur tous les fichiers de l'application
HGèreIntégrité("*", "*", hCardinalité + hEnModification + hEnSuppression, Vrai) |
Partager