titre_site.jpg (51607 octets)

FOR()

Instruction dbase IV et suivants

Renvoie la clause FOR utilisée pour créer un repère d'index ou un fichier index spécifié.

Syntaxe

FOR( [ [<fichier .mdx expC>,] <position d'index expN> [,<alias>] ] )

<fichier .mdx exp C>

Le fichier index multiple qui contient le repère d'index à vérifier.

<position d'index expN>

La position d'un repère d'index d'un fichier .MDX ou la position d'un fichier index dans la liste des index ouverts pour la table en cours ou la table spécifiée.

<alias>

Un numéro de zone de travail (1 à 225), une lettre de zone de travail (A à J) ou le nom d'alias. La lettre de zone de travail ou le nom d'alias doit être entouré de guillemets.

 ico_MsDos.jpg (1668 octets)  dbasedos.gif (376 octets) vdb5.gif (351 octets) Description


FOR( ) renvoie la clause FOR utilisée avec la commande INDEX pour créer le repère d'index .MDX spécifié pour la table en cours ou la table spécifiée. La fonction FOR( ) évalue la clause FOR pour l'index maître de la table en cours, le repère d'index à la position spécifiée dans la liste d'index ouverts pour une table, ou le repère d'index dans le fichier .MDX spécifié.
Si aucun fichier .MDX n'est spécifié, FOR( ) évalue l'index à la position spécifiée dans la liste de tous les index ouverts dans la même zone de travail. La fonction FOR( ) vérifie d'abord les repères d'index du fichier .MDX d'exploitation et des fichiers .NDX, puis les repères d'index des autres fichiers .MDX.

FOR( ) renvoie une chaîne vide ("") s'il n'y a pas de repère d'index à la position spécifiée, si l'index à la position spécifiée est un fichier .NDX ou si le repère d'index spécifié n'a pas été créé avec une clause FOR. FOR( ) renvoie aussi une chaîne vide ("") si vous ne spécifiez pas une position de repère d'index et si la table ne possède pas d'index maître.
Vous pouvez utiliser TAGNO( ) pour déterminer le numéro d'ordre d'un index ou d'un repère d'index spécifié. L'ordre des index ouverts pour la table spécifiée reste le même tant que vous n'avez pas spécifié un autre ordre d'index avec USE, SET INDEX ou INDEX.

 

Plus2_5-Icon.jpg (1250 octets) xDML vers ooDML

Il n'y a pas d'équivalent direct en OODML, mais il existe une propriété forExpression de l'index. Récupérer cette information prend un peu de travail, parce qu'on y arrive par une fonctionnalité non documentée de l'objet TableDef (ceci le sera pour une version future de l'aide en ligne).

Un petit exemple de cela est:

t = new TableDef()

t.tableName := "SomeTable"

t.load()

? t.indexes[ "indexname" ].forExpression

// or

? t.indexes[ 1 ].forExpression

 

Code      ico_dbIII.jpg (1345 octets)   dbasedos.gif (376 octets)   vdb5.gif (351 octets)   Plus2_5-Icon.jpg (1250 octets)

Dans l'exemple suivant, FOR( ) est utilisée pour déterminer le jeu de conditions dans la clause FOR de l'index :

DELETE FILE SOCTEMP.MDX

* Crée un fichier MDX temporaire

USE SOCIETE EXCLUSIVE

INDEX ON C_SOCIETE  TAG C_SOCIETE OF SOCTEMP FOR C_SOCIETE = "D"

INDEX ON SOCIETE TAG SOCIETE OF SOCTEMP

INDEX ON VILLE TAG VILLE OF SOCTEMP FOR CODE_POST = "9"

? "clause TAG et FOR"

? TAG(1),FOR(1)

* TAG(1) et FOR(1) renvoient la clause TAG et FOR

* pour le premier index du fichier d'exploitation

* MDX, SOCIETE.MDX

? "1", TAG("SOCTEMP",1), FOR("SOCTEMP",1)

* la clause FOR( ) de l'index COMPCODE est SOCTEMP = "D"

? "2", TAG("SOCTEMP",2), FOR("SOCTEMP",2)

* la clause FOR( ) de l'index SOCIETE est vide

? "3", TAG("SOCTEMP",3), FOR("SOCTEMP",3)

* la clause FOR( ) de l'index VILLE est CODE_POST="9"

 

 

retour

Sources :

Aide Visual dbase V5.7
http://www.dbase.com/Knowledgebase/INT/xb2vdb7oodml/x2oodml.htm
Aide dBase Plus 2.6.0

Retour à l'accueil

Si vous voyez des erreurs, ou souhaitez apporter des compléments, n'hésitez pas à le signaler.

Dernière modification : jeudi 05 août 2010

©  M.Abraham.