Access
 sql >> Base de données >  >> RDS >> Access

Paramètres de chaîne de connexion pour Schema.ini

Paramètres de chaîne de connexion pour Schema.ini

Faire un schema.ini pour ouvrir ou lier des fichiers texte à partir d'Access est l'une des deux méthodes possibles qui peuvent être utilisées pour travailler avec des données contenues dans les fichiers à partir d'Access. Dans l'article précédent, nous avons examiné les paramètres de chaîne de connexion du fichier texte. Nous avons également discuté de la nécessité de disposer d'informations de schéma supplémentaires pour aider Access à analyser les fichiers texte. Microsoft a une page sur le schema.ini , mais il y a peu de choses qui ne sont pas immédiatement claires, nous allons donc en parler ici.

schema.ini fichier

Chaque dossier peut avoir un seul fichier nommé schema.ini où nous pouvons définir tous les formats possibles de fichiers texte que nous espérons trouver dans le dossier. Pour chaque fichier texte, nous devons commencer une section avec le nom du fichier, puis décrire la structure. Nous commencerons par une section d'échantillon minimale, puis analyserons chaque partie. Il n'est pas nécessaire d'énumérer tous les fichiers texte. Tous les fichiers texte non décrits par le schema.ini sera simplement géré en utilisant le paramètre par défaut pour le meilleur ou pour le pire. Regardons la structure du schema.ini .

[products.txt]

Format=CSVDelimited
ColNameHeader=True
MaxScanRows=0

Col1=Products Text
Col2=Count Long

Notez que la première ligne pour commencer une section doit faire référence à un fichier texte. Il doit également avoir des crochets pour indiquer un début de section. Comme vous le savez peut-être déjà, un schema.ini peut décrire plusieurs fichiers texte, de sorte que la ligne entre crochets permet de séparer le schéma de chaque fichier texte.

L'ensemble de lignes suivant traite du format général du fichier et de la manière dont Access doit traiter les fichiers texte. Nous pouvons indiquer si un fichier texte a des en-têtes, combien de lignes analyser, quelle page de code utiliser, etc.

Le dernier ensemble de lignes décrit les colonnes individuelles, leur nom, leur type de données et leur largeur.

Nous examinerons les options valides et les valeurs possibles pour ces 2 ensembles.

Options pour décrire la structure globale du fichier texte

Vous verrez une liste d'options valides disponibles pour décrire le format général du fichier texte. Il est typique de spécifier au minimum le Format et ColNameHeader mais tous les contenus possibles sont facultatifs. Chaque fois qu'elles sont omises, les valeurs par défaut seront utilisées comme indiqué ci-dessous. Voyons comment nous pouvons décrire le format d'un fichier texte donné.

Options de structure globale

Comme indiqué, ceux-ci sont facultatifs mais rarement omis. Néanmoins, les valeurs par défaut proviennent des clés de registre du moteur de texte. Vous trouverez plus de détails sur les clés de registre ici.

  • Format :Indique le format des fichiers texte. Si omis, utilise la clé de registre du moteur de texte, Format . Les valeurs valides sont :
    • TabDelimited :Des tabulations délimitent les colonnes.
    • CSVDelimited :Des virgules délimitent les colonnes comme un fichier CSV.
    • Delimited(*) :Un seul caractère délimite les colonnes. Peut être n'importe quel caractère sauf " personnage. Par exemple, un fichier texte délimité par | le caractère doit indiquer Format=Delimited(|) .
    • FixedLength :Les colonnes sont de longueur fixe; le contenu doit être complété en conséquence. Toutes les colonnes doivent avoir une largeur définie.

  • CharacterSet :Utilise une page de code spécifique pour lire le fichier texte. Les valeurs possibles peuvent être ANSI , OEM , Unicode ou toute valeur numérique représentant les pages de code souhaitées. Pour localiser toutes les pages de code possibles prises en charge sur votre machine Windows, recherchez dans la clé de registre Computer\HKEY_CLASSES_ROOT\MIME\Database\Codepage\ . Par exemple, si vous souhaitez utiliser l'encodage utf-8, vous pouvez spécifier CharacterSet=65001 .
  • ColNameHeader :Indique si la première ligne contient les noms des colonnes. En cas d'omission, utilise la clé de registre du moteur de texte, FirstRowHasNames . Les valeurs peuvent être soit True ou False .
  • MaxScanRows :Nombre de lignes Access doit analyser un fichier texte pour deviner le type de données possible. S'il est défini sur 0, Access analysera l'intégralité du fichier. La clé de registre du moteur de texte MaxScanRows est utilisé lorsqu'il est omis.

Options de localisation

Ces options concernent principalement la localisation des données encodées en dates, heures ou devises. Toutes ces options sont facultatives et chaque fois qu'elles sont omises, les paramètres régionaux de Windows sont utilisés.

  • DateTimeFormat :Le format de date/heure à utiliser.
  • DecimalSymbol  :Tout caractère unique utilisé comme séparateur entre les parties entières et fractionnaires d'un nombre.
  • NumberDigits :Nombre de chiffres utilisés dans la partie fractionnaire d'un nombre.
  • NumberLeadingZeroes :Indique s'il doit y avoir un zéro non significatif pour les nombres supérieurs à -1 et inférieurs à 1. Doit être soit True ou False .
  • CurrencySymbol :Identifie le symbole à interpréter comme une devise.
  • CurrencyPosFormat :Décrit comment les montants monétaires doivent être déclarés dans le fichier texte. Il y a quatre valeurs valides à utiliser pour ce paramètre représenté par les nombres 0 à 3. Notez que l'exemple utilise $ mais en utilisation réelle, il utilisera le symbole monétaire réel défini par CurrencySymbol ou par les paramètres de Windows.
    • 0 :Préfixe sans espace (par exemple $1)
    • 1 :Suffixe sans espace (1$)
    • 2 :Préfixe avec un espace entre ($ 1)
    • 3 :Suffixe avec un espace entre (1 $)

  • CurrencyDigits  :Nombre de chiffres dans la partie fractionnaire d'un montant en devise.
  • CurrencyNegFormat :Indique le formatage d'un montant en devise négatif. Il s'agit d'une valeur comprise entre 0 et 15, comme indiqué ci-dessous. Notez que l'exemple utilise $ mais en utilisation réelle, il utilisera le symbole monétaire réel défini par CurrencySymbol ou par les paramètres de Windows.
    • 0 :(1 $)
    • 1 :-$1
    • 2 :$-1
    • 3 :1 $-
    • 4 :(1$)
    • 5 :-$1
    • 6 :1-$
    • 7 :1$-
    • 8 :-1 $
    • 9 :-$ 1
    • 10 :1 $-
    • 11 :$ 1-
    • 12 :$ -1
    • 13 :1- $
    • 14 :(1 $)
    • 15 :(1 $)

  • CurrencyThousandSymbol :Un seul caractère pour indiquer la séparation des milliers dans un montant en devise. S'il est omis, le paramètre de Windows est utilisé.
  • CurrencyDecimalSymbol :Un seul caractère pour indiquer la décimale d'un montant en devise.

Options de définition de colonne

Nous avons vu comment nous pouvons gérer le format général du fichier, mais nous devons donner plus d'informations sur la colonne individuelle. Plus important encore, nous devons être en mesure de mapper les types de données attendus des colonnes. Par conséquent, la troisième section du schema.ini doit décrire chaque colonne, avec autant de lignes qu'il y a de colonnes dans le fichier texte cible. Le format général de la définition de colonne peut ressembler à ceci :

ColN=Name Type Width #

Il est important de noter qu'à l'exception du préfixe ColN= , toutes les parties sont facultatives, mais si vous pouvez les omettre, cela dépendra d'autres facteurs, comme indiqué ci-dessous.

  • ColN= :Un préfixe obligatoire qui doit figurer à chaque début de ligne. Le N doit être un nombre commençant à 1 et croissant.
  • Name :Donne le nom à une colonne. Si le ColNameHeader est défini sur True , le Name paramètre peut être omis. Cependant, si c'est False , alors vous devez spécifier le Name pour éviter les erreurs.
  • Type :Indique le type de données. Si omis, Access utilisera sa meilleure estimation basée sur les lignes analysées, régies par le MaxScanRows option. Le type doit être défini sur l'une de ces valeurs valides. Les synonymes sont listés après le mot clé canonique :
    • Bit , Boolean
    • Byte
    • Short , Integer
    • Long
    • Currency
    • Single
    • Double , Float
    • DateTime
    • Text , Char
    • Memo , LongChar
    • Date

  • Width # :Indique la largeur de la colonne. Si cela est spécifié, le littéral Width doit être inclus et ensuite suivi d'un nombre. Si vous souhaitez indiquer qu'une colonne a une largeur de 50 caractères, vous devez écrire :
    Col17=ProductDescription Text Width 50
    Pour les fichiers à largeur fixe, la Width est obligatoire. Avec les fichiers délimités, vous pouvez l'omettre. Toutefois, Access utilisera ces informations pour les champs de texte afin de limiter la longueur et éventuellement de tronquer le contenu. Pour les autres types de données, la largeur n'a aucun effet.

Conclusion

Vous avez vu comment contrôler le schéma d'un fichier texte à l'aide d'un schema.ini que vous pouvez créer dans un dossier où résident les fichiers texte. Vous pouvez également voir que le schema.ini vous donne un contrôle plus précis sur les paramètres régionaux, ce qui peut être utile si vous traitez des données internationales et que vous ne pouvez pas contrôler la mise en forme de la devise ou de la date. Dans le prochain article, vous examinerez la méthode alternative de description de la structure du fichier texte à l'aide des tables système d'Access.