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


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

文本数据源和 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 文件夹项。

说明
win32mstext40.dll 的位置。完整路径在安装时确定。
MaxScanRows推测列类型时要扫描的行数。如果设为 0,则扫描整个文件。默认值为 25。
FirstRowHasNames二进制值,指示表的第一行是否包含列名称。值 01 指示在导入期间从第一行获取列名称。值 00 指示第一行中没有列名称。默认值为 01。
CharacterSet指示器,确定如何存储文本页。可能设置有:
  • ANSI — 计算机的 ANSI 代码页。AnsiToUnicode 和 UnicodeToAnsi 转换已完成。
  • OEM — 计算机的 OEM 代码页。OemToUnicode 和 UnicodeToOem 转换已完成。
  • Unicode — 代码页转换未完成。
  • <十进制> — 特定字符集的代码页编号。将要完成与 Unicode 的相互转换。

默认值为 ANSI。

Format可以为下面任何一种:TabDelimited、CSVDelimited、Delimited(<单字符>)。Delimited 格式的单字符分隔符可以是除双引号 (") 以外的任何单字符。默认格式为 CSVDelimited。
Extensions查找基于文本的数据时将要浏览的任何文件的扩展名。默认值为 txt、csv、tab、asc。
ExportCurrencySymbols二进制值,指示导出货币字段时是否包括适当的货币符号。值 01 指示包括该符号,值 00 指示只导出数值数据。默认值为 01。

文本数据源 ISAM 格式

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



项名称

类型
 

EngineREG_SZ 文本
ExportFilterREG_SZ 文本文件(*.txt、*.csv、*.tab、*.asc)
ImportFilterREG_SZ 文本文件(*.txt、*.csv、*.tab、*.asc)
CanLinkREG_BINARY 01
OneTablePerFileREG_BINARY 01
IsamTypeREG_DWORD 2
IndexDialogREG_BINARY 00
CreateDBOnExportREG_BINARY 00
ResultTextImportREG_SZ 从外部文件向当前数据库导入数据。更改当前数据库中的数据不会更改外部文件中的数据。
ResultTextLinkREG_SZ 在与外部文件链接的当前数据库中创建表。更改当前数据库中的数据将会更改外部文件中的数据。
ResultTextExportREG_SZ 将数据从当前数据库导出到文本文件。如果导出到现有文件,此过程将覆盖数据。
SupportsLongNamesREG_BINARY 01

注释  更改 Windows 注册表设置时,必须先退出数据库引擎,然后再重新启动它,这样,新设置才会生效。

HTML 导入 ISAM 格式

Jet/4.0/ISAM Formats/HTML Import 文件夹包含下列项。



项名称

类型
 

EngineREG_SZ 文本
ImportFilterREG_SZ HTML 文件 (*.ht*)
CanLinkREG_BINARY 01
OneTablePerFileREG_BINARY 00
IsamTypeREG_DWORD 2
IndexDialogREG_BINARY 00
CreateDBOnExportREG_BINARY 00
ResultTextImportREG_SZ 从外部文件向当前数据库导入数据。更改当前数据库中的数据不会更改外部文件中的数据。
ResultTextLinkREG_SZ 在与外部文件链接的当前数据库中创建表。更改当前数据库中的数据将会更改外部文件中的数据。
SupportsLongNamesREG_BINARY 01

注释  更改 Windows 注册表设置时,必须先退出数据库引擎,然后再重新启动它,这样,新设置才会生效。

HTML 导出 ISAM 格式

Jet/4.0/ISAM Formats/HTML Export 文件夹包含下列项。



项名称

类型
 

EngineREG_SZ 文本
ExportFilterREG_SZ HTML 文件 (*.htm)
CanLinkREG_BINARY 00
OneTablePerFileREG_BINARY 01
IsamTypeREG_DWORD 2
IndexDialogREG_BINARY 00
CreateDBOnExportREG_BINARY 00
ResultTextExportREG_SZ 将数据从当前数据库导出到文本文件。如果导出到现有文件,此过程将覆盖数据。
SupportsLongNamesREG_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)
Float(同 Double)
Integer(同 Short)
LongChar(同 Memo)
Date 日期格式

在 Memo 类型的情况下,可使用一个附加格式标记 [Attribute Hyperlink] 来指定在 Microsoft Access 中应为活动 URL 的列。

在 Decimal 类型的情况下,应使用附加格式标记 [Scale #] Precision #]。

TextDelimiter可设为用于对包含任何其他特殊字符的字符串进行分隔的任何单字符。

例如 “abc”、“xyz,pqr”、“hij”

如果没有此项,则默认分隔符为双引号。如果此项为字符串“none”,则没有字符会被视为分隔符。


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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值