Schema.ini ファイル (テキスト ファイル ドライバー)
テキスト ドライバーを使用する場合、テキスト ファイルの形式はスキーマ情報ファイルを使用して決定されます。 スキーマ情報ファイルは常に Schema.ini という名前で、常にテキスト データ ソースと同じディレクトリに保持されます。 スキーマ情報ファイルは、IISAM にファイルの一般的な形式、列名とデータ型の情報、およびその他のいくつかのデータ特性に関する情報を提供します。 固定長データにアクセスするために、常に Schema.ini ファイルが必要です。 テキスト テーブルに DateTime、Currency、Decimal データが含まれている場合、またはテーブル内のデータの処理をより詳細に制御する必要がある場合は、Schema.ini ファイルを使用する必要があります。
注意
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 の [書式 ] オプションは、テキスト ファイルの形式を指定します。 テキスト IISAM は、ほとんどの文字区切りファイルから自動的に形式を読み取ることができます。 ファイルでは、二重引用符 (") を除く任意の 1 文字を区切り記号として使用できます。 Schema.ini の [書式] 設定は、Windows レジストリのファイル単位の設定をオーバーライドします。 次の表に、[ 書式 ] オプションの有効な値を示します。
書式指定子 | テーブルの形式 | Schema.ini Format ステートメント |
---|---|---|
タブ区切り | ファイル内のフィールドはタブで区切られます。 | Format=TabDelimited |
CSV 区切り | ファイル内のフィールドは、コンマ (コンマ区切り値) で区切られます。 | Format=CSVDelimited |
カスタム区切り記号付き | ファイル内のフィールドは、ダイアログ ボックスに入力する任意の文字で区切られます。 二重引用符 (") を除くすべてが、空白を含めて許可されます。 | Format=Delimited(custom character) または 区切り記号が指定されていない場合: Format=Delimited( ) |
固定長 | ファイル内のフィールドの長さは固定です。 | Format=FixedLength |
フィールドの指定
文字区切りテキスト ファイルには、次の 2 つの方法でフィールド名を指定できます。
テーブルの最初の行にフィールド名を含め、 ColNameHeader を True に設定 します。
各列を数値で指定し、列名とデータ型を指定します。
各列を数値で指定し、固定長ファイルの列名、データ型、および幅を指定する必要があります。
注意
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 Text メモ ODBC データ型 Char (Text と同じ) Float (Double と同じ) 整数 (Short と同じ) LongChar (メモと同じ) 日付 の日付形式 |
Width | リテラル文字列値 Width 。 次の数値が列の幅を指定することを示します (文字区切りファイルの場合は省略可能。固定長ファイルの場合は必須)。 |
# | 列の幅を指定する整数値 ( Width が指定されている場合は必須)。 |
文字セットの選択
ANSI と OEM の 2 つの文字セットから選択できます。 Schema.ini の CharacterSet 設定は、ファイルごとに Windows レジストリの設定をオーバーライドします。 次の例は、文字セットを ANSI に設定する Schema.ini エントリを示しています。
CharacterSet=ANSI
データ型の形式と変換の指定
Schema.ini ファイルには、データの変換方法または表示方法を指定するために使用できるいくつかのオプションが含まれています。 次の表に、これらの各オプションを示します。
オプション | 説明 |
---|---|
DateTimeFormat | 日付と時刻を示す書式指定文字列に設定できます。 インポート/エクスポートのすべての日付/時刻フィールドが同じ形式で処理される場合は、このエントリを指定する必要があります。 午前と午後を除くすべての Microsoft Jet 形式がサポートされています。 書式指定文字列がない場合は、Windows コントロール パネルの短い日付と時刻のオプションが使用されます。 |
DecimalSymbol | 整数を数値の小数部から区切るために使用される任意の 1 文字に設定できます。 |
NumberDigits | 数値の小数部の 10 進数の数を示します。 |
NumberLeadingZeros | 1 未満の 10 進値と -1 より大きい値に先行ゼロを含めるかどうかを指定します。この値は、False (先頭に 0 なし) または 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 文字に設定できます。 |
注意
エントリを省略すると、Windows コントロール パネルの既定値が使用されます。