오늘 무심코 upgrade 했다가 고생했습니다.
이놈의 MS를 그냥 콱!

SQL 2000이 깔려있는 windows 2000서버를 2003으로 업그레이드를 하면
asp에서 ODBC를 통한 DB접근이 안됩니다.  OLEDB를 통해도 마찬가지입니다.
위와 같은 문제가 발생했을때 아래와 같은 방법을 하나씩 해보시기 바랍니다.
(나 처럼 무모하게 업하는 사람도 없겠지만…)
우선 win 2003에서는 sql 2000 sp3이상이 설치되어 있어야 SQL이 정상동작 합니다.
나머지 부분은 아래 첨부한 part를 하나식 따라하면 됩니다.
PART A
——
-downloaded and ran Component Checker “Comcheck.exe” 
(download was cc.exe, expanded into c:\comcheck\… with 
over 470 files).
-find it at 
http://www.microsoft.com/downloads/details.aspx?
FamilyID=8f0a8df6-4a21-4b43-bf53-
14332ef092c9&DisplayLang=en
-ran in on MDAC 2.7 SP1 (WinXP) and found oledb32.dll was 
2.71.9031.4, not the expected version 2.71.9030.0…
PART B
——
-Find the correct version of oledb32.dll.  I downloaded 
both MDAC2.7RTM and MDAC2.7SP1 (they’re both named 
mdac_typ.exe).
-Extract the files from each MDAC to separate directories 
without kicking off an install (example: 
mdac_typ /c /t:C:\MDAC2.7SP1).
-look for mdaccxpak.cab in that directory, open it using 
explorer, and extract oledb32.dll to the same directory 
as the cab.
-right-click on the extracted oledb32.dll, again using 
explorer, then navigate to the “version” tab to see if 
it’s the “expected” version (in my case, 2.71.9030.0 was 
the correct one, and it came out of the MDAC 2.7 SP1 
version)
저의 경우엔 MDAC2.8이어서 2.8 버젼을 받아 위와 같이 했습니다.
PART C
——
-In Explorer, goto Tools -> Folder Options -> View, and 
allow viewing of “..Protected operating system files…”, 
also turn on “Show hidden files and folders” (note your 
original settings so you can switch back later).
-Drag c:\Windows\System32\dllcache\oledb32.dll into the 
recycler (this will stop Win2k/XP system protection from 
replacing the real oledb32.dll in the next step).
-Drag c:\program files\common files\system\ole 
DB\oledb32.dll to the recycler as well.
-Click “Cancel” and confirm the cancel the one or two 
times that the system protection asks about restoring 
those versions from the WinXP install CD
-Copy the correct oledb32.dll (that you extracted in PART 
B) into both c:\Windows\System32\dllcache\ and into 
c:\program files\common files\system\ole DB
-Reboot (I don’t know if this is necessary, but I wanted 
to make sure that nothing was “restored” while I wasn’t 
looking.
PART D
——
-For piece of mind, navigate to the two directories again 
and check the versions of oledb32.dll (not necessary, 
this is paranoia)
-Run Comcheck.exe against “2.7 SP1(WinXP)” again.  You 
should get “No errors or warnings detected!”
-Change the permissions back to what they were before 
from the first line of PART C.
NOW, Programatic ADO connections to SQL Server work 
again, The “RETURN ALL ROWS” option of the SQL Enterprise 
Manager works again, and all of those other broken things 
that I’ve seen in the newsgroups mentioned with error 
8007007F should work again as well!
-The question is which patch/application install/service 
pack put the incorrect version there to begin with?  
-Why is this fix not in TechNet?