sql >> Databáze >  >> RDS >> Access

Parametry připojovacího řetězce pro Schema.ini

Parametry připojovacího řetězce pro Schema.ini

Vytvoření schema.ini otevření nebo propojení textových souborů z Accessu je jednou ze dvou možných metod, které lze použít pro práci s daty obsaženými v souborech z Accessu. V předchozím článku jsme se podívali na parametry připojovacího řetězce textového souboru. Diskutovali jsme také o nutnosti mít další informace o schématu, které Accessu pomohou analyzovat textové soubory. Microsoft má stránku o schema.ini , ale je několik věcí, které nejsou hned jasné, takže se jim zde budeme věnovat.

schema.ini soubor

Každá složka může mít jeden soubor s názvem schema.ini kde můžeme definovat všechny možné formáty textových souborů, které očekáváme, že ve složce najdeme. Pro každý textový soubor musíme začít oddíl s názvem souboru a poté popsat strukturu. Začneme s minimální ukázkovou částí a poté analyzujeme každou část. Není nutné vyjmenovávat všechny textové soubory. Jakékoli textové soubory, které nejsou popsány souborem schema.ini bude jednoduše řešeno pomocí výchozího nastavení pro lepší nebo horší. Podívejme se na strukturu schema.ini .

[products.txt]

Format=CSVDelimited
ColNameHeader=True
MaxScanRows=0

Col1=Products Text
Col2=Count Long

Všimněte si, že první řádek na začátku oddílu musí odkazovat na textový soubor. Musí mít také závorky pro označení začátku sekce. Jak již možná víte, schema.ini může popisovat více než jeden textový soubor, takže čára v závorce pomáhá udržovat schéma každého textového souboru oddělené.

Další sada řádků se zabývá celkovým formátem souboru a tím, jak má Access zpracovat textové soubory. Můžeme určit, zda má textový soubor záhlaví, kolik řádků se má skenovat, jakou kódovou stránku použít a tak dále.

Poslední sada řádků popisuje jednotlivé sloupce, jejich název, datový typ a šířku.

Zkontrolujeme platné možnosti a možné hodnoty pro tyto 2 sady.

Možnosti popisu celkové struktury textového souboru

Zobrazí se seznam platných voleb dostupných pro popis celkového formátu textového souboru. Typické je zadat minimálně Format a ColNameHeader ale veškerý možný obsah je volitelný. Kdykoli jsou vynechány, použijí se výchozí hodnoty, jak je uvedeno níže. Podívejme se, jak můžeme popsat formát daného textového souboru.

Celkové možnosti struktury

Jak bylo uvedeno, jsou volitelné, i když zřídka vynechány. Nicméně výchozí hodnoty pocházejí z klíčů registru textového stroje. Další podrobnosti o klíčích registru naleznete zde.

  • Format :Označuje formát textových souborů. Pokud je vynechán, použije klíč registru textového modulu Format . Platné hodnoty jsou:
    • TabDelimited :Tabulátory oddělují sloupce.
    • CSVDelimited :Čárky oddělují sloupce jako soubor CSV.
    • Delimited(*) :Sloupce ohraničuje jeden znak. Může to být jakýkoli znak kromě " charakter. Například textový soubor oddělený znakem | znak by měl hlásit Format=Delimited(|) .
    • FixedLength :Sloupky mají pevnou délku; obsah by měl být odpovídajícím způsobem vycpán. Všechny sloupce musí mít definovanou šířku.

  • CharacterSet :Ke čtení textového souboru používá specifickou kódovou stránku. Možné hodnoty mohou být ANSI , OEM , Unicode nebo jakékoli číselné hodnoty představující požadované kódové stránky. Chcete-li najít všechny možné kódové stránky podporované na vašem počítači se systémem Windows, podívejte se do klíče registru Computer\HKEY_CLASSES_ROOT\MIME\Database\Codepage\ . Pokud například chcete použít kódování utf-8, můžete zadat CharacterSet=65001 .
  • ColNameHeader :Označuje, zda první řádek obsahuje názvy sloupců. Pokud je vynechán, použije klíč registru textového modulu FirstRowHasNames . Hodnoty mohou být buď True nebo False .
  • MaxScanRows :Počet řádků Access by měl naskenovat textový soubor, aby odhadl možný typ dat. Pokud je nastaveno na 0, Access prohledá celý soubor. Klíč registru textového modulu MaxScanRows se používá při vynechání.

Možnosti lokalizace

Tyto možnosti se zabývají především lokalizací dat zakódovaných v datech, časech nebo měně. Všechny tyto možnosti jsou volitelné a kdykoli je vynecháte, použije se nastavení regionu Windows.

  • DateTimeFormat :Formát data/času, který se má použít.
  • DecimalSymbol :Jakýkoli jednotlivý znak používaný jako oddělovač mezi celočíselnou a zlomkovou částí čísla.
  • NumberDigits :Počet číslic použitých ve zlomkové části čísla.
  • NumberLeadingZeroes :Označuje, zda má být úvodní nula pro čísla větší než -1 a menší než 1. Měla by být buď True nebo False .
  • CurrencySymbol :Identifikuje symbol, který má být interpretován jako měna.
  • CurrencyPosFormat :Popisuje, jak by měly být peněžní částky hlášeny v textovém souboru. Pro toto nastavení lze použít čtyři platné hodnoty reprezentované číslem 0 až 3. Všimněte si, že příklad používá $ ale při skutečném použití bude používat skutečný symbol měny definovaný pomocí CurrencySymbol nebo nastavením Windows.
    • 0 :Předpona bez mezery (např. $1)
    • 1 :Přípona bez mezery (1 $)
    • 2 :Předpona s mezerou mezi ($ 1)
    • 3 :Přípona s mezerou mezi (1 $)

  • CurrencyDigits :Počet číslic ve zlomkové části částky v měně.
  • CurrencyNegFormat :Označuje formátování záporné částky v měně. Je to hodnota mezi 0-15, jak je uvedeno níže. Všimněte si, že příklad používá $ ale při skutečném použití bude používat skutečný symbol měny definovaný pomocí CurrencySymbol nebo nastavením 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 :Jediný znak označující oddělení tisíců v měně. Pokud je vynecháno, použije se nastavení systému Windows.
  • CurrencyDecimalSymbol :Jediný znak označující desetinné číslo částky v měně.

Možnosti definice sloupců

Viděli jsme, jak se můžeme vypořádat s celkovým formátem souboru, ale musíme poskytnout více informací o jednotlivých sloupcích. Ještě důležitější je, že musíme být schopni mapovat očekávané datové typy sloupců. Ergo, třetí část schema.ini by měl popisovat každý sloupec s tolika řádky, kolik je sloupců v cílovém textovém souboru. Obecný formát pro definici sloupce může vypadat takto:

ColN=Name Type Width #

Je důležité si uvědomit, že kromě předpony ColN= , všechny části jsou volitelné, ale to, zda je můžete vynechat, bude záviset na dalších faktorech, jak je uvedeno níže.

  • ColN= :Povinná předpona, která musí být na každém začátku řádku. N by mělo být číslo začínající na 1 a rostoucí.
  • Name :Pojmenuje sloupec. Pokud ColNameHeader je nastaveno na True , Name parametr lze vynechat. Pokud je však False , pak musíte zadat Name abyste se vyhnuli chybám.
  • Type :Označuje datový typ. Pokud je vynechán, Access použije svůj nejlepší odhad na základě naskenovaných řádků, který se řídí podle MaxScanRows volba. type by měl být nastaven na jednu z těchto platných hodnot. Synonyma jsou uvedena za kanonickým klíčovým slovem:
    • Bit , Boolean
    • Byte
    • Short , Integer
    • Long
    • Currency
    • Single
    • Double , Float
    • DateTime
    • Text , Char
    • Memo , LongChar
    • Date

  • Width # :Označuje šířku sloupce. Pokud je zadáno, doslovný Width musí být zahrnuto a poté následováno číslem. Pokud chcete uvést, že sloupec má šířku 50 znaků, napište:
    Col17=ProductDescription Text Width 50
    U souborů s pevnou šířkou Width je povinné. U souborů s oddělovači to můžete vynechat. Access však použije tyto informace pro textová pole k omezení délky a případně ke zkrácení obsahu. U ostatních datových typů nemá šířka žádný vliv.

Závěr

Viděli jste, jak můžete ovládat schéma textového souboru pomocí schema.ini které můžete vytvořit ve složce, kde jsou umístěny textové soubory. Můžete také vidět, že schema.ini poskytuje podrobnější kontrolu nad regionálními nastaveními, což může být užitečné, pokud pracujete s mezinárodními daty a nemůžete ovládat formátování měny nebo data. V příštím článku se podíváte na alternativní metodu popisu struktury textového souboru pomocí systémových tabulek Accessu.


  1. Pokud je PostgreSQL count(*) vždy pomalý, jak stránkovat složité dotazy?

  2. Odstraňte data z databáze MySQL

  3. Jak vytisknete výsledek dotazu PostgreSQL ve formátu CSV nebo TSV z příkazového řádku?

  4. SQLcl pro přenos dat z Oracle do PostgreSQL nebo YugabyteDB 🅾🐘🚀