目录位置

目录名称在标识符中的位置及其与标识符其余部分的分隔方式因数据源而异。 例如,在 Xbase 数据源中,目录名称是一个目录,在 Microsoft Windows 中,通过反斜杠 (\) 与表单名称(表单名称是一个文件名)分隔开来。 下图演示了此情况。

Catalog postion: Xbase

在 SQL Server 数据源中,目录是一个数据库,通过句点 (.) 与架构和表单名称分隔开来。

Catalog postion: SQL Server

在 Oracle 数据源中,目录也是数据库,但遵循表单名称,并且通过 at 符号 (@) 与架构和表单名称分隔开来。

Catalog postion: Oracle

为了确定目录分隔符和目录名称的位置,应用程序使用 SQL_CATALOG_NAME_SEPARATOR 和 SQL_CATALOG_LOCATION 选项调用 SQLGetInfo。 可互操作的应用程序应根据这些值来构造标识符。

当带引号的标识符包含多个部分时,应用程序必须小心地单独将每个部分括起引号,而不是将分隔标识符的字符括起引号。 例如,以下用于选择 Xbase 表的所有行和列的语句将目录 (\XBASE\SALES\CORP) 和表单 (Parts.dbf) 名称括起引号,而不使用目录分隔符 (\):

SELECT * FROM "\XBASE\SALES\CORP"\"PARTS.DBF"  

以下用于选择 Oracle 表的所有行和列的语句将目录 (Sales)、架构 (Corporate) 和表单 (Parts) 名称括起引号,而不会将目录 (@) 或架构 (.) 分隔开来:

SELECT * FROM "Corporate"."Parts"@"Sales"  

有关带引号的标识符的详细信息,请参阅下一部分,带引号的标识符