初始化文本数据源驱动程序

适用于:Access 2013、Office 2013

相同的数据库驱动程序用于文本数据源和 HTML 数据源。

安装文本数据源数据库驱动程序时,安装程序会将一组默认值写入引擎和 ISAM 格式子项中的 Microsoft Windows 注册表。 不应直接修改这些设置,而应使用应用程序的安装程序来添加、删除或更改这些设置。 以下各节说明了文本数据源数据库驱动程序的初始化和 ISAM 格式设置。

文本数据源初始化设置

Access Connectivity Engine\ISAM Formats\Text 文件夹包括 Acetxt.dll 驱动程序(用于从外部访问文本数据文件)的初始化设置。 下面的示例显示了此文件夹中各项的典型设置。

    win32=<path>\ ACETXT.DLL 
    
    MaxScanRows=25 
    
    FirstRowHasNames=True 
    
    CharacterSet= ANSI 
    
    Format=CSVDelimited 
    
    Extensions= txt,csv,tab,asc 
    
    ExportCurrencySymbols=Yes

Microsoft Access 数据库引擎使用如下所示的 Text 文件夹项。

条目

说明

win32

Acetxt.dll 的位置。 完整路径在安装时确定。 值为 REG_SZ 类型。

MaxScanRows

推测列类型时要扫描的行数。 如果设为 0,则搜索整个文件。 默认值为 25。 值为 REG_DWORD 类型。

FirstRowHasNames

二进制值,指示表的第一行是否包含列名称。 值 01 指示在导入期间从第一行获取列名称。

CharacterSet

如何存储文本页的指示器。 可能的设置包括:

  • ANSI - 计算机的 ANSI 代码页。 AnsiToUnicode 和 UnicodeToAnsi 转换已完成。

  • OEM - 计算机的 OEM 代码页。 OemToUnicode 和 UnicodeToOem 转换已完成。

  • Unicode - 代码页转换未完成。

  • <decimal number> — 特定字符集的代码页码。 将要完成与 Unicode 的相互转换。

默认值为 ANSI。 值为 REG_SZ 类型。

格式

可以是以下任一类型:TabDelimited、CSVDelimited、Delimited (<单个字符>) 。 Delimited 格式的单字符分隔符可以是除双引号 (") 以外的任何单字符。 默认格式为 CSVDelimited。 值为 REG_SZ 类型。

扩展

查找基于文本的数据时将要浏览的任何文件的扩展名。 默认值为 txt、csv、tab、asc。 值为 REG_SZ 类型。

ExportCurrencySymbols

一个二进制值,该值指示在导出货币字段时是否包含相应的货币符号。 值为 01 表示包含符号。 值为 00 表示仅导出数值数据。 默认值为 01。 值为 REG_BINARY 类型。

文本数据源 ISAM 格式

Access Connectivity Engine\ISAM Formats\Text 文件夹中包含下列项。

项名

类型

Engine

REG_SZ

Text

ExportFilter

REG_SZ

文本文件(*.txt、*.csv、*.tab、*.asc)

ImportFilter

REG_SZ

文本文件(*.txt、*.csv、*.tab、*.asc)

CanLink

REG_BINARY

01

OneTablePerFile

REG_BINARY

01

IsamType

REG_DWORD

2

IndexDialog

REG_BINARY

00

CreateDBOnExport

REG_BINARY

00

ResultTextImport

REG_SZ

从外部文件向当前数据库导入数据。 更改当前数据库中的数据时不会更改外部文件中的数据。

ResultTextLink

REG_SZ

在与外部文件链接的当前数据库中创建表。 更改当前数据库中的数据将会更改外部文件中的数据。

ResultTextExport

REG_SZ

将数据从当前数据库导出到文本文件。 如果导出到现有文件,此过程将覆盖数据。

SupportsLongNames

REG_BINARY

01

注意

[!注释] 更改 Windows 注册表设置后,必须退出并重新启动数据库引擎,以使新的设置生效。

HTML 导入 ISAM 格式

Access Connectivity Engine\ISAM Formats\HTML Import 文件夹中包含下列项。

项名

类型

Engine

REG_SZ

Text

ImportFilter

REG_SZ

HTML 文件 (*.ht*)

CanLink

REG_BINARY

01

OneTablePerFile

REG_BINARY

00

IsamType

REG_DWORD

2

IndexDialog

REG_BINARY

00

CreateDBOnExport

REG_BINARY

00

ResultTextImport

REG_SZ

从外部文件向当前数据库导入数据。 更改当前数据库中的数据时不会更改外部文件中的数据。

ResultTextLink

REG_SZ

在与外部文件链接的当前数据库中创建表。 更改当前数据库中的数据将会更改外部文件中的数据。

SupportsLongNames

REG_BINARY

01

注意

[!注释] 更改 Windows 注册表设置后,必须退出并重新启动数据库引擎,以使新的设置生效。

HTML 导出 ISAM 格式

Access Connectivity Engine\ISAM Formats\HTML Export 文件夹中包含下列项。

项名

类型

Engine

REG_SZ

Text

ExportFilter

REG_SZ

HTML 文件 (*.htm)

CanLink

REG_BINARY

00

OneTablePerFile

REG_BINARY

01

IsamType

REG_DWORD

2

IndexDialog

REG_BINARY

00

CreateDBOnExport

REG_BINARY

00

ResultTextExport

REG_SZ

将数据从当前数据库导出到文本文件。 如果导出到现有文件,此过程将覆盖数据。

SupportsLongNames

REG_BINARY

01

注意

[!注释] 更改 Windows 注册表设置后,必须退出并重新启动数据库引擎,以使新的设置生效。

自定义文本和 HTML 数据的 Schema.ini 文件

若要读取、导入或导出文本和 HTML 数据,除要在 .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="

“我的特殊导出”示例是指特定的导出选项;可以在连接时指定导出选项的任何变体。 最后一个示例还对应于数据源名称 (可在连接时选择性传递的 DSN) 。 所有三个格式部分都可以包含在同一 .ini 文件中。

Microsoft Access 数据库引擎使用如下所示的 Schema.ini 项。

条目

说明

ColNameHeader

可设为 True(指示由第一条数据记录指定列的名称)或 False

格式

可以设置为以下值之一:TabDelimited、CSVDelimited、Delimited (<单个字符>) 或 FixedLength。 为 Delimited 文件格式指定的分隔符可以是除双引号 (") 以外的任何单字符。

FixedFormat

仅在 Format 为 FixedLength 时使用,此项可以设为下列值之一:RaggedEdge 或 TrueFixedLength。 RaggedEdge 允许行以回车符终止。 TrueFixedLength 要求每一行都是确切的字符数,并且假定不在行边界的任何回车符都嵌入在字段中。 如果没有此设置,默认值为 RaggedEdge。

MaxScanRows

指示在推测列数据类型时要扫描的行数。 如果设为 0,则搜索整个文件。

CharacterSet

可设为 OEM、ANSI、UNICODE 或有效代码页的十进制数,指示源文件的字符集。

DateTimeFormat

可设为指示日期和时间的格式字符串。 如果导入/导出时的所有日期/时间字段均用相同格式处理,则应指定此项。 除 AM 和 PM 以外,所有 Microsoft Jet 数据库引擎格式均受支持。 如果没有格式字符串,则使用 Windows“控制面板”的短日期图片和时间选项。

CurrencySymbol

指示文本文件中的货币值要使用的货币符号。 例如,美元符号 ($) 和德国马克。 如果没有此项,则使用 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) (1 $) 为本示例显示美元符号,但应将其替换为实际程序中的相应 CurrencySymbol 值。 如果没有此项,则使用 Windows 控制面板中的默认值。

CurrencyThousandSymbol

指示用于在文本文件中按千分隔货币值的单字符符号。 如果没有此项,则使用 Windows 控制面板中的默认值。

CurrencyDecimalSymbol

可设为用于分隔货币数额的整数部分和小数部分的任何单字符。 如果没有此项,则使用 Windows 控制面板中的默认值。

DecimalSymbol

可设为用于分隔数字的整数部分和小数部分的任何单字符。 如果没有此项,则使用 Windows 控制面板中的默认值。

NumberDigits

指示数字的小数部分的小数位数。 如果没有此项,则使用 Windows 控制面板中的默认值。

NumberLeadingZeros

指定大于 -1 但小于 1 的小数值是否应包含几个前导零。该值可以为 False(没有前导零)或 True。

Col1, Col2, ...

列出要读取的文本文件中的列。 此条目的格式应为: Coln=columnName 类型 [Width #] columnName: 包含嵌入空格的列名称应用引号引起来。 类型:可以是 Bit、Byte、Short、Long、Decimal、Currency、Single、Double、DateTime。 二进制、OLE、文本或备注。 此外,还支持以下 ODBC 文本驱动程序类型:Char (与 Text) Float (Double) Integer (与 Short) LongChar 相同, (与备注) 日期 日期格式 相同。 在 Decimal 类型的情况下,应使用附加格式标记 [Scale #] Precision #]。

TextDelimiter

可设为用于对包含任何其他特殊字符的字符串进行分隔的任何单字符。 例如“abc”、“xyz,pqr”、“hij”如果不存在此条目,则默认分隔符为双引号。 如果此项为字符串“none”,则没有字符会被视为分隔符。

注意

[!注释] 更改 Schema.ini 文件设置时,必须先退出数据库引擎,然后再重新启动它,这样,新设置才会生效。