UDL是通用数据连接文件,用来保存连接字符串。它连接的方式和使用“ODBC 数据源名称 (DSN)”非常相似。UDL 文件存储 OLE DB 连接信息,例如提供程序、用户名、密码和其他选项。用存储在该 UDL 文件中的信息可以打开 ADO 连接,从而允许管理员在需要的情况下更改它,并且避免了打开注册表或者使用 ODBC。
也就是说这个里面包含的东西就是CONNECTIONSTRING 中的内容,比如:
‘Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:Program FilesMicrosoft OfficeOfficeSamplesNorthwind.mdb;User ID=admin;Password=1;Jet OLEDB:Database Password=1 ’
创建 UDL 文件最简单的方法就是:创建一个文本文件,更名这个文件为 A.UDL ,然后双击,然后会弹出一个窗口,我们就可以选择需要的数据连接。
有时候在制作配置界面的时候,会使用打开UDL文件进行数据库连接文件的配置,这样方便,安全。如下:
CString strUDLFile = "D/test.udl"; //UDL文件
if (FileExists (strUDLFile) == FALSE) //是否存在,文件不存在就创建新文件
{
HANDLE hFile = ::CreateFile (strUDLFile, GENERIC_WRITE, 0, NULL, CREATE_NEW, NULL, NULL);
::CloseHandle (hFile);
}
//打开udl文件
ShellExecute(this->m_hWnd, "open", strUDLFile, NULL, NULL, SW_SHOWNORMAL);
。。。。。
在配置好udl文件后,打开数据库就方便了,我们用_ConnectionPtr ,如下:
_ConnectionPtr m_hDBConn;
CString strConn; //指定udl
strConn.Format ("File Name=%s", m_strUDLFile);
try
{
m_hDBConn.CreateInstance(__uuidof(Connection));
m_hDBConn->ConnectionString = (_bstr_t)strConn; //得到connectionString
m_hDBConn->Open ("","","",NULL); //尝试打开数据库
}
catch (_com_error e)
{
m_hDBConn = NULL; //打开失败
}