4D v15

Annexe : Méthodes utiles pour la conversion

Accueil

 
4D v15
Annexe : Méthodes utiles pour la conversion

Annexe : Méthodes utiles pour la conversion    


 

TechTip pour créer les index manquants sur les champs déclarés "Unique" mais non-indexés : http://kb.4d.com/assetid=77023 (en anglais), ou ci-dessous code en français :

 C_ENTIER LONG($maxTableNumber_l;$currentTable_l)
 C_ENTIER LONG($maxFieldCount_l;$currentField_l)
 C_ENTIER LONG($dontCare_l// pour les valeurs du LIRE PROPRIETES CHAMP qui ne sont pas utilisées
 C_BOOLEEN($dontCare_f;$isIndexed_f;$isUnique_f)
 C_TEXTE($logHeader_t;$logRecord_t;$logfile_t)
 C_TEXTE($delim_t;$lf_t)
 C_TEXTE($tableName_t;$fieldName_t;$note_t)
 
 $maxTableNumber_l:=Lire numero derniere table
 
 Boucle($currentTable_l;1;$maxTableNumber_l)
    Si(Est un numero de table valide($currentTable_l))
       $maxFieldCount_l:=Lire numero dernier champ(Table($currentTable_l))
       boucle($currentField_l;1;$maxFieldCount_l)
          Si(Est un numero de champ valide($currentTable_l;$currentField_l))
             LIRE PROPRIETES CHAMP($currentTable_l;$currentField_l;$dontCare_l;\
             $dontCare_l;$isIndexed_f;$isUnique_f;$dontCare_f)
 
             Si($isUnique_f) & (Non($isIndexed_f))
                $tablePtr:=Table($currentTable_l)
                $fieldPtr:=Champ($currentTable_l;$currentField_l)
                $tableName_t:=Nom de la table($tablePtr)
                $fieldName_t:=Nom du champ($fieldPtr)
                $indexName_t:="["+$tableName_t+"]"+$fieldName_t+" indexé car unicité"
                TABLEAU POINTEUR($fieldsArray_p;1)
                $fieldsArray_p{1}:=$fieldPtr
                CREER INDEX($tablePtr->;$fieldsArray_p;Index BTree standard;$indexName_t;*)
             Fin de si
          Fin de si
       Fin de boucle
    Fin de si
 Fin de boucle

Techtip pour générer un fichier disque listant les champs uniques non-indexés : http://kb.4d.com/assetid=77024, (en anglais) ou ci-dessous code en français :

 C_ENTIER LONG($maxTableNumber_l;$currentTable_l)
 C_ENTIER LONG($maxFieldCount_l;$currentField_l)
 C_ENTIER LONG($dontCare_l)&nbsp// pour les valeurs du LIRE PROPRIETES CHAMP qui ne sont pas utilisées
 C_BOOLEEN($dontCare_f;$isIndexed_f;$isUnique_f)
 C_TEXTE($logHeader_t;$logRecord_t;$logfile_t)
 C_TEXTE($delim_t;$lf_t)
 C_HEURE($logfile_h)
 C_TEXTE($tableName_t;$fieldName_t;$note_t)
 
 $delim_t:=Caractere(Tabulation)
 $lf_t:=Caractere(Retour chariot)+Caractere(Retour à la ligne)
 
 $logHeader_t:="Champs uniques sans index :"+$lf_t
 $logfile_t:=Dossier 4D(Dossier Logs)+"UniqueNonIndex.txt"
 $logfile_h:=Creer document($logfile_t)
 Si(OK=1)
    ENVOYER PAQUET($logfile_h;$logHeader_t)
    $maxTableNumber_l:=Lire numero derniere table
    Boucle($currentTable_l;1;$maxTableNumber_l)
       Si(Est un numero de table valide($currentTable_l))
          $maxFieldCount_l:=Lire numero dernier champ(Table($currentTable_l))
          Boucle($currentField_l;1;$maxFieldCount_l)
             Si(Est un numero de champ valide($currentTable_l;$currentField_l))
                LIRE PROPRIETES CHAMP($currentTable_l;$currentField_l;$dontCare_l;\
                $dontCare_l;$isIndexed_f;$isUnique_f;$dontCare_f)
                Si(($isUnique_f) & (Non($isIndexed_f)))
                   $tableName_t:=Nom de la table(Table($currentTable_l))
                   $fieldName_t:=Nom du champ(Champ($currentTable_l;$currentField_l))
                   $logRecord_t:="["+$tableName_t+"]"+$fieldName_t+$lf_t
                   ENVOYER PAQUET($logfile_h;$logRecord_t)
                Fin de si
             Fin de si
          Fin de boucle
       Fin de si
    Fin de boucle
 Fin de si
 FERMER DOCUMENT($logfile_h)

Voir L'éditeur de méthode est en "Anglais-US" par défaut. Dans le contexte du déploiement d'applications fusionnées, pour utiliser les paramètres régionaux vous pouvez éditer le contenu du fichier de préférences de 4D v15 sur chaque machine locale et fixer la clé "use_localized_language" à "true".

 $UserPreference:=Dossier 4D(Dossier 4D actif)+"4D Preferences v15.4DPreferences"
 $ref:=DOM Analyser source XML($UserPreference;Vrai)
 $refElem:=DOM Chercher element XML($ref;"preferences/com.4d/method_editor/options";arrElementRefs)  // On lit la valeur courante
 DOM LIRE ATTRIBUT XML PAR NOM($refElem;"use_localized_language";$attrValue)
 Si($attrValue="false")      // Retour au fonctionnement v14
    DOM ECRIRE ATTRIBUT XML($refElem;"use_localized_language";"true")
 Fin de si
 DOM EXPORTER VERS FICHIER($ref;$UserPreference)
 DOM FERMER XML($ref)

 
 

 
PROPRIÉTÉS 

Produit : 4D
Thème : Annexe : Méthodes utiles pour la conversion
Nom intl. : Appendix: Useful methods for conversion

 
HISTORIQUE 

 
UTILISATION DE L'ARTICLE

Conversion en 4D v15 ( 4D v15)