共用方式為


Schema.ini 檔案(文字檔驅動程式)

使用 Text 驅動程式時,會使用架構資訊檔來判斷文字檔的格式。 架構信息檔一律會命名為 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 項目都會指定資料表的五個特性之一:

  • 文字檔名稱

  • 檔案格式

  • 功能變數名稱、寬度和類型

  • 字元集

  • 特殊數據類型轉換

下列各節將討論這些特性。

指定檔名

Schema.ini 中的第一個專案一律是以方括弧括住的文字來源檔案名稱。 下列範例說明檔案 Sample.txt的專案:

[Sample.txt]  

指定檔案格式

Schema.ini 中的 [格式 ] 選項會指定文字檔的格式。 Text IISAM 可以從大部分字元分隔的檔案自動讀取格式。 您可以使用任何單一字元作為檔案中的分隔符,但雙引號 (“ 除外)。 Schema.ini 中的 [格式 ] 設定會依檔案覆寫 Windows 登錄中的設定。 下表列出 [格式] 選項的有效值。

格式規範 表格格式 Schema.ini Format 語句
Tab 分隔符 檔案中的欄位會以索引標籤分隔。 Format=TabDelimited
CSV 分隔 檔案中的欄位是以逗號分隔(逗號分隔值)。 Format=CSVDelimited
自定義分隔符 檔案中的欄位會以您選擇輸入對話框的任何字元分隔。 允許雙引號 (“) 以外的所有專案,包括空白。 Format=Delimited(自定義字元

-或-

未指定分隔符:

Format=Delimited( )
固定長度 檔案中的欄位長度為固定長度。 Format=FixedLength

指定欄位

您可以使用兩種方式在字元分隔文字檔中指定網域名稱:

  • 將功能變數名稱包含在資料表的第一個數據列中,並將 ColNameHeader 設定為 True。

  • 依數位指定每個數據行,並指定資料行名稱和數據類型。

您必須依數位指定每個數據行,並指定固定長度檔案的數據行名稱、數據類型和寬度。

備註

Schema.ini 中的 ColNameHeader 設定會依檔案覆寫 Windows 登錄中的 FirstRowHasNames 設定。

也可以決定欄位的數據類型。 使用 MaxScanRows 選項來指出判斷數據行類型時,應該掃描多少個數據列。 如果您將 MaxScanRows 設定為 0,則會掃描整個檔案。 Schema.ini 中的 MaxScanRows 設定會依檔案覆寫 Windows 登錄中的設定。

下列專案表示Microsoft Jet 應該使用數據表第一個數據列中的數據來判斷功能變數名稱,並檢查整個檔案來判斷所使用的數據類型:

ColNameHeader=True  
MaxScanRows=0  

下一個專案會使用數據行編號 (Coln) 選項來指定數據表中的欄位,這是字元分隔檔案的選擇性專案,而且固定長度檔案是必要的。 此範例顯示兩個字段的 Schema.ini 專案、10 個字元的 CustomerNumber 文字欄位和 30 個字元的 CustomerName 文字欄位:

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

Coln 的語法為:

  
n=ColumnName type [Width] [#]  

備註

下表描述 Coln 專案的每個部分。

參數 說明
ColumnName 數據行的文字名稱。 如果數據行名稱包含內嵌空格,您必須以雙引弧括住它。
類型 資料類型如下所示:

Microsoft Jet 資料類型

位元

位元





貨幣

單身

兩倍

日期時間

文字

備忘錄

ODBC 數據類型 Char (與文字相同)

浮點數 (與雙精度浮點數相同)

整數 (與 Short 相同)

LongChar (與備忘相同)

日期 日期格式
寬度 常值字串值 Width。 指出下列數位會指定數據行的寬度(選擇性的字元分隔檔案;固定長度檔案所需)。
# 指定數據行寬度的整數值(如果指定 Width 則為必要)。

選取字元集

您可以從兩個字元集選取:ANSI 和 OEM。 Schema.ini 中的 CharacterSet 設定會依檔案覆寫 Windows 登錄中的設定。 下列範例顯示將字元集設定為 ANSI 的 Schema.ini 專案:

CharacterSet=ANSI  

指定數據類型格式和轉換

Schema.ini 檔案包含數個選項,可用來指定如何轉換或顯示數據。 下表列出每個選項。

選項 說明
DateTimeFormat 可以設定為表示日期和時間的格式字串。 如果匯入/匯出中的所有日期/時間欄位都以相同的格式處理,您應該指定此專案。 除了 A.M. 和 P.M. 以外,所有 Microsoft Jet 格式都受到支援。 如果沒有格式字串,則會使用 Windows 控制面板簡短日期圖片和時間選項。
DecimalSymbol 可以設定為用來分隔整數與數位小數部分的任何單一字元。
NumberDigits 表示數位小數部分的小數位數。
NumberLeadingZeros 指定小數點值是否小於 1 且大於 -1 應包含前置零;此值可以是 False(沒有前置零)或 True。
CurrencySymbol 指出可用於文字檔中貨幣值的貨幣符號。 範例包括貨幣符號 ($) 和 Dm。
CurrencyPosFormat 可以設定為下列任何值:

- 沒有分隔的貨幣符號前置詞 ($1)
- 貨幣符號後綴,無分隔 (1$)
- 貨幣符號前置詞與一個字元分隔 ($ 1)
- 貨幣符號後綴與一個字元分隔 (1 $)
CurrencyDigits 指定貨幣金額小數部分所使用的位數。
CurrencyNegFormat 可以是下列其中一個值:

- ($1)
- -$1
- $-1
- $1-
- (1$)
- -1$
- 1-$
- 1$-
- -1 $
- -$ 1
- 1 $-
- $ 1-
- $ -1
- 1- $
- ($ 1)
- (1 美元)

此範例會顯示貨幣符號,但您應該以實際程式中適當的 CurrencySymbol 值取代它。
CurrencyThousandSymbol 指出單一字元符號,可用於將文本檔中的貨幣值分隔成千上萬。
CurrencyDecimalSymbol 可以設定為任何單一字元,用來分隔整個與貨幣金額的小數部分。

備註

如果您省略專案,則會使用 Windows 控制面板中的預設值。