初始化Text和HTML Data Source 驱动程序

 Text Data源和HTML数据源使用同一个数据库驱动程序。

当安装 Text Data Source 数据库驱动程序时,设置程序会在引擎的 Windows 注册表和 ISAM Formats子键中写入一些缺省值。不要直接修改这些设置;请使用应用程序的设置程序来添加、删除、或更改这些设置。下列部分描述 Text Data Source 数据库驱动程序的初始化和 ISAM Formats 设置。

Text Data Source 的初始化设置

Jet\3.5\Engines\Text 文件夹包含用来外部访问文本数据文件的 Mstext35.dll 驱动程序的初始化设置。文件夹中项目的典型设置显示於下列示例。

win32=<path>\ mstext40.dll

MaxScanRows=25

FirstRowHasNames=True

CharacterSet= ANSI

Format=CSVDelimited

Extensions= txt,csv,tab,asc

ExportCurrencySymbols=Yes

Microsoft Jet 数据库引擎使用如下的文本文件夹项目。

项目 说明
win32 Mstext35.dll 的位置。这个完整路径在安装时就已确定。在 Windows 95 和Windows NT 4.0 中的值是字符串类型,而在 Windows NT 3.51 中是 REG_SZ 类型。
MaxScanRows 当猜测字段类型时被扫描的行数。如果设成 0,整个文件将被搜寻。缺省值是 25。 在 Windows 95 和 Windows NT 4.0 中的值是 DWORD 类型,而在 Windows NT 3.51 中是 REG_DWORD 类型。
FirstRowHasNames 指示表的第一行是否包含字段名的二进制值。01 的值指示在导入期间将从第一行取得字段名。00 值指示在第一行中没有字段名。缺省值是 1。 在 Windows 95 和 Windows NT 4.0 中的值是二进制类型,而在 Windows NT 3.51 中是 REG_BINARY 类型。
CharacterSet 如何存储文本页的指示器。可能的设置是:
  • ANSI: ANSI代码页。 AnsiToUnicode和UnicodeToAnsi的转换完成。
  • OEM: OEM代码页。OemToUnicode和 UnicodeToOem 的转换完成。
  • Unicode 代码页的转换未执行。
  • <decimal number>:特殊字符集的代码页号。与Unicode的互相转换即将完成。

OEM 为缺省值。在 Windows 95 和Windows NT 4.0 中的值是字符串类型,而在 Windows NT 3.51 中是 REG_SZ 类型。

Format 可为下列任一值:TabDelimited、CSVDelimited、Delimited(<单一字符>)。在 Delimited 格式下的单一字符分隔符可以是除了双引号以外 (") 的任何单一字符。缺省值是 CSVDelimited。在 Windows 95 和Windows NT 4.0 中的值是字符串类型,而在 Windows NT 3.51 中是 REG_SZ 类型。
Extensions 当要找寻基于文本的数据时,供浏览的文件的扩展名。缺省值是 txt、csv、tab 和 asc。在 Windows 95 和Windows NT 4.0 中的值是字符串类型,而在 Windows NT 3.51 中是 REG_SZ 类型。
ExportCurrencySymbols 指示当货币字段导出时是否包含相应的货币符号的二进制值。01 的值指示将包含符号。00 的值指示只导出数值数据。缺省值是 1。 在 Windows 95 和 Windows NT 4.0 中的值是二进制类型,而在 Windows NT 3.51 中是 REG_BINARY 类型。

Text Data Source ISAM 格式

Jet\4.0\ISAM Formats\Text 文件夹包含下列项目。



项目

Windows NT 3.51 类型
Windows 95 and Windows NT 4.0 类型

Engine REG_SZ String Text
ExportFilter REG_SZ String Text Files(*.txt;*.csv;*.tab;*.asc)
ImportFilter REG_SZ String Text Files(*.txt;*.csv;*.tab;*.asc)
CanLink REG_BINARY Binary 01
OneTablePerFile REG_BINARY Binary 01
IsamType REG_DWORD DWORD 2
IndexDialog REG_BINARY Binary 00
CreateDBOnExport REG_BINARY Binary 00
ResultTextImport REG_SZ String 从外部文件将数据导入当前数据库。对当前数据库中数据的更改将不会更改外部文件中的数据。
ResultTextLink REG_SZ String 在链接到外部文件的当前数据库中创建一个表。更改当前数据库中的数据时将会更改外部文件中的数据。
ResultTextExport REG_SZ String 从当前数据库将数据导入正文文件。如果导入已存在的文件,这次处理将改写已存在的数据。
SupportsLongNames REG_BINARY Binary 01


注意 当更改 Windows 注册表设置时,要使新设置生效,必须先退出,然后重新激活数据库引擎。


HTML 导入 ISAM 格式

Jet\3.5\ISAM Formats\HTML Import 文件夹包含下列项目。



项目

Windows NT 3.51 类型
Windows 95 and Windows NT 4.0 类型

Engine REG_SZ String Text
ImportFilter REG_SZ String HTML 文件(*.ht*)
CanLink REG_BINARY Binary 01
OneTablePerFile REG_BINARY Binary 00
IsamType REG_DWORD DWORD 2
IndexDialog REG_BINARY Binary 00
CreateDBOnExport REG_BINARY Binary 00
ResultTextImport REG_SZ String 从外部文件将数据导入当前数据库。对当前数据库中数据的更改将不会更改外部文件中的数据。
ResultTextLink REG_SZ String 在链接到外部文件的当前数据库中创建一个表。更改当前数据库中的数据时将会更改外部文件中的数据。
SupportsLongNames REG_BINARY Binary 01


注意 当更改 Windows 注册表设置时,要使新设置生效,必须先退出,然后重新激活数据库引擎。


HTML 导出 ISAM 格式

Jet\3.5\ISAM Formats\HTML Export 文件夹包含下列项目。



项目

Windows NT 3.51 类型
Windows 95 and Windows NT 4.0 类型

Engine REG_SZ String Text
ExportFilter REG_SZ String HTML 文件(*.htm)
CanLink REG_BINARY Binary 00
OneTablePerFile REG_BINARY Binary 01
IsamType REG_DWORD DWORD 2
IndexDialog REG_BINARY Binary 00
CreateDBOnExport REG_BINARY Binary 00
ResultTextExport REG_SZ String 从当前数据库将数据导入正文文件。如果导入已存在的文件,这次处理将改写已存在的数据。
SupportsLongNames REG_BINARY Binary 01


注意 当更改 Windows 注册表设置时,要使新设置生效,必须先退出,然后重新激活数据库引擎。


定制 Text 和 HTML 数据的Schema.ini 文件

若要读入、导入、或导出文本数据,在 .ini 文件中除了包含文本 ISAM 信息以外,还需要创建一个 Schema.ini 文件。Schema.ini 包含文本数据源的特性:正文文件如何格式化、在导入时如何读入、和文件的缺省导出格式。下列示例显示定宽文件 Filename.txt 的版面设计。

[Filename.txt]

ColNameHeader=False

Format=FixedLength

FixedFormat= RaggedEdge

MaxScanRows=25

CharacterSet=OEM

Col1=columnname Char Width 24

Col2=columnname2 Date Width 9

Col3=columnname7 Float Width 10

Col4=columnname8 Integer Width 10

Col5=columnname9 LongChar Width 10

类似地,分隔文件的格式指定如下:

[Delimit.txt]

ColNameHeader=True

Format=Delimited()

MaxScanRows=0

CharacterSet=OEM

Col1=username char width 50

Col2=dateofbirth Date width 9

如果将数据导入分隔的正文文件,该文件的格式同样指定为:

[Export:My Special Export]

ColNameHeader=True

Format=TabDelimited

MaxScanRows=25

CharacterSet=OEM

DateTimeFormat=mm.dd.yy.hh.mm.ss

CurrencySymbol=Dm

CurrencyPosFormat=0

CurrencyDigits=2

CurrencyNegFormat=0

CurrencyThousandSymbol=,

CurrencyDecimalSymbol=.

DecimalSymbol=,

NumberDigits=2

NumberLeadingZeros=0

TextDelimeter=”

My Special Export 示例引用了一个特定的导出选项;可以在连接时指定导出选项的任何变化。最后一个示例也对应于一个数据源名 (DSN) ,这个数据源名 (DSN) 可在连接时有选择地传送。所有三种格式部分均可包含在一个 .ini 文件中。

Microsoft Jet 数据库引擎使用如下的 Schema.ini 项目。

项目 说明
ColNameHeader 可设置为 True (表示数据的第一个记录为字段名)或 False
Format 可为下列任一值:TabDelimited、CSVDelimited、Delimited(<单一字符>)。在 Delimited 格式下的单一字符分隔符可以是除了双引号以外 (") 的任何单一字符。
FixedFormat 只用于Format是 FixedLength,可设置为以下值之一:RaggedEdge或TrueFixedLength.

RaggedEdge允许以一个Carriage Return字符作为行的终止。

TrueFixedLength要求每一行是一个精确的字符数,任何一个不在行边界的Carriage Return字符被视为是插入在一个字段里的。

若无该设置,缺省值为RaggedEdge.

MaxScanRows 当猜测字段类型时被扫描的行数。如果设成 0,整个文件将被搜寻。
CharacterSet 可设为OEM或ANSI或UNICODE,或一个有效代码页的十进制值,显示源文件的字符集。
DateTimeFormat 可设置为指示日期和时间的格式字符串。如果在导入/导出中所有的日期/时间字段使用同样的格式来处理,就应当指定此项。除了 AM 和 PM 外,所有 Microsoft Jet 数据库引擎格式都被支持。格式字符串不存在时,就使用 Windows“控制面板”的短日期图片和时间选项。
CurrencySymbol 指示正文文件中货币值使用的的货币符号。示例中包含的美元符号 ($) 和 Dm。如果此项目不存在,将使用 Windows “控制面板”的缺省值。
CurrencyPosFormat 可设置为下列任一值:

货币符号在前且没有分隔($1)

货币符号在后且没有分隔(1$)

货币符号在前且有一分隔符($ 1)

货币符号在后且有一分隔符(1 $)

如果此项目不存在,将使用 Windows “控制面板”的缺省值。

CurrencyDigits 指定用来作货币量小数部分的十进制数。如果此项目不存在,将使用 Windows “控制面板”的缺省值。
CurrencyNegFormat 可设置为下列值之一:

($1)

–$1

$–1

$1–

(1$)

–1$

1–$

1$–

–1 $

–$ 1

1 $–

$ 1–

$ –1

1– $

($ 1)

(1 $)

此示例的目的为显示美元符号,但是在实际程序之中,它应被相应的 CurrencySymbol 值取代。如果此项目不存在,将使用 Windows “控制面板”的缺省值。

CurrencyThousandSymbol 指示在正文文件中使用哪一个字符符号来分隔货币值的千位。如果此项目不存在,将使用 Windows “控制面板”的缺省值。
CurrencyDecimalSymbol 可以设置任一字符来分隔货币量的整数与小数部分。如果此项目不存在,将使用 Windows “控制面板”的缺省值。
DecimalSymbol 可以设置任一字符来分隔一个数的整数与小数部分。如果此项目不存在,将使用 Windows “控制面板”的缺省值。
NumberDigits 指示一个数的小数部分的十进制数。如果此项目不存在,将使用 Windows “控制面板”的缺省值。
NumberLeadingZeros 指定一个小于 1 而且大于 -1 的十进制数是否应该包含前导零;此值可为 False (没有前导零)或 True。
Col1, Col2, ... 列出正文文件中被读入的字段。此项的格式为:

Coln=columnName type [Width #]

columnName:嵌有空格的字段名应括在括号中。

Type:可以是 Bit, Byte, Short, Long, Decimal, Currency, Single, Double, DateTime.Binary, OLE, Text, or Memo.

除此之外,还支持下列 ODBC 文本驱动程序类型:

Char(同 Text)
Float(同 Double)
Integer(同 Short)
LongChar(同 Memo)
Date 日期格式

在Memo类型中,一个附加的格式标记[Attribute Hyperlink]可用于指明Access中激活的URL’s列。

在十进制类型中应使用附加格式标记[Scale #] Precision #] should be used.

TextDelimiter 可设置为单个的字符用来限定包含其他特殊字符的字符串。

E.g.“abc”,”xyz,pqr”,”hij”

若无入口,缺省值为两次引用。入口为”none”字符串则无定界符。



注意 当更改 Windows 注册表设置时,要使新设置生效,必须先退出,然后重新激活数据库引擎。


请参阅

定制 Microsoft Jet 的 Windows 注册环境