Schema.ini ファイル (テキスト ファイル ドライバー)

テキスト ドライバーを使用する場合、テキスト ファイルの形式はスキーマ情報ファイルを使用して決定されます。 スキーマ情報ファイルは常に Schema.ini という名前で、常にテキスト データ ソースと同じディレクトリに保持されます。 スキーマ情報ファイルは、ファイルの一般的な形式、列名とデータ型の情報、およびその他のいくつかのデータ特性に関する情報を IISAM に提供します。 Schema.ini ファイルは、固定長データにアクセスするために常に必要です。 テキスト テーブルに DateTime、Currency、または Decimal データ型が含まれている場合、あるいはテーブル内のデータの処理をより詳細に制御する場合には、Schema.ini ファイルを使用する必要があります。

Note

Text ISAM は、Schema.ini からではなく、レジストリから初期値を取得します。 同じ既定のファイル形式が、すべての新しいテキスト データ テーブルに適用されます。 CREATE TABLE ステートメントで作成したすべてのファイルは、同じ既定の書式値を継承します。この値を設定するには、[テーブル] リストで<既定値>が選択された [テキスト形式の定義] ダイアログ ボックスでファイル形式の値を選択します。 レジストリ内の値が Schema.ini の値と異なる場合、レジストリ内の値は Schema.ini の値で上書きされます。

Schema.ini ファイルについて

Schema.ini ファイルは、テキスト ファイル内のレコードに関するスキーマ情報を提供します。 各 Schema.ini エントリで、テーブルの次の 5 つの特性のいずれかを指定します。

  • テキスト ファイル名

  • ファイル形式

  • フィールドの名前、幅、および型

  • 文字セット

  • 特殊なデータ型変換

以下のセクションでは、これらの特性について説明します。

ファイル名の指定

Schema.ini の最初のエントリは常に、角かっこで囲まれたテキスト ソース ファイルの名前です。 次の例は、Sample.txt ファイルのエントリを示しています。

[Sample.txt]  

ファイル形式の指定

Schema.ini の [形式] オプションで、テキスト ファイルの形式を指定します。 Text IISAM は、ほとんどの文字区切りファイルから自動的に形式を読み取ることができます。 ファイルでは、二重引用符 (") を除く任意の 1 文字を区切り記号として使用できます。 Schema.ini の [形式] 設定により、Windows レジストリの設定がファイル単位でオーバーライドされます。 次の表に、[形式] オプションの有効な値の一覧を示します。

書式指定子 テーブルの形式 Schema.ini 書式ステートメント
タブ区切り ファイル内のフィールドはタブで区切られます。 Format=TabDelimited
CSV 区切り ファイル内のフィールドはコンマ (コンマ区切り値) で区切られます。 Format=CSVDelimited
カスタム区切り ファイル内のフィールドは、ダイアログ ボックスに入力する任意の文字で区切られます。 空白を含め、二重引用符 (") を除くすべての文字を使用できます。 Format=Delimited (カスタム文字)

または

区切り記号が指定されていない場合:

Format=Delimited( )
固定長 ファイル内のフィールドは固定長です。 Format=FixedLength

フィールドの指定

文字区切りテキスト ファイルでフィールド名を指定する場合、次の 2 つの方法があります。

  • テーブルの最初の行にフィールド名を含め、[ColNameHeader]True に設定します。

  • 各列を番号で指定し、列名とデータ型を指定します。

各列を番号で指定し、固定長ファイルの場合は列名、データ型、および幅を指定する必要があります。

Note

Schema.ini の [ColNameHeader] 設定により、Windows レジストリの [FirstRowHasNames] 設定がファイル単位でオーバーライドされます。

フィールドのデータ型を決定することもできます。 [MaxScanRows] オプションを使用すると、列の型を決定するときにスキャンする必要がある行数を指定できます。 [MaxScanRows] を "0" に設定すると、ファイル全体がスキャンされます。 Schema.ini の [MaxScanRows] 設定により、Windows レジストリの設定がファイル単位でオーバーライドされます。

次のエントリは、Microsoft Jet がテーブルの最初の行のデータを使用してフィールド名を決定し、ファイル全体を調べて使用するデータ型を決定する必要があることを意味しています。

ColNameHeader=True  
MaxScanRows=0  

次のエントリでは、列番号 (Coln) オプションを使用してテーブル内のフィールドを指定します。この操作は、文字区切りファイルでは任意ですが、固定長ファイルでは必須です。 この例では、2 つのフィールド (10 文字の CustomerNumber テキスト フィールドと 30 文字の CustomerName テキスト フィールド) の Schema.ini エントリを示しています。

Col1=CustomerNumber Text Width 10  
Col2=CustomerName Text Width 30  

Coln の構文は次のとおりです。

  
n=ColumnName type [Width] [#]  

解説

次の表では、Coln エントリの各部分について説明します。

パラメーター 説明
[ColumnName] 列のテキスト名。 列名に埋め込みスペースが含まれている場合は、二重引用符で囲む必要があります。
type データ型は次のとおりです。

Microsoft Jet データ型

ビット

Byte

Short

Long

通貨

Single

Double

DateTime

テキスト

メモ

ODBC データ型 Char (Text と同じ)

Float (Double と同じ)

Integer (Short と同じ)

LongChar (Memo と同じ)

Date 日付形式
リテラル文字列値 Width。 次の数値が列の幅を指定することを示します (文字区切りファイルでは任意、固定長ファイルでは必須)。
# 列の幅を指定する整数値 (Width が指定されている場合は必須)。

文字セットの選択

ANSI と OEM の 2 つの文字セットから選択できます。 Schema.ini の [CharacterSet] 設定により、Windows レジストリの設定がファイル単位でオーバーライドされます。 次の例は、文字セットを ANSI に設定した Schema.ini エントリを示しています。

CharacterSet=ANSI  

データ型の書式および変換の指定

Schema.ini ファイルには、データの変換方法や表示方法を指定する場合に使用できるいくつかのオプションが用意されています。 次の表に、それらの各オプションの一覧を示します。

オプション 説明
DateTimeFormat 日付と時刻を示す書式指定文字列に設定できます。 インポート/エクスポートのすべての日付/時刻フィールドが同じ書式で処理される場合は、このエントリを指定する必要があります。 AM と PM を除くすべての Microsoft Jet 書式がサポートされています。 書式指定文字列がない場合は、Windows コントロール パネルの日付と時刻のオプションが使用されます。
DecimalSymbol 整数を数値の小数部から区切るために使用する任意の 1 文字に設定できます。
NumberDigits 数値の小数部の小数点以下の桁数を示します。
NumberLeadingZeros 1 より小さく -1 より大きい 10 進値に先行ゼロを含めるかどうかを指定します。この値は "False" (先行ゼロなし) または "True" のいずれかになります。
CurrencySymbol テキスト ファイル内の通貨値に使用する通貨記号を示します。 例として、ドル記号 ($) や Dm などが挙げられます。
CurrencyPosFormat 次のいずれかの値に設定できます。

- 通貨記号プレフィックス、区切りなし ($1)
- 通貨記号サフィックス、区切りなし (1$)
- 通貨記号プレフィックス、1 文字区切り ($ 1)
- 通貨記号サフィックス、1 文字区切り (1 $)
CurrencyDigits 通貨金額の小数部に使用する桁数を指定します。
CurrencyNegFormat 値は、次のいずれかです。

- ($1)
- -$1
- $-1
- $1-
- (1$)
- -1$
- 1-$
- 1$-
- -1 $
- -$ 1
- 1 $-
- $ 1-
- $ -1
- 1- $
- ($ 1)
- (1 $)

この例ではドル記号を示していますが、実際のプログラムでは適切な CurrencySymbol 値に置き換える必要があります。
CurrencyThousandSymbol テキスト ファイル内の通貨値を千単位で区切るために使用する 1 文字の記号を示します。
CurrencyDecimalSymbol 通貨金額の小数部と全体を区切るために使用する任意の 1 文字に設定できます。

Note

エントリを省略すると、Windows コントロール パネルの既定値が使用されます。