一、指定連接信息。
用MicrosoftJet訪問文件時,仍使用OpenDatabase方法,用該方法中的參數為文本文件指定連接信息,內容如下:
·源數據庫類型:文本
·數據庫名稱:目錄的全路徑,在該目錄中含有要訪問的文本文件。
·源表名稱:文本文件的名稱,包括擴展名。如果不指定擴展名,則用缺省的擴展名.txt。
如果在字符分界文件中接連出現兩個定界符,則MicrosoftJet將其視為空值。如果在定長文件的數據列中沒有數據(空格),則MicrosoftJet也將其視為空值。MicrosoftJet通過直接讀取文件或用方案描述信息文件來確定文本文件的格式。方案描述信息文件總是被命名為Schema.ini,並且總是與文本數據源存儲在的同一個目錄下,它向IISAM提供許多信息,其中包括文件的一般格式、列名稱和數據類型信息以及其它一些數據特性。在訪問定長數據時,必須有Schema.ini文件;而當在文本表中包含DateTime,Currency,Decimal數據或者希望更多地控制表中數據的處理時,應當使用Schema.ini文件。
以上這段話摘自VisualBasic5.0的聯機手冊。這段話中的“方案描述信息文件總是被命名為Schema.ini”可能有誤。據筆者試驗,方案描述信息文件應與要鏈接或打開的文本文件具有相同的文件基本名,其擴展名為.ini。注意,MicrosoftJet不支持多用戶訪問文本文件。用MicrosonJet打開一個文本文件之後,也就獨占了對該文件的訪問。MicrosoftJet對各種文本表和對象有一些限制,包括:
·字段:不超過255個字符
·字段名稱:不超過64個字符
·字段寬度:不超過32,766個字符
·記錄大小:不超過65,000個字節
二、方案描述信息文件。
對文本文件的訪問通過方案描述文件來實現。也就是說,為了訪問外部文本文件,必須提供方案描述信息文件。該文件提供了文本文件中記錄的方案描述,其內容包括以下幾個方面。
指定文件名。
方案描述信息文件的第一個項是文本源文件的名稱,該文件名放在方括號內。例如,如果要訪問名為Sample.txt的文本文件,則該項應寫為:[Sample.txt]
指定文件格式。
方案描述信息文件中的格式選項指定了文本文件的格式,TextIISAM可以從大多數的字符分界文件中自動讀取格式。在文本文件中,可以用除了雙引號(")以外的任何單個字符作為定界符。方案描述信息文件的格式設置值覆蓋了Windows注冊表中所有文件的相應設置值。格式選項中的有效值如表所列。
格式設置字符
格式說明符格式
TabDelimited文件的字段用制表符定界
CSVDelimited文件的字段用逗號定界(用逗號定界的值)
Delimited(*)文件的字段用星號定界,可以使用除了雙引號
以外的任何字符代替星號
FixedLength文件的字段為定長
例如,為了指定用逗號分隔的格式,可以在Schema.ini文件中添加如下一行:
Format=CSVDelimited
3.指定字段
在字符分界文本文件中,可以通過以下兩種方式指定字段名稱:
·把字段名稱放在表的第一行中,並把ColNameHeader設置為True。
·用數字指定每個列並且指定列名稱和數據類型。
注意,必須用數字指定每個列,並且指定列的名稱和數據類型,對於定長文件要指定其寬度。字段的數據類型也可以由MicrosoftJet確定。即用MaxScanRows選項指示MicrosonftJet在確定列的類型時應當掃描多少行。如果將MaxScanRows設置為0,則MicrosoftJet將掃描整個文件。方案描述信息文件中的MaxScanRows設置值覆蓋了Windows注冊表中每個文件的相應設置值。例如:
ColNameHeader=True
MaXSCanRows=0
將指示MicrosoftJet用表中第一行的數據來確定字段名稱,而且掃描整個文件來確定所用的數據類型。表(文本文件)的各個字段通過列號(Coln)選項指定,該選項對於字符分界文件是可選的,而對於定長文件是必需的。Coln的格式如下:
Coln=ColumnNametyPe[Width#]
Coln項包括以下幾個部分:
·ColumnName:列的文本名稱。如果列名稱含有嵌入的空格,則必須放在雙引號中。
·Type:數據類型,可以是以下類型。MicrosoftJet數據類型:Bit、Byte、Short、Long、Currencv、Single、Double、DateTime、Text;MemoODBC數據類型:Char(與Text相同)、Float(與Double相同)、Integer(與Short相同)、LongChar(與Memo相同)、Datedateformat。
·Width:字符串值Width,指出指定的列的寬度(對於字符分界文件是可選的,而對於定長文件是必需的)。
·#:是一個整型數,用來指定列的寬度(如果指定了Width,則必須加代表列寬的整數)。
例子:
Col1=CustomerNumberTextWidth10
Col2=CustomerNameTextWidth30
該例給出了方案描述信息文件中與兩個字段對應的項,這兩個字段分別是:10個字符的CustomerNumber文本字段和30個字符的CustomerName文本字段。
4.選擇字符集
可以使用的字符集有兩種,即ANSI和OEM,可以從中選擇一種,通過CharacterSet設置。例如:CharacterSet=ANSI把字符集設置為ANSI。如果選擇OEM字符集,則方案描述信息文件的CharacterSet設置值覆蓋了Windows注量表中每個文件的相應設置值。