sql >> Database >  >> RDS >> Access

Verbindingsreeksparameters voor Schema.ini

Verbindingsreeksparameters voor Schema.ini

Een schema.ini maken tekstbestanden openen of koppelen vanuit Access is een van de twee mogelijke methoden die kunnen worden gebruikt om te werken met gegevens in de bestanden van Access. In het vorige artikel hebben we gekeken naar de verbindingsreeksparameters van het tekstbestand. We bespraken ook de noodzaak om aanvullende schema-informatie te hebben om Access te helpen bij het ontleden van de tekstbestanden. Microsoft heeft een pagina over de schema.ini , maar er zijn een paar dingen die niet meteen duidelijk zijn, dus we zullen het hier bespreken.

schema.ini bestand

Elke map kan een enkel bestand hebben met de naam schema.ini voor waar we alle mogelijke formaten van tekstbestanden kunnen definiëren die we in de map verwachten te vinden. Voor elk tekstbestand moeten we een sectie beginnen met de bestandsnaam en vervolgens de structuur beschrijven. We beginnen met een minimale steekproefsectie en analyseren vervolgens elk onderdeel. Het is niet nodig om alle tekstbestanden op te sommen. Alle tekstbestanden die niet worden beschreven door de schema.ini zal eenvoudig worden afgehandeld met behulp van de standaardinstelling voor beter of slechter. Laten we eens kijken naar de structuur van de schema.ini .

[products.txt]

Format=CSVDelimited
ColNameHeader=True
MaxScanRows=0

Col1=Products Text
Col2=Count Long

Merk op dat de eerste regel om een ​​sectie te starten moet verwijzen naar een tekstbestand. Het moet ook haakjes hebben om het begin van een sectie aan te geven. Zoals je misschien al weet, een schema.ini kan meer dan één tekstbestand beschrijven, dus de regel tussen haakjes helpt het schema van elk tekstbestand gescheiden te houden.

De volgende reeks regels gaat over de algemene indeling van het bestand en hoe Access de tekstbestanden moet verwerken. We kunnen aangeven of een tekstbestand kopteksten heeft, hoeveel rijen moeten worden gescand, welke codepagina moet worden gebruikt, enzovoort.

De laatste reeks regels beschrijft de afzonderlijke kolommen, hun naam, gegevenstype en breedte.

We zullen de geldige opties en mogelijke waarden voor die 2 sets bekijken.

Opties voor het beschrijven van de algemene structuur van het tekstbestand

U ziet een lijst met geldige beschikbare opties om de algemene indeling van het tekstbestand te beschrijven. Het is gebruikelijk om minimaal het Format . te specificeren en ColNameHeader maar alle mogelijke inhoud is optioneel. Wanneer ze worden weggelaten, worden de standaardwaarden gebruikt zoals hieronder aangegeven. Laten we eens kijken hoe we het formaat van een bepaald tekstbestand kunnen beschrijven.

Algemene structuuropties

Zoals opgemerkt, zijn deze optioneel, maar worden ze zelden weggelaten. Desalniettemin zijn de standaardwaarden afkomstig van de registersleutels van de tekstengine. Meer details over de registersleutels vindt u hier.

  • Format :Geeft het formaat van de tekstbestanden aan. Indien weggelaten, gebruikt u de registersleutel Text engine, Format . Geldige waarden zijn:
    • TabDelimited :Tabs scheiden de kolommen.
    • CSVDelimited :komma's scheiden de kolommen als een CSV-bestand.
    • Delimited(*) :Een enkel teken begrenst de kolommen. Kan elk teken zijn, behalve de " karakter. Bijvoorbeeld een tekstbestand gescheiden door | karakter zou Format=Delimited(|) . moeten rapporteren .
    • FixedLength :De kolommen hebben een vaste lengte; de inhoud moet dienovereenkomstig worden opgevuld. Alle kolommen moeten een gedefinieerde breedte hebben.

  • CharacterSet :gebruikt een specifieke codetabel om het tekstbestand te lezen. Mogelijke waarden kunnen zijn ANSI , OEM , Unicode of numerieke waarden die de gewenste codetabellen vertegenwoordigen. Om alle mogelijke codetabellen te vinden die op uw Windows-computer worden ondersteund, kijkt u in de registersleutel Computer\HKEY_CLASSES_ROOT\MIME\Database\Codepage\ . Als u bijvoorbeeld utf-8-codering wilt gebruiken, kunt u CharacterSet=65001 opgeven .
  • ColNameHeader :Geeft aan of de eerste regel de kolomnamen bevat. Gebruikt, indien weggelaten, de registersleutel van de tekstengine, FirstRowHasNames . Waarden kunnen ofwel True . zijn of False .
  • MaxScanRows :Aantal rijen Access moet een tekstbestand scannen om het mogelijke gegevenstype te raden. Indien ingesteld op 0, scant Access het hele bestand. De registersleutel van de tekstengine MaxScanRows wordt gebruikt als het wordt weggelaten.

Lokalisatie-opties

Die opties hebben voornamelijk betrekking op het lokaliseren van de gegevens die zijn gecodeerd in datums, tijden of valuta. Al deze opties zijn optioneel en wanneer ze worden weggelaten, worden de regio-instellingen van Windows gebruikt.

  • DateTimeFormat :Het te gebruiken datum-/tijdformaat.
  • DecimalSymbol :elk afzonderlijk teken dat wordt gebruikt als scheidingsteken tussen integrale en fractionele delen van een getal.
  • NumberDigits :Aantal cijfers dat wordt gebruikt in het breukgedeelte van een getal.
  • NumberLeadingZeroes :Geeft aan of er een voorloopnul moet zijn voor getallen groter dan -1 en kleiner dan 1. Moet ofwel True zijn of False .
  • CurrencySymbol :Identificeert het symbool dat moet worden geïnterpreteerd als een valuta.
  • CurrencyPosFormat :Beschrijft hoe geldbedragen in het tekstbestand moeten worden gerapporteerd. Er zijn vier geldige waarden om te gebruiken voor deze instelling, weergegeven door nummer 0 tot 3. Merk op dat in het voorbeeld $ wordt gebruikt. maar bij daadwerkelijk gebruik zal het het daadwerkelijke valutasymbool gebruiken dat is gedefinieerd door CurrencySymbol of door de instelling van Windows.
    • 0 :Prefix zonder spatie (bijv. $1)
    • 1 :Achtervoegsel zonder spatie (1$)
    • 2 :Prefix met een spatie ertussen ($ 1)
    • 3 :Achtervoegsel met een spatie ertussen (1 $)

  • CurrencyDigits :Aantal cijfers in fractionele delen van een valutabedrag.
  • CurrencyNegFormat :Geeft de opmaak aan van een negatief valutabedrag. Het is een waarde tussen 0-15, zoals hieronder weergegeven. Merk op dat het voorbeeld $ . gebruikt maar bij daadwerkelijk gebruik zal het het daadwerkelijke valutasymbool gebruiken dat is gedefinieerd door CurrencySymbol of door de instelling van 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 :Een enkel teken om het scheiden van duizendtallen in een valutabedrag aan te geven. Indien weggelaten, wordt de Windows-instelling gebruikt.
  • CurrencyDecimalSymbol :Een enkel teken om het decimaalteken van een valutabedrag aan te geven.

Opties voor kolomdefinitie

We hebben gezien hoe we kunnen omgaan met het algemene formaat van het bestand, maar we moeten meer informatie geven over de individuele kolom. Wat nog belangrijker is, we moeten in staat zijn om de verwachte gegevenstypes van kolommen in kaart te brengen. Ergo, het derde deel van de schema.ini moet elke kolom beschrijven, met net zoveel rijen als er kolommen zijn in het doeltekstbestand. Het algemene formaat voor de kolomdefinitie kan er als volgt uitzien:

ColN=Name Type Width #

Het is belangrijk op te merken dat behalve het voorvoegsel ColN= , alle onderdelen zijn optioneel, maar of u deze kunt weglaten, hangt af van andere factoren, zoals hieronder besproken.

  • ColN= :Een verplicht voorvoegsel dat op elk begin van de regel moet staan. De N moet een getal zijn dat begint bij 1 en oploopt.
  • Name :Geeft een kolom de naam. Als de ColNameHeader is ingesteld op True , de Name parameter kan worden weggelaten. Als het echter False . is , dan moet u de Name . opgeven om fouten te voorkomen.
  • Type :Geeft het gegevenstype aan. Indien weggelaten, gebruikt Access de beste schatting op basis van de gescande rijen, geregeld door de MaxScanRows optie. Het type moet worden ingesteld op een van die geldige waarden. Synoniemen worden vermeld na het canonieke trefwoord:
    • Bit , Boolean
    • Byte
    • Short , Integer
    • Long
    • Currency
    • Single
    • Double , Float
    • DateTime
    • Text , Char
    • Memo , LongChar
    • Date

  • Width # :Geeft de breedte van de kolom aan. Als dit is opgegeven, wordt de letterlijke Width moet worden opgenomen en gevolgd door een nummer. Als u wilt aangeven dat een kolom 50 tekens breed is, schrijft u:
    Col17=ProductDescription Text Width 50
    Voor bestanden met een vaste breedte is de Width is verplicht. Met gescheiden bestanden kunt u het weglaten. Access gebruikt deze informatie echter voor tekstvelden om de lengte te beperken en mogelijk de inhoud af te kappen. Voor andere gegevenstypen heeft de breedte geen effect.

Conclusie

Je hebt gezien hoe je het schema van een tekstbestand kunt beheren met een schema.ini die u kunt maken in een map waar de tekstbestand(en) zich bevinden. Je kunt ook zien dat de schema.ini geeft u meer gedetailleerde controle over regionale instellingen, wat handig kan zijn als u te maken heeft met internationale gegevens en u geen controle heeft over de valuta- of datumnotatie. In het volgende artikel zul je kijken naar de alternatieve methode om de structuur van het tekstbestand te beschrijven met behulp van de systeemtabellen van Access.


  1. Wat is het LEN()-equivalent in MySQL?

  2. Hardwaretrends voor databaseservers

  3. Hoe de compatibiliteit van SQL Server-database controleren nadat sp_dbcmptlevel is verouderd?

  4. Gegevenswijzigingen onder Read Committed Snapshot Isolation