Dostosowywanie pliku Schema.ini do potrzeb użytkownika

Aby można było czytać, importować lub eksportować dane, należy, prócz umieszczenia w pliku .ini informacji o ustawieniach ISAM dotyczących tekstu, utworzyć plik Schema.ini. Plik Schema.ini zawiera opis tekstowego źródła danych: sposób formatowania pliku, sposób czytania go podczas importu oraz domyślny format eksportu do plików. W poniższym przykładzie pokazano, jak zdefiniować układ pliku o stałej szerokości wierszy, o nazwie Filename.txt.

 [Filename.txt]
ColNameHeader=False
Format=FixedLength
MaxScanRows=25
CharacterSet=OEM
Col1=columnname Char Width 24
Col2=columnname2 Date Width 9
Col3=columnname7 Float Width 10
Col4=columnname8 Integer Width 10
Col5=columnname9 LongChar Width 10

Podobnie format dla pliku z separatorem przedstawia się następująco:

 [Delimit.txt]
ColNameHeader=True
Format=Delimited(!)
MaxScanRows=0
CharacterSet=OEM
Col1=username char width 50
Col2=dateofbirth Date width 9

Jeśli dane są eksportowane do pliku tekstowego z separatorem, to również dla tego pliku należy określić format.

 [Export: Mój specjalny plik eksportu]
ColNameHeader=True
Format=TabDelimited
MaxScanRows=25
CharacterSet=OEM
DateTimeFormat=dd.mm.yy.hh.mm.ss
CurrencySymbol=zł
CurrencyPosFormat=3
CurrencyDigits=2
CurrencyNegFormat=0
CurrencyThousandSymbol=.
CurrencyDecimalSymbol=,
DecimalSymbol=,
NumberDigits=2
NumberLeadingZeros=1

Poniższy przykład odwołuje się do specyficznej opcji eksportu; podczas nawiązywania połączenia można określić dowolną kombinację opcji eksportu. Ten ostatni przykład odwołuje się również do nazwy źródła danych (DSN, data source name), która opcjonalnie może być przekazana podczas nawiązywania połączenia. Wszystkie trzy sekcje formatu mogą być umieszczone w tym samym pliku .ini.

Sposób wykorzystania pozycji pliku Schema.ini przez aparat bazy danych Microsoft Jet jest przedstawiony w poniższej tabeli.

Pozycja	Opis

ColNameHeader	Może przyjmować wartość True (wskazując, że pierwszy rekord danych zawiera nazwy kolumn) lub False.

Format	Może przyjąć jedną z następujących wartości: TabDelimited, CSVDelimited, Delimited (<pojedynczy znak>). Pojedynczy znak rozdzielający w formacie Delimited może być dowolnym znakiem za wyjątkiem podwójnego cudzysłowu (“).

MaxScanRows	Liczba wierszy przeglądanych podczas próby odgadnięcia typu kolumny. Jeśli wartość ta jest równa 0, zostanie przeszukany cały plik.

CharacterSet	Dopuszczalnymi wartościami są OEM lub ANSI, w zależności od tego, czy podczas pisania do pliku źródłowego używana jest strona kodowa OEM czy ANSI.

DateTimeFormat	Może przyjąć postać ciągu formatującego daty i godziny. Ta pozycja musi być podana, jeśli podczas importu i eksportu dla wszystkich pól daty i godziny jest używany taki sam format. Dopuszczalne są wszystkie formaty używane przez aparat bazy danych Microsoft Jet prócz formatów AM i PM. W przypadku braku ciągu formatującego stosowane są krótkie formaty daty i godziny z Panelu sterowania.

CurrencySymbol	Określa symbol waluty używany w pliku tekstowym do oznaczania jednostek pieniężnych. Przykładami są znak dolara ($) i zł. Jeśli nie ma tej pozycji, stosowana jest wartość domyślna z Panelu sterowania.

CurrencyPosFormat	Może przyjmować jedną z następujących wartości:Symbol waluty poprzedzający wartość bez odstępu ($1)Symbol waluty następujący po wartości bez odstępu (1$)Symbol waluty poprzedzający wartość z jednym znakiem odstępu ($ 1)Symbol waluty następujący po wartości z jednym znakiem odstępu (1 $)Jeśli nie ma tej pozycji, stosowana jest wartość domyślna z Panelu sterowania.

CurrencyDigits	Określa liczbę cyfr stosowaną do przedstawienia części ułamkowej wielkości pieniężnej. Jeśli nie ma tej pozycji, stosowana jest wartość domyślna z Panelu sterowania.

CurrencyNegFormat	Może przyjmować jedną z następujących wartości: ($1)–$1$–1$1–(1$)–1$1–$1$––1 $–$ 11 $–$ 1–$ –11– $($ 1)(1 $)Znak dolara jest tu używany wyłącznie jako przykład, lecz w programie powinien zostać zastąpiony odpowiednią wartością CurrencySymbol. Jeśli nie ma tej pozycji, stosowana jest wartość domyślna z Panelu sterowania.

CurrencyThousandSymbol	Określa jednoznakowy symbol używany do oddzielania grup trzycyfrowych w wartościach pieniężnych występujących w plikach tekstowych. Jeśli nie ma tej pozycji, stosowana jest wartość domyślna z Panelu sterowania.

CurrencyDecimalSymbol	Może przyjąć wartość pojedynczego znaku oddzielającego w wartości pieniężnej część całkowitą od ułamkowej. Jeśli nie ma tej pozycji, stosowana jest wartość domyślna z Panelu sterowania.

DecimalSymbol	Może przyjąć wartość pojedynczego znaku oddzielającego część całkowitą liczby od jej części ułamkowej. Jeśli nie ma tej pozycji, stosowana jest wartość domyślna z Panelu sterowania.

NumberDigits	Określa liczbę cyfr dziesiętnych w części ułamkowej liczby. Jeśli nie ma tej pozycji, stosowana jest wartość domyślna z Panelu sterowania.

NumberLeadingZeros	Określa, czy liczba mniejsza niż 1 i większa niż -1 powinna zawierać zera wiodące; pozycja ta może przyjmować wartość False (bez zer wiodących) lub True.

Col1, Col2, ...	Lista wczytywanych kolumn z pliku tekstowego. Format tej pozycji wygląda następująco:Coln=nazwa_kolumny typ [szerokość]nazwa_kolumny: nazwy kolumn zawierające odstępy powinny być ujęte w cudzysłów.typ: może przyjmować następujące wartości: Bit, Byte, Short, Long, Currency, Single, Double, DateTime, Text lub Memo.Dodatkowo, obsługiwane są następujące typy danych typowe dla tekstowego sterownika ODBC:Char (ten sam co Text)
Float (ten sam co Double)
Integer (ten sam co Short)
LongChar (ten sam co Memo)
Date format_daty

Uwaga   Aby nowe ustawienia zaczęły obowiązywać, po ich zmianie w Rejestrze Windows należy zakończyć pracę z aparatem bazy danych i uruchomić aparat ponownie.