4D Quizz : correctifs
Date de publication : 26/04/2007 , Date de mise à jour : 22/10/2007
Par
Cédric Gareau (Technicien Support Technique)
Stéphanie Tirtiat (Intl Tech Support)
Réponses et explications des Quizz 4D.
I. Quizz 1 - Généralités
1. Combien de styles peut-on appliquer à un bouton 3D ?
2. Que permet d'afficher 4D Live Window ?
3. Vous avez une licence 4D Server et 50 utilisateurs potentiels.
De combien de licences Client avec-vous besoin pour que vos utilisateurs
se connectent à raison de 10 connexions simultanées maximum ?
4. Comment utiliser le WSDL pour publier un Web service avec 4D Server ?
5. Résultat de la fonction arrondi (12 532,38 ;-2) ?
6. Dans un tri, l'index n'est utilisé que lorsque la sélection à trier
est suffisamment importante par rapport au nombre d'enregistrement dans la table.
Par défaut 4D utilise l'index si la sélection dépasse :
7. La commande "Valeurs distinctes" est applicable aux :
8. Je dispose d'une table "société" avec un champ "chiffre d'affaire".
J'ai créé des enregistrements dans cette table.
Pour obtenir les 5 plus gros chiffres d'affaire de la table, j'utilise la commande :
9. Quelle est la portée d'une variable locale définie dans une méthode
formulaire et utilisée dans un "Au cas ou/Fin de cas" pour chaque
événement formulaire ?
10. A quoi sert l'URL 4DWebTest ?
II. Quizz 2 - Généralités
1. Vous modifiez le nom d'une table ou d'un champ. Que faut-il changer dans votre développement ?
2. Quand y a-t-il déclenchement de l'événement formulaire "Sur validation" ?
3. Le langage 4D et la récursivité
4. Combien de requêtes sont échangées entre le Client et le Server lors de l'appel de la commande "Chercher" ?
5. Combien de commandes différentes sont possibles avec 4D Live Window ?
6. Que permet de faire une DDW (Developer Defined Windows) ?
7. J'ai besoin de récupérer des données 4D depuis une application tierce. J'accède à 4D avec...
8. Le nombre maximum d'enregistrements par table
9. Quelle(s) expression(s) retourne(nt) faux ?
10. Que cherche le code ci-dessous ?
III. Quizz 3 - 4D v11 SQL
1. Combien de tables par base est-il possible de créer ?
2. Combien de champs par table est-il possible de créer ?
3. Quel est le nombre maximum d'enregistrements par table ?
4. Quelle est la taille maximum d'un fichier de données ?
5. Est-il possible de supprimer physiquement une table ?
6. Est-il possible de supprimer physiquement un champ ?
7. Est-il possible de créer une sous-table ?
8. Le champ de type "float" existe-t-il ?
9. 4D v11 SQL prend-il en charge l'Unicode ?
10. Une Listbox 4D v11 SQL permet d'afficher :
I. Quizz 1 - Généralités
1. Combien de styles peut-on appliquer à un bouton 3D ?
Réponse : plus de 9
Les styles applicables sont :
· Aucun
· Décalage du fond
· Bouton poussoir
· Bouton barre outils
· Personnalisé
· Rond
· Petit carré système
· Office XP
· Bevel
· Bevel arrondi
|
Voir la documentation PDF "4D 2004 : Mode structure", page 491 :
Chapitre 6 Travailler avec les champs et les objets actifs
> Boutons 3D, Cases à cocher 3D et Boutons radio 3D
> Style de bouton
Téléchargez le manuel PDF 4D 2004 Mode Structure
|
2. Que permet d'afficher 4D Live Window ?
Réponse : toutes les propositions :
· contenu HTML
· images (JPEG, GIF, PNG)
· documents PDF
· documents Office sous Windows (Word, Excel, Powerpoint)
Extrait de la documentation 4D Live Window, page 6 :
Chapitre 4D Live Window
> Eléments requis
En plus du contenu HTTP valide, certains types de fichiers
peuvent être affichés directement, comme les images (JPEG, GIF, PNG)
et les documents PDF.
[...]
Sous Windows, l'affichage et la modification de documents Microsoft
Office est également prise en charge lorsque Microsoft Office est
installé.
3. Vous avez une licence 4D Server et 50 utilisateurs potentiels.
De combien de licences Client avec-vous besoin pour que vos utilisateurs
se connectent à raison de 10 connexions simultanées maximum ?
Réponse : 8
Deux connexions clientes sont disponibles avec toute licence 4D Server.
Donc, il y a déjà deux connexions simultanées fournies avec la licence 4D Server.
4. Comment utiliser le WSDL pour publier un Web service avec 4D Server ?
Réponse : cocher une boite dans la méthode à publier
Extrait de la documentation PDF "4D 2004 : mode structure", page 849 :
Chapitre 16 Publier ou utiliser des Web Services
> Génération du WSDL
Pour ajouter ou supprimer une méthode dans le WSDL, il suffit de
cocher ou désélectionner l'option correspondante dans les propriétés
de la méthode. 4ème Dimension met à jour instantanément le contenu du WSDL.
5. Résultat de la fonction arrondi (12 532,38 ;-2) ?
Réponse : 12500
Arrondi (nombre; nbDécimales) renvoie un Numérique
Si nbDécimales est négatif, l'arrondi se fait sur la partie entière de nombre.
Donc,
vRésultat := Arrondi (12 532,38 ;-2) ` vRésultat vaut 12500
6. Dans un tri, l'index n'est utilisé que lorsque la sélection à trier
est suffisamment importante par rapport au nombre d'enregistrement dans la table.
Par défaut 4D utilise l'index si la sélection dépasse :
Réponse : 9%
La réponse est dans la documentation de la commande FIXER PARAMETRE BASE :
Constante sélecteur |
Valeur |
Portée |
Ratio de tri séq |
1 |
Table et process courants |
Sélecteur = 1 (Ratio de tri séq)
• Valeurs possibles : 0 -> 100 000
• Description : Ratio d'enregistrements sélectionnés (par rapport au nombre total d'enregistrements)
au-dessous duquel les tris sont effectués en mode séquentiel. Ce ratio doit être exprimé sur 100 000.
La valeur par défaut est 9 000 (soit 9 %).
Explication et exemple :
La constante 5 de la commande FIXER PARAMETRE BASE permet de définir un nombre d'enregistrements compris
entre 0 et 100 000 en dessous duquel 4D n'utilisera pas l'index pour une recherche dans la sélection.
On peut aussi lire, dans la documentation de la commande CHERCHER DANS SELECTION,
que FIXER PARAMETRE BASE permet de définir si CHERCHER DANS SELECTION
doit utiliser ou non l'index, en fonction du nombre d'enregistrements présents dans la sélection.
Par exemple, une base contient 200 000 enregistrements. Une première recherche en sélectionne 5000.
4D a utilisé l'index et a affiché le résultat en 3 secondes (chiffre fictif pour l'exemple).
Dans ces 5000 enregistrements, l'utilisateur veut chercher une nouvelle information. 4D va passer par l'index et mettre autant
de temps en recherche pour ces 5000 enregistrements que pour les 200 000 de la base.
Pour éviter cela, on peut utiliser FIXER PARAMETRE BASE et le sélecteur 5 pour dire à 4D qu'en dessous
de 20 000 enregistrements (par exemple), il ne doit plus passer par l'index.
7. La commande "Valeurs distinctes" est applicable aux :
Réponse : champs indexables
La réponse est dans la documentation de la commande VALEURS DISTINCTES :
Vous pouvez passer à cette commande tout type de champ indexable, c'est-à-dire dont le type supporte
l'indexation mais qui n'est pas forcément indexé.
Toutefois, l'exécution de la commande avec des champs non indexés est plus lente qu'avec des champs indexés.
[...]
Vous pouvez aussi exécuter cette commande avec un sous-champ. Dans ce cas, le sous-champ doit être indexé.
8. Je dispose d'une table "société" avec un champ "chiffre d'affaire".
J'ai créé des enregistrements dans cette table.
Pour obtenir les 5 plus gros chiffres d'affaire de la table, j'utilise la commande :
Réponse : scan index
La réponse est dans la documentation de la commande SCAN INDEX :
Si vous passez <, SCAN INDEX retourne nombre enregistrements à partir de la fin de l'index
(valeurs supérieures). Si vous passez >, SCAN INDEX retourne nombre enregistrements à partir
du début de l'index (valeurs inférieures).
9. Quelle est la portée d'une variable locale définie dans une méthode
formulaire et utilisée dans un "Au cas ou/Fin de cas" pour chaque
événement formulaire ?
Réponse : dans la méthode formulaire, uniquement l'événement formulaire dans lequel la variable a été définie
La réponse est dans la documentation à propos des Variables :
Une variable locale, comme son nom l'indique, est locale à une méthode —
c'est-à-dire accessible uniquement à l'intérieur de la méthode dans laquelle
elle a été créée et inaccessible à l'extérieur de cette méthode.
Pour une variable, être locale à une méthode signifie avoir une portée locale.
Exemple de méthode formulaire avec gestion de certains événements :
Code exemple 4D |
Au cas ou
: (Evenement formulaire=Sur chargement)
$maVariableLocale:="Chargement enregistrement"
: (Evenement formulaire=Sur affichage corps)
$maVariableLocale:="Affichage enregistrement"
: (Evenement formulaire=Sur clic)
$maVariableLocale:="Clic !"
: (Evenement formulaire=Sur double clic)
$maVariableLocale:="Double clic !"
Sinon
$maVariableLocale:="" `vide
Fin de cas
|
La variable locale $maVariableLocale est donc accessible uniquement dans cette méthode
formulaire et, à l'intérieur de cette méthode, pour chaque cas.
10. A quoi sert l'URL 4DWebTest ?
Réponse : à tester le serveur Web
La réponse est dans la documentation Informations sur le site Web :
L'URL /4DWEBTEST permet de contrôler le statut du serveur Web.
Lorsque cet URL est appelé, 4D retourne un fichier texte contenant les champs HTTP suivants :
· Date
· Server
· User-Agent
II. Quizz 2 - Généralités
1. Vous modifiez le nom d'une table ou d'un champ. Que faut-il changer dans votre développement ?
Réponses :
· Toutes les occurences de l'ancien nom dans les libellés des formulaires.
· Rien, si les libellés des formulaires sont dynamiques
Extrait de la documentation PDF "4D 2004 Mode Structure", page 230 :
Chapitre 3 Concevoir la structure d'une base de données
> Modifier les champs et leurs propriétés
> Renommer les champs
Si vous changez un nom de champ, 4e Dimension met à jour le nom à
tous les endroits où est utilisé ce champ (dans les formats, les méthodes
et dans les fichiers physiques qui contiennent des spécifications
provenant des éditeurs de 4e Dimension).
Extrait de la documentation PDF "4D 2004 Mode Structure", page 299 :
Chapitre 4 Créer des formulaires
> Utiliser les options avancées de l'assistant de création de formulaires
> Options d'affichage
Noms de champs dynamiques : lorsque cette option est cochée, l'assistant
insère dans le formulaire les libellés des tables et des champs sous
forme de références dynamiques. Les libellés seront automatiquement
mis à jour en cas de modification des noms des tables ou des champs
dans la fenêtre de structure ou par le langage, à l'aide des commandes
Nom de la table et Nom du champ.
Extrait de la documentation PDF "4D 2004 Mode Structure", page 434 :
Chapitre 6 Travailler avec les champs et les objets actifs
> Insérer des libellés de tables et de champs dynamiques
Lorsque vous placez des libellés dynamiques dans vos formulaires, ils sont
automatiquement modifiés dans toute la base :
- soit lorsque vous modifiez le nom de la table ou du champ dans la
fenêtre de Structure,
[...]
2. Quand y a-t-il déclenchement de l'événement formulaire "Sur validation" ?
Réponse : L'utilisateur a cliqué sur OK ou changé d'enregistrement courant
dans un formulaire d'entrée, et un champ au moins a été modifié (y compris par la même valeur).
Extrait de la documentation PDF "4D 2004 Mode Structure", page 498 :
Chapitre 6 Travailler avec les champs et les objets actifs
> Les actions standard
Valider et Annuler : cliquer sur le bouton Valider sauvegarde
l'enregistrement et commande le retour en formulaire Liste. Le trigger
Sur sauvegarde nouvel enreg. ou Sur sauvegarde enregistrement et
l'événement formulaire Sur validation sont générés. [...]
Extrait de la documentation PDF "4D 2004 Mode Structure", page 498 :
Chapitre 6 Travailler avec les champs et les objets actifs
> Les Evénements des objets
Sur validation : l'utilisateur vient de valider l'enregistrement à l'aide
d'un bouton de validation ou d'un bouton de navigation parmi les
enregistrements (Enregistrement précédent, Enregistrement suivant,
Premier enregistrement et Dernier enregistrement).
Extrait de la documentation PDF "4D 2004 Mode Structure", page 631 :
Chapitre 8 Créer des méthodes
> Les événements des objets et des formulaires
Sur validation : l'enregistrement a été validé par l'utilisateur.
3. Le langage 4D et la récursivité
Réponse : Le langage 4D permet l'écriture de commandes et de fonctions récursives.
Extrait de la documentation PDF "4D 2004.6 Langage", page 146 :
Présentation du langage
> Méthodes projet
> Méthode projet récursives
Des méthodes projet peuvent s'appeler les unes les autres, et en particulier :
• Une méthode A peut appeler une méthode B, qui appelle A, donc A appelle B de nouveau,
etc.
• Une méthode peut s'appeler elle-même.
Cela s'appelle la récursivité. Le langage de 4D supporte pleinement la récursivité.
4. Combien de requêtes sont échangées entre le Client et le Server lors de l'appel de la commande "Chercher" ?
Réponses : 2, 3, 4
Ca dépend du contexte :
- 2 requêtes si pas de résultat
- 3 requêtes si l'enregistrement n'est pas verrouillé
- 4 requêtes si l'enregistrement est verrouillé
La commande CHERCHER charge automatiquement l'enregistrement courant de la table.
Si la table est en lecture/écriture, l'enregistrement chargé ne sera pas verrouillé, sauf s'il est déjà chargé par un autre utilisateur.
Si la table est en lecture seule, l'enregistrement chargé est verrouillé.
5. Combien de commandes différentes sont possibles avec 4D Live Window ?
Réponse : 6
Les 6 commandes sont :
· Web_SetURL
· Web_GetURL
· Web_Back
· Web_Forward
· Web_GetContent
· Web_SetPreferences
6. Que permet de faire une DDW (Developer Defined Windows) ?
Réponse : toutes
Les trois propositions sont correctes :
· ouvrir un lien vers un site externe du type http://www.4d.com
· renvoyer au code Web existant du développeur avec un lien du type /4dcgi/mamethode
· recevoir un BLOB HTML
Extrait de la documentation PDF "4D Ajax Framework, guide du développeur", page 26 :
Création de vues DDW
Les DDW (Developer Defined Windows, fenêtres définies par le
développeur) donnent au développeur la possibilité d'ajouter sur le
client une fenêtre avec le contenu HTML de leur choix. Le développeur
peut faire en sorte que la fenêtre affiche des données de type BLOB
HTML ou un contenu provenant de toute adresse URL valide. Une
DDW peut afficher tout ce qui est affichable dans un navigateur Web.
7. J'ai besoin de récupérer des données 4D depuis une application tierce. J'accède à 4D avec...
Réponses :
· le driver ODBC for 4D Server
· le driver JDBC for 4D Server
· le serveur web services de 4D
Le driver ODBC for 4D Server permet à une source ODBC de se connecter à une base 4D tournant avec 4D Server sur Windows.
Le driver JDBC for 4D Server permet à une application Java de se connecter à une base 4D tournant avec 4D Server sur MacOS et Windows.
Le serveur 4D de Web Services permet à une application cliente d'interroger une base 4D tournant avec 4D ou 4D Server, sur MacOS et sur Windows.
Alors que le plugin 4D ODBC permet à une base 4D de se connecter vers une source ODBC, y compris une autre base 4D.
Et le plugin 4D Open for 4D permet l'exploitation d'une base 4D par une autre base 4D.
8. Le nombre maximum d'enregistrements par table
Réponse : 16 millions
9. Quelle(s) expression(s) retourne(nt) faux ?
Réponses :
· "abcdefghij"="abcd@@ghij"
· "abcdefghij"="abcde@ghi"
Le joker (@) remplace un ou plusieurs caractères. Il signifie "un ou plusieurs caractères sinon rien".
De plus, un double joker (@@) placé dans une chaîne renvoie à FAUX.
Testez vous-mêmes :
code 4D |
Si ("abcdefghij" = "abcdefghij@")
ALERTE("true")
Sinon
ALERTE("false")
Fin de si
Si ("abcdefghij"="abcd@fghi@")
ALERTE("true")
Sinon
ALERTE("false")
Fin de si
Si ("abcdefghij"="abcd@efghij")
ALERTE("true")
Sinon
ALERTE("false")
Fin de si
Si ("abcdefghij"="abcd@@ghij")
ALERTE("true")
Sinon
ALERTE("false")
Fin de si
Si ("abcdefghij" = "@abcde@fghij@")
ALERTE("true")
Sinon
ALERTE("false")
Fin de si
Si ("abcdefghij"="abcde@ghi")
ALERTE("true")
Sinon
ALERTE("false")
Fin de si
|
10. Que cherche le code ci-dessous ?
Réponse : Les personnes qui habitent Paris ou dont la première lettre du nom nom est comprise entre A et M inclus.
L'astérisque en dernier paramètre indique qu'un autre critère de recherche est à prendre en compte et la recherche est mise en attente.
L'opérateur '|' signifie 'ou'.
La recherche n'est pas 'case sensitive', donc "n" = "N".
L'opérateur > signifie inférieur à 'n' dans notre cas.
Exemples :
code 4D |
CHERCHER([PERSONNES];[PERSONNES]CodePostal="75@";*) `critère 1
CHERCHER([PERSONNES]; | ;[PERSONNES]Nom>"n") `OU critère 2
|
Pierre à Toulouse ne sera pas inclus.
Pierre à Paris sera inclus.
Claire à Toulouse sera incluse.
Claire à Paris sera incluse.
code 4D |
CHERCHER([PERSONNES];[PERSONNES]CodePostal="75@";*) `critère 1
CHERCHER([PERSONNES]; & ;[PERSONNES]Nom>"n") `ET critère 2
|
Pierre à Toulouse ne sera pas inclus.
Pierre à Paris ne sera pas inclus.
Claire à Toulouse ne sera pas incluse.
Claire à Paris sera incluse.
III. Quizz 3 - 4D v11 SQL
1. Combien de tables par base est-il possible de créer ?
Réponse : 32 767
2. Combien de champs par table est-il possible de créer ?
Réponse : 32 767
3. Quel est le nombre maximum d'enregistrements par table ?
Réponse : 1 milliard
4. Quelle est la taille maximum d'un fichier de données ?
Réponse : illimitée
5. Est-il possible de supprimer physiquement une table ?
Réponse : Oui
Extrait de la documentation PDF "4D v11 SQL Mise à jour", page 34 :
Chapitre 3 Architecture des bases de données 4D v11
Extension des capacités
Suppression des tables et des champs
Dans 4D v11, il est possible de supprimer physiquement les tables et les
champs.
Cette opération peut être effectuée via le moteur SQL de 4D ou via
l'éditeur de structure.
6. Est-il possible de supprimer physiquement un champ ?
Réponse : Oui
Extrait de la documentation PDF "4D v11 SQL Mise à jour", page 34 :
Chapitre 3 Architecture des bases de données 4D v11
Extension des capacités
Suppression des tables et des champs
Dans 4D v11, il est possible de supprimer physiquement les tables et les
champs.
Cette opération peut être effectuée via le moteur SQL de 4D ou via
l'éditeur de structure.
7. Est-il possible de créer une sous-table ?
Réponse : Non
Extrait de la documentation PDF "4D v11 SQL Mise à jour", page 44 :
Chapitre 3 Architecture des bases de données 4D v11
Conversion des sous-tables
Les sous-tables ne sont plus prises en charge dans 4D à compter de la
version 11. Dans les nouvelles bases, la création de sous-tables est
impossible.
8. Le champ de type "float" existe-t-il ?
Réponse : Oui
Extrait de la documentation PDF "4D v11 SQL Mise à jour", page 34 :
Chapitre 3 Architecture des bases de données 4D v11
Extensions des capacités
Nouveaux types de champs
Deux nouveaux types de champs sont disponibles dans l'éditeur de
structure de 4D v11 : Entier 64 bits et Float.
· Entier 64 bits : Entier sur 8 octets permettant de manipuler des valeurs
comprises dans l'intervalle -2^63..(2^63)-1
· Float : Nombre à virgule flottante. Les nombres à virgule flottante permettent
de stocker des valeurs réelles sans perte de précision.
Attention, dans la version actuelle de 4D v11, ces types de champs sont
exploités uniquement par le moteur SQL de 4D
Extrait de la documentation PDF "4D v11 SQL Mise à jour", page 120 :
Chapitre 5 Editeur de structure
Prise en charge des attributs SQL
Types Entier 64 bits et Float
La liste des types de champs comporte deux nouveaux types : Entier 64
bits et Float.
Ces types de champs sont liés à l'utilisation du moteur SQL de la base.
Dans ce contexte, ils permettent de stocker des entiers 64 bits et des nombre à virgule flottante.
9. 4D v11 SQL prend-il en charge l'Unicode ?
Réponse : Oui
Extrait de la documentation PDF "4D v11 SQL Mise à jour", page 67 :
Chapitre 3 Architecture des bases de données 4D v11
Prise en charge de l'Unicode
La prise en charge du jeu de caractères Unicode a été étendue dans 4D
v11. Désormais, le moteur de la base de données et le langage
manipulent nativement les chaînes de caractères en Unicode. Cette
nouveauté accélère les traitements basés sur les chaînes de caractères et
facilite l'internationalisation des applications 4D.
Pour des raisons de compatibilité, 4D v11 peut toujours fonctionner
dans le mode précédent (basé sur le jeu de caractères ASCII Mac) via
une nouvelle option des Préférences.
10. Une Listbox 4D v11 SQL permet d'afficher :
Réponse : Des champs, des tableaux et des expressions
Extrait de la documentation PDF "4D v11 SQL Mise à jour", page 148 :
Chapitre 7 Formulaires et objets
List box
Associer des champs ou des expressions aux list box
Plusieurs nouveautés relatives aux objets de type List box sont
disponibles dans 4D v11 :
· possibilité d'associer des champs ou des expressions aux colonnes
des list box,
· possibilité de remplir une list box avec le résultat d'une requête
SQL [tableau].
[...]
Dans 4D v11, il est possible d'associer des champs ou des expressions à
des colonnes de list box. Dans les versions précédentes de 4D, seuls des
tableaux pouvaient être associés aux list box.
Copyright © 2007 4D s.a.
Aucune reproduction, même partielle, ne peut être faite
de ce site ni de l'ensemble de son contenu : textes, documents, images, etc.
sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à
trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.