解决sqloledb.dll动态库出错

sqloledb.dll 出现问题影响到其它程序

  • 我在运行一个管理系统时,不明原因的出现无法连接服务器上的数据库,很郁闷前几天还运行的好好的。我测了下服务器是否可以联通,显示是正常啊!难道是某个安装文件出现问题啦?我又重装这个软件,结果还是出现同样问题,那是不是系统中毒了,我马上用杀毒软件进行全盘扫描,没有出现任何异常。这样反复折腾弄了一下午,还是没能找到原因修复。
  • 隔天我找电脑部的同事帮忙找原因,得出结论可能是系统出问题了,要我重装系统,我电脑里面装了好多东西,不想重装,重装又要费很多时间,于是放弃了这个建议。我想借助电脑自带的功能,看能不能查出哪个地方出问题,于是到网上搜索了一下,果真如我猜想在微软的管网上找到了解决办法。
    链接: 查看入口
  • 我大概描述下解决步骤:
  1. 在命令提示符处,键入以下命令,然后按 Enter 键:

    sfc /scannow
    

    sfc /scannow 命令将扫描所有受保护的系统文件,并用位于 %WinDir%\System32\dllcache
    的压缩文件夹中的缓存副本替换损坏的文件。 %WinDir% 占位符代表 Windows 操作系统文件夹。 例如:C:\Windows。

    注意 在验证 100% 完成之前,请勿关闭此命令提示符窗口。 此流程完成后将显示扫描结果。

  2. 流程结束后,你可能收到以下消息之一:

    1. Windows 资源保护找不到任何完整性冲突。

    这表示您没有任何丢失或损坏的系统文件。

    1. Windows 资源保护无法执行请求的操作。

    要解决此问题,请在安全模式中执行系统文件检查器,并确保 PendingDeletes 和 PendingRenames 文件夹存在于
    %WinDir%\WinSxS\Temp 下。

    1. Windows 资源保护找到了损坏的文件并已成功将其修复。

    详细信息包含在 CBS.Log(路径为%WinDir%\Logs\CBS\CBS.log)中。
    若要查看有关系统文件扫描和还原的详细信息,请转到如何查看系统文件检查器进程的详细信息。

    1. 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。

  • 手动修复步骤:
    1. 获得损坏的系统文件的管理所有权。 为此,在提升的命令提示符处,复制并粘贴(或键入)以下命令,然后按 Enter 键:
      takeown /f Path_And_File_Name 注意 Path_And_File_Name 占位符代表损坏文件的路径和文件名。 例如,键入

       takeown /f C:\windows\system32\sqloledb.dll 
      
    2. 授予管理员完全访问损坏的系统文件的权限。 为此,复制并粘贴(或键入)以下命令,然后按 Enter 键:
      icacls Path_And_File_Name /GRANT ADMINISTRATORS:F 注意 Path_And_File_Name 占位符代表损坏文件的路径和文件名。 例如,键入

      icacls C:\windows\system32\sqloledb.dll  /grant administrators:F
      
    3. 将损坏的系统文件替换为已知完好的文件副本。 为此,复制并粘贴(或键入)以下命令,然后按 Enter 键:
      复制 Source_File Destination 注意 Source_File 占位符代表计算机上已知完好的文件副本的路径和文件名,Destination 占位符代表损坏文件的路径和文件名。 例如,键入

      copy E:\temp\sqloledb.dll C:\windows\system32\sqloledb.dll 
      
  1. 最后:
    我没有重启电脑,直接就登陆管理系统软件,没出现什么问题,可以正常使用了。当时很是开心,在自己的坚持下没有重装系统,完成修复工作。至于是哪个环节破坏了 sqloledb.dll 这个动态库,我没有找到原因,暂时就不管这个问题了。记住电脑要时常备份,解决这些看似不起眼的问题,很浪费时间,没多大必要,还是直接还原快。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值