« html:语言代码组件的使用 悠悠博客系列文章之四 Request和response的封装 »

绝对和相对 URL

URL 指定了目标在本地或网络计算机上存储的位置,这个目标可以是文件、目录、HTML 页面、图像、程序等等。在本讨论中,“绝对 URL”的格式如下:

scheme://server/path/resource

其中:

scheme

指定访问 resource 的方式。

server

指定 resource 所在计算机的名称。

path

指定到达目标的目录序列。如果忽略 resource,则目标是 path 中的最后一个目录。

resource

如果包括 resource,则它是目标,通常是文件名。它可能是包含字节的单个二进制流的“简单文件”,也可能是包含字节的一个或多个存储和二进制流的“结构化文档”。

“绝对 URL”包含定位资源所需的全部信息。

“相对 URL”以某个绝对 URL 为起点来定位资源。实际上,目标的“完整 URL”要通过连接绝对 URL 和相对 URL 来指定。相对 URL 通常只包括 path 和 resource(可选),而不包括 scheme 和 server。

用 URL 定义上下文
打开的连接(由 Connection 对象表示)的一项功能是限制对该连接所表示的数据源的后续操作。即,连接定义了后续操作的上下文。

使用此版本,绝对 URL 也可以定义上下文。例如,当用绝对 URL 打开 Record 对象时,将隐式创建 Connection 对象来表示该 URL 所指定的资源。

可以在 Record 对象 Open 方法的 ActiveConnection 参数中指定定义上下文的绝对 URL。也可以在 Connection 对象 Open 方法的 ConnectionString 参数和 Recordset 对象 Open 方法的 ActiveConnection 参数中,将绝对 URL 指定为新“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=http://YourServer/Winnt/",,,adCmdTableDirect

连接字符串中的绝对 URL 指定了服务器 (YourServer) 和路径 (Winnt)。此 URL 还定义了上下文。

命令文本中的相对 URL 以该绝对 URL 为起点,指定其余的路径 (system32) 和要打开的文件 (Readme25.txt)。

Option 字段 (adCmdTableDirect) 指示命令类型为相对 URL。

再举一个范例,如下代码将在 Winnt 目录的内容上打开 Recordset:

recordset.Open "", "URL=http://YourServer/Winnt/",,,adCmdTableDirect

OLE DB 提供者提供的 URL 方案
完全确定的 URL 的前导部分是 scheme,它用于访问由 URL 其余部分标识的资源。例如 HTTP(超文本传输协议)和 FTP(文件传输协议)。

使用此版本,ADO 支持能识别自身 URL 模式的 OLE DB 提供者。例如,OLE DB Provider for Internet Publishing 用于访问“发布的”Windows 2000 文件,它能识别现有的 HTTP 模式。
原创文章如转载,请注明:转载自悠悠博客 [ http://www.ajaxstu.com/ ]

相关文章:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。