驱动程序规范子项

ODBC 驱动程序子项中列出的每个驱动程序都有其自己的子项。 此子项与 ODBC 驱动程序子项下的相应值同名。 此子项下的值列出了驱动程序和驱动程序安装 DLL 的完整路径、SQLDrivers 返回的驱动程序关键字的值以及使用情况计数。 下表显示了这些值的格式。

名称 数据类型 数据
APILevel REG_SZ 0 | 1 | 2
ConnectFunctions REG_SZ {Y|N}{Y|N}{Y|N}
CreateDSN REG_SZ driver-description
驱动程序 REG_SZ driver-DLL-path
DriverODBCVer REG_SZ nn.nn
FileExtns REG_SZ *. file-extension1[,*. file-extension2]...
FileUsage REG_SZ 0 | 1 | 2
安装 REG_SZ setup-DLL-path
SQLLevel REG_SZ 0 | 1 | 2
UsageCount REG_DWORD count

下表显示了每个关键字的使用。

关键字 使用情况
APILevel 指示驱动程序支持的 ODBC 接口一致性级别的数字:

0 = 无

1 = 支持级别 1

2 = 支持级别 2

该数字必须与 SQLGetInfo 中 SQL_ODBC_INTERFACE_CONFORMANCE 选项返回的值相同。
CreateDSN 安装驱动程序时要创建的一个或多个数据源的名称。 系统信息必须为列出的包含 CreateDSN 关键字的每个数据源包含一个数据源规范部分。 这些部分不应包含 Driver 关键字,因为这是在驱动程序规范部分中指定的,但必须在驱动程序安装 DLL 中包含 ConfigDSN 函数的足够信息,以创建数据源规范而不显示任何对话框。 有关数据源规范部分的格式,请参阅数据源规范子项
ConnectFunctions 一个三个字符的字符串,指示驱动程序是否支持 SQLConnect、SQLDriverConnect 和 SQLBrowseConnect。 如果驱动程序支持 SQLConnect,则第一个字符为“Y”;否则为“N”。 如果驱动程序支持 SQLDriverConnect,则第二个字符为“Y”;否则为“N”。 如果驱动程序支持 SQLBrowseConnect,则第三个字符为“Y”;否则为“N”。 例如,如果驱动程序支持 SQLConnect 和 SQLDriverConnect,但不支持 SQLBrowseConnect,则三个字符字符串为“YYN”。
DriverODBCVer 具有驱动程序支持的 ODBC 版本的字符串。 版本是 nn.nn 的形式,其中前两位是主版本,接下来的两位数是次要版本。 对于本手册中所述的 ODBC 版本,驱动程序必须返回“03.00”。

该数字必须与 SQLGetInfo 中 SQL_DRIVER_ODBC_VER 选项返回的值相同。
FileExtns 对于基于文件的驱动程序,驱动程序可以使用的以逗号分隔的扩展名列表。 例如,dBASE 驱动程序可指定 *.dbf,而格式化文本文件驱动程序可指定 *.txt、*.csv。 有关应用程序可如何使用此信息的示例,请参阅 FileUsage 关键字。
FileUsage 指示基于文件的驱动程序如何直接处理数据源中文件的数字。

0 = 驱动程序不是基于文件的驱动程序。 例如,ORACLE 驱动程序是基于 DBMS 的驱动程序。

1 = 基于文件的驱动程序将数据源中的文件视为表。 例如,Xbase 驱动程序将每个 Xbase 文件视为表。

2 = 基于文件的驱动程序将数据源中的文件视为目录。 例如,Microsoft Access 驱动程序将每个 Microsoft Access 文件视为完整的数据库。

应用程序可能使用此方式来确定用户如何选择数据。 例如,Xbase 和 Paradox 用户通常认为数据存储在文件中,而 ORACLE 和 Microsoft Access 用户通常认为数据存储在表中。

当用户从“文件”菜单中选择“打开数据文件”时,应用程序可以显示“Windows 文件打开”通用对话框。 对于指定 FileUsage 值为 1 并将“Y”作为 ConnectFunctions 关键字值的第二个字符的驱动程序,文件类型列表将使用以 FileExtns 关键字指定的文件扩展名。 用户选择文件后,应用程序会使用 DRIVER 关键字调用 SQLDriverConnect,然后执行 SELECT * FROM 表单名称语句。

当用户从“文件”菜单中选择“导入数据”时,应用程序可显示指定 FileUsage 值为 0 或 2 的驱动程序的说明列表,并将“Y”作为 ConnectFunctions 关键字值的第二个字符。 用户选择驱动程序后,应用程序会使用 DRIVER 关键字调用 SQLDriverConnect,然后显示自定义的“选择表”对话框。
SQLLevel 指示驱动程序支持的 SQL-92 语法的数字:

0 = SQL-92 项

1 = FIPS127-2 过渡

2 = SQL-92 中间

3 = SQL-92 完整

该数字必须与 SQLGetInfo 中 SQL_SQL_CONFORMANCE 选项返回的值相同。

有关使用情况计数的信息,请参阅本节前面的使用情况计数

应用程序不应设置使用情况计数。 ODBC 将维护该计数。

例如,假设格式化文本文件的驱动程序具有名为 Text.dll 的驱动程序 DLL、名为 Txtsetup.dll 的单独驱动程序安装 DLL,并且已安装三次。 如果驱动程序支持级别 1 API 一致性级别,支持最低 SQL 语法一致性级别,将文件视为表,并且可以将文件与 .txt 和 .csv 扩展一起使用,则文本子项下的值可能如下所示:

APILevel : REG_SZ : 1  
ConnectFunctions : REG_SZ : YYN  
Driver : REG_SZ : C:\WINDOWS\SYSTEM32\TEXT.DLL  
DriverODBCVer : REG_SZ : 03.00.00  
FileExtns : REG_SZ : *.txt,*.csv  
FileUsage : REG_SZ : 1  
Setup : REG_SZ : C:\WINDOWS\SYSTEM32\TXTSETUP.DLL  
SQLLevel : REG_SZ : 0  
UsageCount : REG_DWORD : 0x3