使用 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 控制面板中的預設值。