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_LONGINT($maxTableNumber_l;$currentTable_l)
 C_LONGINT($maxFieldCount_l;$currentField_l)
 C_LONGINT($dontCare_l// pour les valeurs du LIRE PROPRIETES CHAMP qui ne sont pas utilisées
 C_BOOLEAN($dontCare_f;$isIndexed_f;$isUnique_f)
 C_TEXT($logHeader_t;$logRecord_t;$logfile_t)
 C_TEXT($delim_t;$lf_t)
 C_TEXT($tableName_t;$fieldName_t;$note_t)
 
 $maxTableNumber_l:=Get last table number
 
 For($currentTable_l;1;$maxTableNumber_l)
    If(Is table number valid($currentTable_l))
       $maxFieldCount_l:=Get last field number(Table($currentTable_l))
       boucle($currentField_l;1;$maxFieldCount_l)
       If(Is field number valid($currentTable_l;$currentField_l))
          GET FIELD PROPERTIES($currentTable_l;$currentField_l;$dontCare_l;\
          $dontCare_l;$isIndexed_f;$isUnique_f;$dontCare_f)
 
          If($isUnique_f) & (Not($isIndexed_f))
             $tablePtr:=Table($currentTable_l)
             $fieldPtr:=Field($currentTable_l;$currentField_l)
             $tableName_t:=Table name($tablePtr)
             $fieldName_t:=Field name($fieldPtr)
             $indexName_t:="["+$tableName_t+"]"+$fieldName_t+" indexé car unicité"
             ARRAY POINTER($fieldsArray_p;1)
             $fieldsArray_p{1}:=$fieldPtr
             CREATE INDEX($tablePtr->;$fieldsArray_p;Standard BTree Index;$indexName_t;*)
          End if
       End if
    End for
 End if
End for

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_LONGINT($maxTableNumber_l;$currentTable_l)
 C_LONGINT($maxFieldCount_l;$currentField_l)
 C_LONGINT($dontCare_l)&nbsp// pour les valeurs du LIRE PROPRIETES CHAMP qui ne sont pas utilisées
 C_BOOLEAN($dontCare_f;$isIndexed_f;$isUnique_f)
 C_TEXT($logHeader_t;$logRecord_t;$logfile_t)
 C_TEXT($delim_t;$lf_t)
 C_TIME($logfile_h)
 C_TEXT($tableName_t;$fieldName_t;$note_t)
 
 $delim_t:=Char(Tab)
 $lf_t:=Char(Carriage return)+Char(Line feed)
 
 $logHeader_t:="Champs uniques sans index :"+$lf_t
 $logfile_t:=Get 4D folder(Logs folder)+"UniqueNonIndex.txt"
 $logfile_h:=Create document($logfile_t)
 If(OK=1)
    SEND PACKET($logfile_h;$logHeader_t)
    $maxTableNumber_l:=Get last table number
    For($currentTable_l;1;$maxTableNumber_l)
       If(Is table number valid($currentTable_l))
          $maxFieldCount_l:=Get last field number(Table($currentTable_l))
          For($currentField_l;1;$maxFieldCount_l)
             If(Is field number valid($currentTable_l;$currentField_l))
                GET FIELD PROPERTIES($currentTable_l;$currentField_l;$dontCare_l;\
                $dontCare_l;$isIndexed_f;$isUnique_f;$dontCare_f)
                If(($isUnique_f) & (Not($isIndexed_f)))
                   $tableName_t:=Table name(Table($currentTable_l))
                   $fieldName_t:=Field name(Field($currentTable_l;$currentField_l))
                   $logRecord_t:="["+$tableName_t+"]"+$fieldName_t+$lf_t
                   SEND PACKET($logfile_h;$logRecord_t)
                End if
             End if
          End for
       End if
    End for
 End if
 CLOSE 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:=Get 4D folder(Active 4D Folder)+"4D Preferences v15.4DPreferences"
 $ref:=DOM Parse XML source($UserPreference;True)
 $refElem:=DOM Find XML element($ref;"preferences/com.4d/method_editor/options";arrElementRefs)  // On lit la valeur courante
 DOM GET XML ATTRIBUTE BY NAME($refElem;"use_localized_language";$attrValue)
 If($attrValue="false")      // Retour au fonctionnement v14
    DOM SET XML ATTRIBUTE($refElem;"use_localized_language";"true")
 End if
 DOM EXPORT TO FILE($ref;$UserPreference)
 DOM CLOSE XML($ref)

 
 

 
PROPRIÉTÉS 

Produit : 4D
Thème : Annexe : Méthodes utiles pour la conversion

 
HISTORIQUE 

 
UTILISATION DE L'ARTICLE

Conversion en 4D v15 ( 4D v15)