初始化文本数据源驱动程序
文本数据源和 HTML 数据源使用相同的数据库驱动程序。
安装文本数据源数据库驱动程序时,安装程序会将一组默认值写入 Microsoft® Windows® 注册表内的 Engines 和 ISAM Formats 子键。不应直接修改这些设置,请使用应用程序的安装程序添加、删除或更改这些设置。以下各节描述文本数据源数据库驱动程序的初始化和 ISAM 格式设置。
文本数据源初始化设置
Jet/4.0/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 数据库引擎使用如下所示的 Text 文件夹项。
项 | 说明 |
---|---|
win32 | mstext40.dll 的位置。完整路径在安装时确定。 |
MaxScanRows | 推测列类型时要扫描的行数。如果设为 0,则扫描整个文件。默认值为 25。 |
FirstRowHasNames | 二进制值,指示表的第一行是否包含列名称。值 01 指示在导入期间从第一行获取列名称。值 00 指示第一行中没有列名称。默认值为 01。 |
CharacterSet | 指示器,确定如何存储文本页。可能设置有:
默认值为 ANSI。 |
Format | 可以为下面任何一种:TabDelimited、CSVDelimited、Delimited(<单字符>)。Delimited 格式的单字符分隔符可以是除双引号 (") 以外的任何单字符。默认格式为 CSVDelimited。 |
Extensions | 查找基于文本的数据时将要浏览的任何文件的扩展名。默认值为 txt、csv、tab、asc。 |
ExportCurrencySymbols | 二进制值,指示导出货币字段时是否包括适当的货币符号。值 01 指示包括该符号,值 00 指示只导出数值数据。默认值为 01。 |
文本数据源 ISAM 格式
Jet/4.0/ISAM Formats/Text 文件夹包含下列项。
项名称 | 类型 | 值 | |
---|---|---|---|
Engine | REG_SZ | 文本 | |
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 格式
Jet/4.0/ISAM Formats/HTML Import 文件夹包含下列项。
项名称 | 类型 | 值 | |
---|---|---|---|
Engine | REG_SZ | 文本 | |
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 格式
Jet/4.0/ISAM Formats/HTML Export 文件夹包含下列项。
项名称 | 类型 | 值 | |
---|---|---|---|
Engine | REG_SZ | 文本 | |
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=”
“My Special Export”示例引用了特定导出选项。可以在连接时指定任何不同的导出选项。最后一个示例还对应于在连接时可选要传递的数据源名称 (DSN)。所有这三个格式部分都可以包括在同一个 .ini 文件中。
Microsoft Jet 数据库引擎使用如下所示的 Schema.ini 项。
项 | 说明 |
---|---|
ColNameHeader | 可设为 True(指示由第一条数据记录指定列的名称)或 False。 |
Format | 可以设为下列值之一: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 $) 显示美元符号是为了提供此示例,但在实际程序中应将其替换为相应的 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 或 Memo。 此外,还支持下列 ODBC 文本驱动程序类型: Char(同 Text) 在 Memo 类型的情况下,可使用一个附加格式标记 [Attribute Hyperlink] 来指定在 Microsoft Access 中应为活动 URL 的列。 在 Decimal 类型的情况下,应使用附加格式标记 [Scale #] Precision #]。 |
TextDelimiter | 可设为用于对包含任何其他特殊字符的字符串进行分隔的任何单字符。 例如 “abc”、“xyz,pqr”、“hij” 如果没有此项,则默认分隔符为双引号。如果此项为字符串“none”,则没有字符会被视为分隔符。 |
注释 更改 Schema.ini 文件设置时,必须先退出数据库引擎,然后再重新启动它,这样,新设置才会生效。