Commande LOCATE

Recherche le premier enregistrement qui correspond à la valeur ou à la condition spécifiée ou accède au numéro d'enregistrement spécifié.

Syntaxe

LOCATE {IF test <WHILE test> <FIRST plage|NEXT plage>|RECORD num}

Paramètres

Nom Description

IF test

Valeur ou condition à rechercher. Les valeurs littérales de caractère doivent être entre guillemets et les valeurs DateHeure doivent être entre guillemets inversés.

WHILE test

optionnel

Expression conditionnelle qui doit être vraie afin de traiter chaque enregistrement. La commande est exécutée jusqu'à ce que la condition soit évaluée comme fausse ou lorsque la fin de la table est atteinte.

Remarque

Si vous utilisez WHILE conjointement avec FIRST ou NEXT, le traitement des enregistrements s'arrête dès qu'une limite est atteinte.

FIRST plage | NEXT plage

optionnel

Le nombre d'enregistrements à traiter :

  • FIRST pour commencer le traitement à partir du premier enregistrement jusqu'à ce que le nombre d'enregistrements spécifié soit atteint
  • NEXT pour commencer le traitement à partir de l'enregistrement actuellement sélectionné jusqu'à ce que le nombre d'enregistrements spécifié soit atteint

Utilisez plage pour indiquer le nombre d'enregistrements à traiter.

Si vous ignorez FIRST et NEXT, tous les enregistrements sont traités par défaut.

RECORD num

Numéro d'enregistrement à rechercher.

Exemples

Rechercher le premier enregistrement correspondant à une valeur spécifiée

Dans les exemples suivants, la commande LOCATE est utilisée pour rechercher la première occurrence d'une valeur spécifique dans une table :

LOCATE IF Nom_Fournisseur = "Équipement uni"
LOCATE IF Nom_Fournisseur = "Uni"
LOCATE IF Montant_Facture > 1000
LOCATE IF Date_facture = `20141231`

Rechercher le premier enregistrement correspondant à une condition ou à une expression spécifiée

Dans les exemples suivants, la commande LOCATE est utilisée pour rechercher la première occurrence d'une condition ou d'une expression spécifique dans une table :

LOCATE IF Nom_Fournisseur = "Équipement uni" AND Montant_Facture > 1000 AND Date_facture > `20140930`
LOCATE IF Ville_fournisseur = v_ville

Rechercher un enregistrement par numéro d'enregistrement

Dans l'exemple suivant, la commande LOCATE est utilisée pour accéder à un enregistrement spécifique dans une table :

LOCATE RECORD 50

Remarques

Remarque

Pour plus d'informations sur le fonctionnement de cette commande, consultez le Aide d'Analytics.

Fonctionnement

Utilisez la commande LOCATE pour accéder directement au premier enregistrement d'une table correspondant à la valeur ou à la condition spécifiée.

Si la valeur ou la condition spécifiée est trouvée, le premier enregistrement correspondant de la table est sélectionné. Si la valeur ou la condition spécifiée n'est pas trouvée, la table est placée sur le premier enregistrement.

LOCATE permet aussi de passer directement à un numéro d'enregistrement spécifique

Comparaison de LOCATE avec FIND et SEEK

À la différence des commandes FIND et SEEK, la commande LOCATE ne se limite pas à la recherche dans une table indexée ou dans un champ caractère unique. À l'aide de la commande LOCATE, vous pouvez rechercher n'importe quel type de littéral ou d'expression utilisant n'importe quel type de données ou différents types de données.

Lorsqu'elle est utilisée pour effectuer une recherche dans une table non indexée, la commande LOCATE peut être beaucoup plus lente que FIND et SEEK, car elle doit traiter chaque enregistrement de la table de manière séquentielle. La durée de traitement requise dépend de la taille de la table, de l'emplacement d'un enregistrement correspondant et de la réduction ou non du périmètre de la recherche à l'aide de WHILE, FIRST ou NEXT.

Rapprochement partiel pris en charge

Le rapprochement partiel est pris en charge pour les recherches de caractères. La valeur de recherche peut être contenue par une valeur plus longue dans le ou les champs dans lesquels la recherche est effectuée. Toutefois, les valeurs de recherche doivent apparaître au début des champs pour pouvoir constituer un rapprochement.

Activation ou désactivation du rapprochement partiel

Vous pouvez activer ou désactiver le rapprochement partiel à l'aide de la commande SET ou d'un paramètre dans la boîte de dialogue Options :

Activer le rapprochement partiel Désactiver le rapprochement partiel

Spécifiez : SET EXACT OFF

ou

Décochez : Comparaisons exactes de caractères dans la boîte de dialogue Options (Outils > Options > Table)

Résultat : La valeur de recherche peut être contenue par une valeur plus longue dans le ou les champs dans lesquels la recherche est effectuée. La valeur de recherche doit apparaître au début d'un champ pour constituer un rapprochement.

Spécifiez : SET EXACT ON

ou

Sélectionnez : Comparaisons exactes de caractères dans la boîte de dialogue Options (Outils > Options > Table)

Résultat : La valeur de recherche doit correspondre exactement à une valeur dans un champ pour constituer un rapprochement.

Pour plus d'informations sur SET EXACT, consultez la rubrique Commande SET.

Pour plus d'informations sur l'option Comparaisons exactes de caractères, consultez la rubrique Onglet Table (boîte de dialogue Options).

Guide de création de scripts ACL 14.1