可众所周知,当前我们使用的所有的数据库管理系统--DBMS实际上都可以通过 ODBC进行互访,这是因为ODBC提供了各类数据源的驱动。 然而ADO访问数据源的统一界面却是个OLE DB接口,这样一来,尽管有越来越多数据库厂商开始也提供OLE DB 接口,比如SQL Server、Oracle以及Microsoft Access(Microsoft Jet 数据库引擎)等等,但仍有一些数据源无法以这种方式提供,仍然需要借助ODBC驱动向OLE DB提供。这样的话,OLE DB便定义了一个嵌入使用ODBC驱动的接口,就象是ODBC驱动也象其他数据库驱动的提供者一样插在了OLE DB型号的插座上。给ODBC这个接口的名字(即OLE DB提供者)便是Microsoft OLE DB Provider for ODBC drivers,是ADO默认的提供者。关键字Provider的值为MSDASQL,可以省略不写,因而我们在建立数据源连接时,没看到provider的话,那说明,肯定是ODBC提供的驱动。
下面这段是关于Provider属性,拷贝于ADO参考。
使用 Provider 属性可设置或返回连接提供者的名称。也可以通过 ConnectionString 属性的内容或 Open方法的 ConnectionString 参数设置该属性。但是,调用 Open 方法时在多处指定提供者可能会产生无法预料的后果。
如果没有指定提供者,该属性将默认为 MSDASQL (Microsoft OLE DB Provider for ODBC )。
<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Open "File Name=c:\udl\udlfile.udl"
%>
什么是“非UDL方式”呢?
就是指不建立UDL文件,而是直接在程序中指定,即:
<%
Set conn=Server.CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=C:\Inetpub\wwwroot\asp\adodb\MYDB.MDB;"
%>
UDL方式
用和上面一样的方法建立一个文件udlodbc.udl,选择数据提供者为Microsoft OLE DB Provider for ODBC drivers ,如果你事先已经建好了系统DSN的话,就可以直接在数据源中选中系统DSN的名字mydsn了,这样做似乎会有些问题。最好还是选择使用“生成连接字符串”,点击“编译”,便弹出数据源选择窗口,我们选用机器数据源标签,从里面可以选择我们已经建立了的系统DSN名字mydsn,然后确定。其实,你也可以重新创建一个新的系统DSN,这时你会看到,创建新的DSN的界面,就是ODBC的界面。(至于如何创建系统DSN我就不细说了)
这样我们的udlodbc.udl就建立了,用记事本打开看看,内容大致如下: