在刚刚搭建开放平台后无论运行什么ASP程序,总是出现错误Microsoft OLE DB Provider for ODBC Drivers (0x80040E4D),平台为Windows2000 Server +SQL Server2000+Visual InterDev6.0。当新建一个页面,只加入RecordsetDTC控件,而没有加入任何自己的代码,也会出现该错误。经反复调试,错误依旧;格式化后,按指定顺序重装以上软件,问题仍没解决。并且该问题有一定代表性,其他同学在Windows2000 Server 也出现了同样的错误,即使数据库和Web服务器到在NT4.0,而在只是在Windows2000 Server端开发。在把开发端该为Windows98后问题解决,所以怀疑是Windows2000 Server下ODBC的问题。
后来,经网友提示查找资料得知是数据库访问权限的问题。在Win2000Server下建立数据源时若选了“With WindowsNT authentication using the network login ID”项就会出现以上问题,当选择“With SQL Server authentication using a login ID and password entered by user”时,只要用户具有相应的权限就不会出现以上问题。原来,SQLServer2000具有严格、细致的的权限定义,不管是在Visual InterDev 的DataView中还是ASP代码中,要想访问数据首先要通过权限验证。其实,在Win98下正是以为选了第二项,才避免了错误的出现。