由于卸载一个财务软件导致我的C++builder Delphi的ADO无法使用,点击ADOConnection的ConnectionString 的Build,提示没有注册的类别,直接运行我的Exe程序,也提示“未找到提供程序。该程序可能未正确安装”,然后我重新安装MDAC2.8,还是不行,没办法只好自己找问题了,ConnectionString 的Build对话框是调用ADODB.pas中的 PromptDataSource,该函数中有一句DataInit := CreateComObject(CLSID_DataLinks) as IDataInitialize;创建COM对象,查询CLSID_DataLinks在OleDB.pas中, CLSID_DATALINKS: TGUID = '{2206CDB2-19C1-11D1-89E0-00C04FD7A829}'; {DataLinks}
,在注册表中搜索该GUID,没有找到,在网上查询该GUID来自oledb32.dll,在系统目录下查找该dll,发现没有找到,原因终于找到,从system32/dllcache下或MDAC的mdacxpak.cab中复制oledb32.dll、oledb32r.dll 、oledb32a.dll到系统目录下,然后运行,regsvr32 C:/WINDOWS/system32/oledb32.dll,提示注册成功,再次测试一切正常,Ok问题解决。
,在注册表中搜索该GUID,没有找到,在网上查询该GUID来自oledb32.dll,在系统目录下查找该dll,发现没有找到,原因终于找到,从system32/dllcache下或MDAC的mdacxpak.cab中复制oledb32.dll、oledb32r.dll 、oledb32a.dll到系统目录下,然后运行,regsvr32 C:/WINDOWS/system32/oledb32.dll,提示注册成功,再次测试一切正常,Ok问题解决。