绝对和相对 URL
URL 指定存储在本地或网络计算机上的目标的位置。 目标可以是文件、目录、HTML 页面、图像、程序等。
绝对 URL 包含查找资源所需的所有信息。
相对 URL 使用绝对 URL 查找资源作为起点。 实际上,通过连接绝对 URL 和相对 URL 来指定目标的“完整 URL”。
绝对 URL 使用以下格式:scheme://server/path/resource
相对 URL 通常仅包含路径,以及资源(可选),但未包含方案或服务器。 下表定义完整 URL 格式的各个部分。
scheme
指定如何访问资源。
服务器
指定资源所在的计算机的名称。
path
指定指向目标的目录序列。 如果省略资源,则目标是路径中的最后一个目录。
资源
如果包含,则资源是目标,通常是文件的名称。 它可以是一个简单的文件,其中包含单个二进制字节流,或者包含一个或多个存储和二进制字节流的结构化文档。
URL 方案注册
如果提供程序支持 URL,则提供程序将注册一个或多个 URL 方案。 注册意味着使用方案的任何 URL 都会自动调用已注册的提供程序。 例如,http 方案注册到 Microsoft OLE DB Provider for Internet Publishing。 ADO 假定前缀为“http”的所有 URL 表示要与 Internet Publishing Provider 一起使用的 Web 文件夹或文件。 有关提供程序注册的方案的信息,请参阅提供程序文档。
使用 URL 定义上下文
打开连接(由 Connection 对象表示)的一个功能是将后续操作限制为该连接所表示的数据源。 也就是说,连接定义后续操作的上下文。
使用 ADO 2.7 或更高版本,绝对 URL 还可以定义上下文。 例如,使用绝对 URL 打开 Record 对象时,将隐式创建一个 Connection 对象来表示 URL 指定的资源。
定义了可以在 Record 对象 Open 方法的 ActiveConnection 参数中指定上下文的绝对 URL。 还可以将绝对 URL 指定为 Connection 对象 Open 方法 ConnectionString 参数和 Recordset 对象 Open 方法 ActiveConnection 参数中的“URL=”关键字的值。
还可以通过打开表示目录的 Record 或 Recordset 对象来定义上下文,因为这些对象已具有指定上下文的隐式或显式声明的 Connection 对象。
限定范围操作
上下文还定义了范围,即可以参与后续操作的目录及其子目录。 Record 对象具有多个对目录及其所有子目录进行操作的限定范围的方法。 这些方法包括 CopyRecord、MoveRecord 和 DeleteRecord。
作为命令文本的相对 URL
可以通过在 Connection 对象的 Execute 方法的 CommandText 参数和 Recordset 对象的 Open 方法的 Source 参数中键入字符串来指定要在数据源上执行的命令。
可以在 CommandText 或 Source 参数中指定相对 URL。 相对 URL 实际上并不表示命令,例如 SQL 命令;它只是指定参数。 活动连接的上下文必须是绝对 URL,Option 参数必须设置为 adCmdTableDirect。
例如,下面的代码示例演示如何在 Winnt/system32 目录的 Readme25.txt 文件中打开 Recordset:
recordset.Open "system32/Readme25.txt", "URL=https://YourServer/Winnt/",,,adCmdTableDirect
连接字符串中的绝对 URL 指定服务器 (YourServer
) 和路径 (Winnt
)。 此 URL 还定义上下文。
命令文本中的相对 URL 使用绝对 URL 作为起点,并指定路径的其余部分 (system32
) 和要打开的文件 (Readme25.txt
)。
选项字段 (adCmdTableDirect
) 指示命令类型是相对 URL。
另一个示例是,以下代码将在 Winnt
目录的内容上打开 Recordset:
recordset.Open "", "URL=https://YourServer/Winnt/",,,adCmdTableDirect
OLE DB 提供程序提供的 URL 方案
完全限定 URL 的前导部分是用于访问由 URL 其余部分标识的资源的方案。 示例包括 HTTP(超文本传输协议)和 FTP(文件传输协议)。
ADO 支持识别其自己的 URL 方案的 OLE DB 提供程序。 例如,访问“已发布”Windows 2000 文件的 Microsoft OLE DB Provider for Internet Publishing 可识别现有 HTTP 方案。