sql >> Databasteknik >  >> RDS >> Access

Anslutningssträngsparametrar för Schema.ini

Anslutningssträngsparametrar för Schema.ini

Skapa en schema.ini att öppna eller länka textfiler från Access är en av två möjliga metoder som kan användas för att arbeta med data som finns i filerna från Access. I den föregående artikeln tittade vi på textfilens anslutningssträngparametrar. Vi diskuterade också behovet av att ha ytterligare schemainformation för att hjälpa Access att analysera textfilerna. Microsoft har en sida om schema.ini , men det finns några saker som inte är klara omedelbart så vi kommer att ta upp det här.

schema.ini fil

Varje mapp kan ha en enda fil med namnet schema.ini för där vi kan definiera alla möjliga format av textfiler vi förväntar oss att hitta i mappen. För varje textfil måste vi starta ett avsnitt med filnamnet och sedan beskriva strukturen. Vi börjar med en minimal provsektion och analyserar sedan varje del. Det är inte nödvändigt att räkna upp alla textfiler. Alla textfiler som inte beskrivs av schema.ini kommer helt enkelt att hanteras med standardinställningen på gott och ont. Låt oss titta på strukturen för schema.ini .

[products.txt]

Format=CSVDelimited
ColNameHeader=True
MaxScanRows=0

Col1=Products Text
Col2=Count Long

Observera att den första raden för att starta ett avsnitt måste referera till en textfil. Den måste också ha parenteser för att indikera början på avsnittet. Som du kanske redan vet, en schema.ini kan beskriva mer än en textfil, så raden inom parentes hjälper till att hålla varje textfils schema separat.

Nästa rad rader handlar om filens övergripande format och hur Access ska bearbeta textfilerna. Vi kan ange om en textfil har rubriker, hur många rader som ska skannas, vilken teckentabell som ska användas och så vidare.

Den sista uppsättningen rader beskriver de enskilda kolumnerna, deras namn, datatyp och bredd.

Vi kommer att granska de giltiga alternativen och möjliga värden för dessa två uppsättningar.

Alternativ för att beskriva den övergripande textfilens struktur

Du kommer att se en lista över tillgängliga alternativ för att beskriva textfilens övergripande format. Det är typiskt att minst specificera Format och ColNameHeader men allt möjligt innehåll är valfritt. Närhelst de utelämnas kommer standardvärdena att användas enligt nedan. Låt oss titta på hur vi kan beskriva en given textfils format.

Alternativ för övergripande struktur

Som nämnts är dessa valfria men sällan utelämnade. Icke desto mindre kommer standardinställningarna från textmotorns registernycklar. Mer information om registernycklarna finns här.

  • Format :Indikerar formatet på textfilerna. Om den utelämnas används textmotorns registernyckel, Format . Giltiga värden är:
    • TabDelimited :Flikar avgränsar kolumnerna.
    • CSVDelimited :Komma avgränsar kolumnerna som en CSV-fil.
    • Delimited(*) :Ett enda tecken avgränsar kolumnerna. Kan vara vilket tecken som helst förutom " karaktär. Till exempel en textfil avgränsad med | tecken ska rapportera Format=Delimited(|) .
    • FixedLength :Kolumnerna har fast längd; innehållet bör vadderas därefter. Alla kolumner måste ha en definierad bredd.

  • CharacterSet :Använder en specifik teckentabell för att läsa textfilen. Möjliga värden kan vara ANSI , OEM , Unicode eller vilka numeriska värden som helst som representerar de önskade teckentabellerna. För att hitta alla möjliga teckentabeller som stöds på din Windows-dator, titta i registernyckeln Computer\HKEY_CLASSES_ROOT\MIME\Database\Codepage\ . Om du till exempel vill använda utf-8-kodning kan du ange CharacterSet=65001 .
  • ColNameHeader :Indikerar om den första raden innehåller kolumnnamnen. När den utelämnas används textmotorns registernyckel, FirstRowHasNames . Värden kan vara antingen True eller False .
  • MaxScanRows :Antal rader Access bör skanna in en textfil för att gissa möjlig datatyp. Om inställt på 0, kommer Access att skanna hela filen. Textmotorns registernyckel MaxScanRows används när den utelämnas.

Lokaliseringsalternativ

Dessa alternativ handlar huvudsakligen om att lokalisera data kodad i datum, tider eller valuta. Alla dessa alternativ är valfria och närhelst de utelämnas används inställningarna för Windows region.

  • DateTimeFormat :Datum-/tidsformatet som ska användas.
  • DecimalSymbol :Varje enskilt tecken som används som avgränsare mellan integral- och bråkdelar av ett tal.
  • NumberDigits :Antal siffror som används i bråkdelen av ett tal.
  • NumberLeadingZeroes :Indikerar om det ska finnas en inledande nolla för nummer mer än -1 och mindre än 1. Bör vara antingen True eller False .
  • CurrencySymbol :Identifierar symbolen som ska tolkas som en valuta.
  • CurrencyPosFormat :Beskriver hur penningbelopp ska redovisas i textfilen. Det finns fyra giltiga värden att använda för den här inställningen representerade av nummer 0 till 3. Observera att exemplet använder $ men vid faktisk användning kommer den att använda den faktiska valutasymbolen som definieras av CurrencySymbol eller med Windows-inställning.
    • 0 :Prefix utan mellanslag (t.ex. $1)
    • 1 :Suffix utan mellanslag (1$)
    • 2 :Prefix med ett mellanslag mellan ($ 1)
    • 3 :Suffix med ett mellanslag mellan (1 $)

  • CurrencyDigits :Antal siffror i bråkdelen av ett valutabelopp.
  • CurrencyNegFormat :Indikerar formateringen av ett negativt valutabelopp. Det är ett värde mellan 0-15 som visas nedan. Observera att exemplet använder $ men vid faktisk användning kommer den att använda den faktiska valutasymbolen som definieras av CurrencySymbol eller med Windows-inställning.
    • 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 :Ett enstaka tecken för att indikera separation av tusentals i ett valutabelopp. Om den utelämnas används Windows-inställningen.
  • CurrencyDecimalSymbol :Ett enda tecken för att ange decimalen för ett valutabelopp.

Alternativ för kolumndefinition

Vi såg hur vi kan hantera filens övergripande format men vi behöver ge mer information om den enskilda kolumnen. Ännu viktigare är att vi måste kunna kartlägga förväntade datatyper av kolumner. Ergo, den tredje delen av schema.ini ska beskriva varje kolumn, med lika många rader som det finns kolumner i måltextfilen. Det allmänna formatet för kolumndefinitionen kan se ut så här:

ColN=Name Type Width #

Det är viktigt att notera att förutom prefixet ColN= , alla delar är valfria men om du kan utelämna beror på andra faktorer som diskuteras nedan.

  • ColN= :Ett obligatoriskt prefix som måste finnas på varje start av raden. N bör vara ett tal som börjar på 1 och ökar.
  • Name :Ger en kolumn namnet. Om ColNameHeader är inställd på True , Name parameter kan utelämnas. Men om det är False , då måste du ange Name för att undvika fel.
  • Type :Indikerar datatypen. Om den utelämnas kommer Access att använda sin bästa gissning baserat på de skannade raderna, styrda av MaxScanRows alternativ. type bör ställas in på ett av dessa giltiga värden. Synonymer listas efter det kanoniska nyckelordet:
    • Bit , Boolean
    • Byte
    • Short , Integer
    • Long
    • Currency
    • Single
    • Double , Float
    • DateTime
    • Text , Char
    • Memo , LongChar
    • Date

  • Width # :Indikerar spaltens bredd. Om detta anges, den bokstavliga Width måste inkluderas och sedan följas av en siffra. Om du vill ange att en kolumn är 50 tecken bred, skriver du:
    Col17=ProductDescription Text Width 50
    För filer med fast bredd, Width är obligatorisk. Med avgränsade filer kan du utelämna det. Access kommer dock att använda denna information för textfält för att begränsa längden och eventuellt trunkera innehållet. För andra datatyper har bredden ingen effekt.

Slutsats

Du har sett hur du kan styra en textfils schema med en schema.ini som du kan skapa i en mapp där textfilen/filerna finns. Du kan också se att schema.ini ger dig mer detaljerad kontroll över regionala inställningar, vilket kan vara användbart om du har att göra med internationella data och du inte kan styra valuta- eller datumformateringen. I nästa artikel kommer du att titta på den alternativa metoden för att beskriva textfilens struktur med hjälp av Access systemtabeller.


  1. Oracle-certifieringar

  2. Anropar en annan PL/SQL-procedur inom en procedur

  3. ORA-01017 Ogiltigt användarnamn/lösenord vid anslutning till 11g-databas från 9i-klient

  4. MONTH() Exempel – MySQL