sqloledb.dll 出现问题影响到其它程序
- 我在运行一个管理系统时,不明原因的出现无法连接服务器上的数据库,很郁闷前几天还运行的好好的。我测了下服务器是否可以联通,显示是正常啊!难道是某个安装文件出现问题啦?我又重装这个软件,结果还是出现同样问题,那是不是系统中毒了,我马上用杀毒软件进行全盘扫描,没有出现任何异常。这样反复折腾弄了一下午,还是没能找到原因修复。
- 隔天我找电脑部的同事帮忙找原因,得出结论可能是系统出问题了,要我重装系统,我电脑里面装了好多东西,不想重装,重装又要费很多时间,于是放弃了这个建议。我想借助电脑自带的功能,看能不能查出哪个地方出问题,于是到网上搜索了一下,果真如我猜想在微软的管网上找到了解决办法。
链接: 查看入口 - 我大概描述下解决步骤:
-
在命令提示符处,键入以下命令,然后按 Enter 键:
sfc /scannow
sfc /scannow 命令将扫描所有受保护的系统文件,并用位于 %WinDir%\System32\dllcache
的压缩文件夹中的缓存副本替换损坏的文件。 %WinDir% 占位符代表 Windows 操作系统文件夹。 例如:C:\Windows。注意 在验证 100% 完成之前,请勿关闭此命令提示符窗口。 此流程完成后将显示扫描结果。
-
流程结束后,你可能收到以下消息之一:
- Windows 资源保护找不到任何完整性冲突。
这表示您没有任何丢失或损坏的系统文件。
- Windows 资源保护无法执行请求的操作。
要解决此问题,请在安全模式中执行系统文件检查器,并确保 PendingDeletes 和 PendingRenames 文件夹存在于
%WinDir%\WinSxS\Temp 下。- Windows 资源保护找到了损坏的文件并已成功将其修复。
详细信息包含在 CBS.Log(路径为%WinDir%\Logs\CBS\CBS.log)中。
若要查看有关系统文件扫描和还原的详细信息,请转到如何查看系统文件检查器进程的详细信息。- Windows 资源保护找到了损坏的文件但无法修复其中的某些文件。 详细信息包含在 CBS.Log(路径为%WinDir%\Logs\CBS\CBS.log)中。
若要手动修复损坏的文件,请查看系统文件检查器进程的详细信息查找损坏的文件,然后手动将损坏的文件替换为已知完好的文件副本。
3.我检测出来的信息是上面第4点,“Windows 资源保护找到了损坏的文件但无法修复其中的某些文件。 详细信息包含在 CBS.Log(路径为%WinDir%\Logs\CBS\CBS.log)中”
4.然后就要看这个文本信息,按照文档操作,把这个文件复制到桌面上来,执行命令:
findstr /c:"[SR]" %windir%\Logs\CBS\CBS.log >"%userprofile%\Desktop\sfcdetails.txt"
5.打开 sfcdetails.txt 文件,我查找到几条重要信息如下:
2022-11-18 16:50:37, Info CSI 0000039a [SR] Cannot repair member file [l:24{12}]"sqloledb.dll" of Microsoft-Windows-Microsoft-Data-Access-Components-(MDAC)-Oledb-SQLServer-Provider-Dll, Version = 6.1.7601.17514, pA = PROCESSOR_ARCHITECTURE_INTEL (0), Culture neutral, VersionScope = 1 nonSxS, PublicKeyToken = {l:8 b:31bf3856ad364e35}, Type neutral, TypeName neutral, PublicKey neutral in the store, hash mismatch
2022-11-18 16:50:37, Info CSI 0000039c [SR] Cannot repair member file [l:24{12}]"sqloledb.dll" of Microsoft-Windows-Microsoft-Data-Access-Components-(MDAC)-Oledb-SQLServer-Provider-Dll, Version = 6.1.7601.17514, pA = PROCESSOR_ARCHITECTURE_INTEL (0), Culture neutral, VersionScope = 1 nonSxS, PublicKeyToken = {l:8 b:31bf3856ad364e35}, Type neutral, TypeName neutral, PublicKey neutral in the store, hash mismatch
2022-11-18 16:50:37, Info CSI 0000039d [SR] This component was referenced by [l:202{101}]"Microsoft-Windows-Foundation-Package~31bf3856ad364e35~amd64~~6.1.7601.17514.WindowsFoundationDelivery"
2022-11-18 16:50:37, Info CSI 000003a0 [SR] Could not reproject corrupted file [ml:520{260},l:106{53}]"\??\C:\Program Files (x86)\Common Files\System\Ole DB"\[l:24{12}]"sqloledb.dll"; source file in store is also corrupted
2022-11-18 16:50:37, Info CSI 000003a1 [SR] Repairing corrupted file [ml:520{260},l:120{60}]"\??\C:\Program Files (x86)\Common Files\Microsoft Shared\DAO"\[l:20{10}]"dao360.dll" from store
5.注意名称 sqloledb.dll 这个库肯定与连接服务器上的数据库有关联,而且系统检测出有问题,无法修复,具体在 C:\Program Files (x86)\Common Files\System\Ole DB"[l:24{12}]“sqloledb.dll” 这个路径下,我们手动给它修复下,官网也给出了手动修复步骤。我们先去网上下载这个 sqloledb.dll 动态库,要找到正确sqloledb.dll版本,注意我这里对应的是 x86 的目录下,系统版本号是6.1.7601.17514。
- 手动修复步骤:
-
获得损坏的系统文件的管理所有权。 为此,在提升的命令提示符处,复制并粘贴(或键入)以下命令,然后按 Enter 键:
takeown /f Path_And_File_Name 注意 Path_And_File_Name 占位符代表损坏文件的路径和文件名。 例如,键入takeown /f C:\windows\system32\sqloledb.dll
-
授予管理员完全访问损坏的系统文件的权限。 为此,复制并粘贴(或键入)以下命令,然后按 Enter 键:
icacls Path_And_File_Name /GRANT ADMINISTRATORS:F 注意 Path_And_File_Name 占位符代表损坏文件的路径和文件名。 例如,键入icacls C:\windows\system32\sqloledb.dll /grant administrators:F
-
将损坏的系统文件替换为已知完好的文件副本。 为此,复制并粘贴(或键入)以下命令,然后按 Enter 键:
复制 Source_File Destination 注意 Source_File 占位符代表计算机上已知完好的文件副本的路径和文件名,Destination 占位符代表损坏文件的路径和文件名。 例如,键入copy E:\temp\sqloledb.dll C:\windows\system32\sqloledb.dll
-
- 最后:
我没有重启电脑,直接就登陆管理系统软件,没出现什么问题,可以正常使用了。当时很是开心,在自己的坚持下没有重装系统,完成修复工作。至于是哪个环节破坏了 sqloledb.dll 这个动态库,我没有找到原因,暂时就不管这个问题了。记住电脑要时常备份,解决这些看似不起眼的问题,很浪费时间,没多大必要,还是直接还原快。
更多推荐
解决sqloledb.dll动态库出错
发布评论